유니티 C#

유니티에서 게임 오브젝트의 동작을 정의할 때, Update, LateUpdate, FixedUpdate 메서드를 자주 사용하게 된다. 이들 메서드는 각각 다른 용도로 사용되는데, 어떤 차이점이 있는지 알아보자.결론부터 Update, LateUpdate, FixedUpdate 메서드는 각각 특정 상황에 맞는 용도로 사용된다. 게임 로직과 사용자 입력 처리는 Update에서, 다른 오브젝트 상태에 종속적인 작업은 LateUdpate에서, 물리 연산은 FixedUpdate에서 처리하는 것이 일반적이다.  Update 메서드 Update 메서드는 매 프레임마다 한 번 호출된다. 보통 사용자 입력 처리, 애니메이션 업데이트, 게임 로직 등을 처리할 때 사용한다. 즉 지속적으로 상태를 업데이트해야 하는 모든 게임 ..
유니티를 시작하기에 앞서 가장 먼저 공부해야 하는 것은 유니티의 동작 원리와 Monobehaviour 이다.유니티 프로그램의 원리 유니티는 컴포넌트 기반 아키텍처를 사용한다. 게임 오브젝트는 여러 컴포넌트로 구성되어 있으며, 각 컴포넌트는 특정 기능을 담당한다. MonoBehaviour를 상속받은 스크립트는 게임 오브젝트의 동작을 정의하는 주요 컴포넌트이다. 게임 오브젝트(GameObject): 씬 내의 모든 개체를 의미한다. 각 게임 오브젝트는 여러 컴포넌트를 가질 수 있다.컴포넌트(Component): 게임 오브젝트에 붙여서 특정 기능을 수행하는 모듈. 씬(Scene): 게임의 각 단위를 구성하는 환경. 게임 오브젝트와 컴포넌트들이 배치되어 있다. 즉 유니티는 레고를 조립하듯, 컴포넌트와 게임 오브젝..
static 키워드 C#에서 static 키워드는 클래스의 멤버(필드, 프로퍼티, 메서드 등)가 클래스 인스턴스에 속하지 않고, 해당 클래스 자체에 속한다는 것을 의미한다. 즉, 클래스의 인스턴스를 생성하지 않고도 해당 멤버에 접근할 수 있으며 클래스 이름을 통해 직접 접근할 수 있다. 이는 메모리 관리에서 효율적이며, 일반적으로 유틸리티 함수나 공유 데이터를 관리할 때 사용된다. Unity 개발에서 'static' 키워드의 사용은 특히 중요한데, 이는 게임 개발 시 흔히 발생할 수 있는 다양한 상황에서 전역적으로 접근할 필요가 있는 데이터나 기능을 제공하기 때문이다. 예를 들어, 게임 내에 단 하나만 존재해야 하는 게임 매니저, 설정, 유틸리티 함수 등을 구현할 때 'static'을 사용할 수 있다. ..
현제 개발 중인 모바일 게임, '전설의 대장장이 이야기-The Legend Of BlackSmith'가 출시되었다.구글 플레이 스토어 링크 전설의 대장장이 이야기 - Google Play 앱무기를 제작하고 판매해서 전설적인 대장장이가 되어보세요!play.google.com게임 유저라면 안드로이드 폰으로 게임을 다운받을 때 이런 화면이 상단에 뜨며 동시 로그인 되는 장면을 보았을 것이다.게임 출시를 앞두고 요즘 모바일 게임의 기본인 구글 플레이 게임즈와 연동하는 과정에서 최신 버전의 정보가 적어 상당히 많은 시행착오를 겪었기에 이와 관련해 정리를 해보고자 한다.사용한 유니티 버전은 2022.3.15f1 사용한  Google Play Games Plugin for unity 버전은 현재 24년 3월 27일 ..
Instantiate, PhotonNetwork.Instantiate 일반적으로 유니티는 게임 오브젝트의 생명주기를 관리해 주기 위해 Instantiate와 Destroy 함수를 사용한다. public GameObject obj; void Start() { //Instantiate(생성할 오브젝트, position, rotiation) //Quaternion.identity = rotation이 (0,0,0)임을 의미 Instantiate(obj, new Vector3(0,0,0), Quaternion.identity); } 생성하려는 오브젝트는 Scene에 오브젝트로 생성되어 있어야 선택이 가능하다. 게임 실행 후 Hierarchy창을 보면, 선택한 게임오브젝트이름(clone) 이라는 명칭으로 복사 생..
· 유니티 C#
보통 C# 유니티는 순차적인 호출 방식을 택한다. 하지만 순차적인 호출 방법은 그리 효율적인 방법이 아닌 경우가 많다. 따라서 C#, 유니티에서는 이벤트 구동(Event Driven) 방식을 지원하고 있다. 이벤트란 특정한 조건을 만족하면 자동으로 알려주는 메세지(Notification)을 의미한다. 예를 들어, 게임에서 주인공 캐릭터가 사망했을 때 "주인공 캐릭터가 죽었다"고 알리는 이벤트를 생성하면 이러한 상황이 발생했을 때 시스템에서 자동으로 이를 통보(Notification)하고, 이 이벤트에 연결된 모든 적 캐리겉에서 정해진 동작을 수행하는 방식이다. 이러한 이벤트 구동 방식은 for, each구문을 사용해 순차적으로 호출하는 방식보다 메모리 사용 측면이나 구동 속도 측면에서 효율적이다. 델리게..
4인 멀티플레이 게임에서 플레이어 캐릭터는 총 16명이다. 위 문장을 정확히 이해하고 있다면 네트워크 개념을 잘 이해하고 있는 것입니다. 이해가 잘 되지 않는다면 1번 글 참고! 게임 서버의 종류 기본적으로 네트워크 기반 게임은 대기 중인 서버에 클라이언트들이 참가하는 서버-클라이언트 방식으로 동작한다. 서버: 클라이언트들이 참가할 수 있는 네트워크 공간을 마련하는 컴퓨터, 호스트(host), 게임 속 상호작용 연산 담당. 클라이언트: 서버에 참가하여 게임을 플레이하는 컴퓨터 네트워크 게임의 서버-클라이언트 방식은 대부분 다음과 같은 방식으로 구현된다. 전용 서버(Dedicated Server) 리슨 서버(Listen Server) P2P(Peer - to - Peer) 1. 전용 서버 전용 서버는 서버..
4인 멀티플레이어 게임에서 플레이어 캐릭터는 총 16명이다 게임 서버를 공부한 사람이라면, 이 문장을 이해할 수 있어야 한다. 각 클라이언트의 게임 월드는 네트워크상에서 평행우주처럼 동작한다. 클라이언트: 서버에 접속하여 서비스를 제공받는 단말기(컴퓨터), 프로그램, 사용자를 뜻함. 다음은 4인 멀티플레이어 게임에서 각 클라이언트의 게임 월드 모습을 그린 그림이다. 그림에서 네트워크에 존재하는 게임 월드는 총 4개이다. 위 그림에서 게임 월드 속의 a, b, c, d는 플레이어 캐릭터로 동작하는 게임 오브젝트입니다. 여기서 플레이어 A가 직접 조작하는 플레이어 캐릭터는 a라고 가정해 본다면, A의 컴퓨터, 즉 클라이언트 A에서 동작하는 게임 월드에는 a, b, c, d라는 4명의 플레이어 캐릭터가 존재한..
HeadlessCreator
'유니티 C#' 카테고리의 글 목록