251024 Revision
·
📖TIL
UGUI 에서는 UI 요소가 게임 오브젝트 단위로 관리된다.UI 요소가 화면에 출력되려면 반드시 canvas 의 하위로 편성되어야 한다. Screen Space - Overlay UI 가 카메라와 관계없이 화면 전체 위에 직접 그림카메라를 꺼도 UI 보임 Screen Space - CameraUI 가 지정된 카메라 앞 평면에 그림, World SpaceUI 가 3D 오브젝트처럼 월드 좌표계에 존재 Anchor ( 앵커 , 기준점 )부모 안에서 어디를 기준으로 배치되고 크기가 변하는지 정하는 값 Pivot ( 피벗 , 회전 스케일 기준점 )자기 자신 안에서 회전과 스케일 , 위치 오프셋의 중심점을 정하는 값
오브젝트 실습
·
🧊Unity Basic/게임오브젝트
오브젝트를 생성하고 기능을 부여해보자▲프로젝트 생성 후 하이어라키 창에서 우클릭 - 3D Object - Capsule 을 생성캡슐의 이름은 MyObject로 바꿔준다오브젝트를 선택하고 인스펙터를 통해 오브젝트가 가진 컴포넌트를 살펴보자▲오브젝트의 위치 , 회전 , 크기를 가지는 Transform ▲오브젝트를 그래픽으로 표시하기 위한 Mesh Renderer 와 Mesh Filter ▲오브젝트의 물리적인 경계를 정의하는 Collider 생성한 오브젝트는 기능이 없는 껍데기이므로 실행해도 아무런 움직임이 없다.오브젝트에 컴퍼넌트를 추가하여 기능을 추가해보자 ▲ 3D Object 에 Plane 을 추가생성시 좌표가 어긋나있으면 Transform 에서 좌표를 수정해도 되지만Transform 우측 상단의 점 세..
Adapter Pattern 핵심 코드
·
🧊Unity Basic/디자인패턴
/****************************************************** * Adapter Pattern - 핵심 데모 (C# / Unity 친화 예제) * ---------------------------------------------------- * 상황: * - 게임 코드(Client)는 IEnemy 인터페이스만 알도록 설계됨. * - 하지만 외부에서 받은 LegacyMonster 클래스는 IEnemy를 구현하지 않음. * - 어댑터(EnemyAdapter)가 LegacyMonster를 IEnemy처럼 “보이게” 만들어 * 기존 클라이언트 코드를 수정하지 않고 바로 호환시킴. * * 포인트: * - IEnemy : Target(타깃) 인터페이스 — 클라이언..
Object Pooling 핵심 코드
·
🧊Unity Basic/오브젝트풀링
▼ BulletSpawner.csusing UnityEngine;/// /// 마우스 클릭 시 오브젝트 풀에서 총알을 꺼내 쏘는 예시/// public class BulletSpawner : MonoBehaviour{ // ObjectPool 스크립트 참조 public ObjectPool bulletPool; // 발사 위치 public Transform firePoint; // 총알 속도 public float bulletSpeed = 10f; void Update() { // 마우스 왼쪽 버튼 클릭 시 발사 if (Input.GetMouseButtonDown(0)) { // 풀에서 비활성화된 총알 하나..
Object Pooling
·
🧊Unity Basic/오브젝트풀링
오브젝트 풀링 ( Object Pooling )오브젝트 풀링은 게임 개발에서 성능을 높이기 위해 자주 사용하는 기법이다.유니티에서도 매우 중요하고 자주 등장하는 개념이다. 오브젝트를 매번 생성 / 삭제하지 않고 , 미리 만들어 둔 객체를 재사용하는 기법이다.게임 중 오브젝트를 Instantiate / Destroy 하는 것은 비용이 비싸다.유니티에서 Instantiate( ) 와 Destroy( ) 는 내부적으로 메모리 할당과 해제 ( GC ) 를 수반한다.Instantiate( ) → Heap 영역에 새로 객체를 복사Destroy( ) → GC ( Garbage Collector ) 가 나중에 처리할 때까지 메모리에 남는다이게 매 프레임마다 일어난다면 , CPU 부하가 증가하고 GC 발생 시 순간적인 ..
251023-2
·
📖TIL
GIT 전략Material : 겉 표면 재질을 결정한다Mesh : 모델의 형태를 결정 짓는다 Mesh Renderer : 이걸 통해서 Mesh 의 모양을 그려준다Mesh Renderer 를 끄면 그저 보이지 않게 해준다 ctrl + shif + F 씬 뷰 카메라가 바라보고 있는 위치로 선택한 오브젝트를 이동시키는 명령
251023
·
📖TIL
Vector3.magnitude벡터의 길이 ( 크기 ) 를 계산한다원점 ( 0 , 0 , 0 ) 에서 해당 벡터까지의 거리Vector3 v = new Vector3(3, 4, 0);Debug.Log(v.magnitude); // 출력: 5 Vector3.sqrMagnitude벡터의 길이의 제곱값을 반환√ 계산을 생략하므로 속도가 훨씬 빠름Vector3 v = new Vector3(3, 4, 0);Debug.Log(v.sqrMagnitude); Vector3.Distance ( a , b )두 점 ( 벡터 ) 사이의 직선 거리를 반환Vector3 a = new Vector3(0, 0, 0);Vector3 b = new Vector3(3, 4, 0);Debug.Log(Vector3.Distance(a, ..
Unity Debug 핵심 정리
·
🧊Unity Basic/디버그
Unity 에서 Debug 클래스는 콘솔에 로그를 출력하거나 , 경고 / 에러를 표시하고디버깅 시 유용한 시각적 정보를 제공하는 도구이다.개발 중에 코드가 제대로 동작하는지 확인하기 위한 도구 집합이다. Unity Debug 클래스 핵심 명령어 정리명령어설명예시Debug.Log( )일반 로그 메세지를 콘솔에 출력한다Debug.Log( "Hello Unity!" );Debug.LogWarning( )경고 ( Warning ) 메세지를 노란색으로 출력한다Debug.LogWarning( "체력이 낮습니다" );Debug.LogError( )에러 ( Error ) 메세지를 빨간색으로 출력한다Debug.LogError( "Null Reference" );Debug.Assert( )조건이 false 일 때만 에러..
251022
·
📖TIL
레이캐스트 RaycastRaycast / RaycastHit / LayerRaycastHit레이캐스트 힛은 레이캐스트의 결과를 담는 구조체이다광선을 쐈을때 맞았다면 뭐에 맞았고 어디에 맞았는지 어떤 각도로 맞았는지 등의 충돌 세부정보를 담는다Layer & Raycast