유니티 C#

static 키워드 C#에서 static 키워드는 클래스의 멤버(필드, 프로퍼티, 메서드 등)가 클래스 인스턴스에 속하지 않고, 해당 클래스 자체에 속한다는 것을 의미한다. 즉, 클래스의 인스턴스를 생성하지 않고도 해당 멤버에 접근할 수 있으며 클래스 이름을 통해 직접 접근할 수 있다. 이는 메모리 관리에서 효율적이며, 일반적으로 유틸리티 함수나 공유 데이터를 관리할 때 사용된다. Unity 개발에서 'static' 키워드의 사용은 특히 중요한데, 이는 게임 개발 시 흔히 발생할 수 있는 다양한 상황에서 전역적으로 접근할 필요가 있는 데이터나 기능을 제공하기 때문이다. 예를 들어, 게임 내에 단 하나만 존재해야 하는 게임 매니저, 설정, 유틸리티 함수 등을 구현할 때 'static'을 사용할 수 있다. ..
현제 개발 중인 모바일 게임, '전설의 대장장이 이야기-The Legend Of BlackSmith'게임 출시를 앞두고 있다. 여러분 모두 안드로이드 폰으로 게임을 다운받을 때 이런 화면이 상단에 뜨며 동시 로그인 되는 장면을 보았을 것이다. 게임 출시를 앞두고 요즘 모바일 게임의 기본인 구글 플레이 게임즈와 연동하는 과정에서 최신 버전의 정보가 적어 상당히 많은 시행착오를 겪었기에 이와 관련해 정리를 해보고자 한다. 사용한 유니티 버전은 2022.3.15f1 사용한 Google Play Games Plugin for unity 버전은 현재 24년 3월 27일 기준 v11.01 이다. 유니티 빌드 세팅하기 완성된 유니티 프로젝트가 있다는 가정 하에 유니티 프로젝트 빌드 세팅 build settings으로..
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명의 플레이어 캐릭터가 존재한..
· 유니티 C#
1. Mathf.Min(float a, float b) a 와 b 중에 더 작은 값을 반환합니다. 2. Mathf.Max(float a, float b) a 와 b 중에 더 큰 값을 반환합니다. 3. Mathf.Clamp(float a, float min, float max) a 가 min 보다 작다면 min 값을, max보다 크다면 max 값을, 사이값이라면 그 값을 반환합니다. 4. Mathf.Abs(float a) a 의 절댓값을 반환합니다. 5. Mathf.Lerp(float a, float b, float t) a 와 b 사이를 보간 합니다. t는 0~1 사이의 값을 넣을 수 있으며 퍼센트게이지라고 생각하시면 됩니다. 예를 들어 t에 0.5f 를 입력하면 a와 b 의 거리비율 중 절반에 해당하는..
· 유니티 C#
대리자(delegate)란? C#에서 delegate(대리자)는 메서드를 대신 호출해지는 기법으로 '대신 실행해주는 사람'이라는 사전적 정의와 유사하다. delegate를 선언하기 위해서 delegate 키워드를 사용한다. 한정자 delegate 반환타입 대리자이름 (매개변수목록) delegate는 메서드의 주소를 참조하고 있어서 메서드를 대신 호출할 수 있는데, C/C++의 참조 포인터와 유사하지만, 데이터 타입을 안전하게 처리한다는 장점이 있다. 델리게이트를 사용하는 경우 1. 함수를 변수에 담고 싶을 때 델리게이트를 사용할 수 있다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using S..
HeadlessCreator
'유니티 C#' 카테고리의 글 목록