일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 효과음
- ObjectPool
- InputManager
- 인터페이스
- inputsystem
- 스택
- skybox
- c#
- FSM
- 코루틴
- delegate
- Generic
- LINQ
- 유니티
- BGM
- 프로그래머스
- 유한상태머신
- UI
- 메서드
- script
- 스파르타내일배움캠프
- invokec#events
- unity
- 자료구조
- 람다식
- soundmanager
- 장애물달리기
- 배열
- 직렬화
- 비선형자료구조
- Today
- Total
목록Unity 개발 (35)
Unity 개발일지
[Behaviour Tree란?]간단히 말하면 Behaviour(행동)을 Tree 구조로 만들어 AI의 행동을 제어하는 것이다. BT라고 줄여서 쓰기도 한다. Tree는 Node를 저장하는 하나의 컨테이너로Node는 int, float, string, char 등의 기본적인 타입을 저장하는 공간이라고 생각하는 경우가 많은데,Node는 사용자가 정의할 수 있는, 혹은 미리 정의된 모든 타입이 저장될 수 있다. 즉, Behaviour Tree의 Node 내부에 저장되는 것은 행동이라 말하는 코드조각들을 저장하는 것이다. Behaviour Tree에는 Tree의 Root역할을 하는 Task가 존재하며, 깊이 우선 순위(DFS)로 작업을 실행작업의 순서는 왼쪽에서 시작하여 -> 오른쪽 순서로 진행 1. 루트(..
[멀티플레이 동기화는 TCP 일까? UDP일까?]TCP(Transmission Control Protocol)TCP는 전송을 제어하는 프로토콜(규약)이라는 뜻으로 풀어쓰면 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 주로 전송 계층에서 사용하는 프로토콜로, 연결 지향적이며 신뢰성 있는 데이터 전송을 보장한다. TCP는 데이터 패킷의 순서와 무결성을 확인하며, 패킷 손실 시 재전송을 요청한다. 주로 웹 페이지, 이메일, 파일 전송 등에 사용된다. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다.TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용하는데, 그렇다면 '비연결형인 서비스..
[프로세스와 스레드의 차이는 무엇일까?]프로세스를 이해하기 위해서는 일단 프로그램이 무엇인지 알아야 한다. 프로그램은 윈도우의 exe 파일이나 맥의 dmg 파일과 같은 컴퓨터에서 실행할 수 있는 파일을 통칭한다.아직 파일을 실행하지 않은 상태이기 때문에 정적 프로그램(Static Program) 줄여서 Program이라고 부른다.즉, 프로그램은 쉽게 말해 그냥 코드 덩어리인 것이다. 는 실행 중인 프로그램의 인스턴스로, 각 프로세스는 별도의 메모리 공간을 가지고 독립적으로 실행된다.프로세스는 프로그램을 실행 시켜 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태를 말한다. 즉, 컴퓨터에서 작업중인 프로그램을 의미한다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해 줘야 실행..
[확인문제] 1. 아래와 같이 코드를 작성하고 오브젝트에 작성한 스크립트 컴포넌트를 추가했습니다.public class SomeClass : MonoBehaviour{ [SerializeField] private int intValue = 2; private void Start() { Debug.Log(intValue); }}인스펙터에서 intValue의 값을 3으로 변경하고, intValue 앞에 선언된 [SerializeField]를 제거헀습니다.private int intValue = 2;이 때 Debug.Log(intValue); 의 출력 결과는 어떻게 될까요?더보기Debug.Log(intValue);의 출력 결과는 2가된다. SerializeField를 제거하면, ..
[확인문제] 1. 메모리 최적화 방법에 대해 알고 있는 것이 있나요? - a. POT(Power of Two) 텍스쳐에 대해 설명해주세요. - b. 아틀라스에 대해 설명해주세요. - c. 오브젝트 풀에 대해 설명해주세요.더보기 POT(Power of Two) 텍스쳐POT 텍스처는 가로와 세로의 길이가 2의 제곱수(예: 128x128, 256x256)로 이루어진 텍스처를 의미한다.이러한 텍스처는 GPU에서 메모리를 효율적으로 사용하고 빠르게 처리할 수 있다.또한 Mipmap을 생성할 때도 유리합니다. * Mipmap : 3차원 그래픽스의 텍스처 매핑 분야에서, 밉맵(mipmap)은 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이..
[확인문제] 1. InvokeRepeating을 통해 반복 실행 중인 메서드는 오브젝트를 비활성화하면 멈출까요?더보기InvokeRepeating은 MonoBehaviour와 연관되어 있기 때문에 오브젝트가 비활성화 되더라도 계속 실행된다.(오브젝트 비활성화는 MonoBehaviour 자체의 기능을 막지 못하기 때문!) 오브젝트 비활성화를 통해 InvokeRepeating 메서드를 멈추고 싶다면 CancelInvoke()를 직접 호출하거나,OnDisable() 콜백 함수를 사용하여 오브젝트 비활성화 시점에 InvokeRepeating을 중단하도록 코드를 작성한다. 2. Coroutine을 통해 반복 실행 중인 메서드는 오브젝트를 비활성화하면 멈출까요?더보기Coroutine은 MonoBehaviour와 연관..
[확인문제] 1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?더보기Update와 FixedUpdate 모두 호출되지 않는다.Time.timeScale은 게임의 시간 흐름을 제어하며, 0으로 설정하면 일반적인 프레임 업데이트가 멈춘다.따라서, Time.timeScale을 0으로 사용하면 게임을 일시정지하거나 특정 이펙트를 구현하는 데 유용할 수 있으나 게임 오브젝트의 로직을 제어하는데 사용해서는 안된다. 로직 제어에는 Start, Awake, OnEnable, OnDisable과 같은 MonoBehaviour 생명주기 메서드를 사용해야한다.2. Update의 호출주기에 영향을 주는 것은 무엇일까요?더보기프레임 레이트Upd..
[Delegate란?]C# 언어에서 사용되는 일종의 형식(type)으로, 메서드 참조를 저장하고 실행할 수 있는 기능을 제공한다. 델리게이트는 함수 포인터와 유사하지만, 더 안전하고 유연한 방식으로 메서드를 가리킬 수 있다. 델리게이트는 주로 콜백(callback) 메서드를 정의하거나, 이벤트 기반 프로그래밍을 구현할 때 사용됩니다. 콜백 메서드를 정의하고 메서드를 대신 호출.메서드를 매개변수로 전달가능하다. SetGold라는 함수를 delegate로 선언을 해주고,event 등록을 함으로써 매개변수처럼 사용을 할 수 있게된다. SetGoldEvent라는 함수는 매개변수로 넘어온 함수(event등록을 한 SetGold형식의 변수) 를 체인으로 구독, 구독한 함수를 매개변수로 사용할 수 있다. 그렇다면 ..