728x90
반응형

unity 8

유니티 public vs SerializeField 차이점 정리

둘 다 에디터의 인스펙터에 보이기 때문에 비슷한 듯 다른 두 가지에 대한 차이점을 정리하려고 한다. public이란?public은 클래스 외부에서도 접근 가능한 멤버를 정의할 때 사용하는 접근 제한자public int health = 100;인스펙터(Inspector)에서 값이 노출됨외부 클래스에서도 object.health처럼 직접 접근 가능매우 직관적이지만, 캡슐화(정보 은닉)가 깨질 수 있음 SerializeField는 무엇인가?SerializeField는 private 변수임에도 인스펙터에서 보여지도록 해주는 Unity의 속성(Attribute)[SerializeField]private int speed = 5;인스펙터에서는 public처럼 값이 보이고 수정 가능외부 스크립트에서는 접근 불가능 (..

Unity 학습 2025.06.20

유니티3D 문 열고/닫기 상호작용 만들기

간단한 코드 예시와 함께 문 열고 닫는 상호작용을 만들어보려고 한다. 1. 인터페이스 정의상호작용 대상에 붙일 인터페이스를 정의한다.public interface IInteractable{ void Interact(); string GetInteractText(); // UI 힌트용} 2. Layer 지정Door 오브젝트의 Layer를 지정해준다.알맞은 Layer가 없다면 Add Layer 클릭 후 추가한다.Door는 Collider 컴포넌트가 있어야 한다. 3. 상호작용 Text 추가Hierarchy >> UI >> Text - TextMeshPro 추가Canvas와 함께 Text가 자동생성된다.Canvas 상에서 원하는 위치, 앵커, 글씨체 같은 것들을 수정한다. 4. Interactio..

Unity 학습 2025.06.19

Unity 오브젝트 풀링(Object Pooling)과 프리팹(Prefab)의 개념정리

Prefab이란?Prefab은 Unity에서 게임 오브젝트를 에디터 상에서 미리 저장해 둔 템플릿(청사진)이다.자주 사용하는 오브젝트를 사전 구성해 저장해 두고, 코드에서 Instantiate()를 통해 복제하여 사용한다. 특징에디터에서 만든 오브젝트의 구조/컴포넌트를 유지인스턴스를 여러 번 생성해도 유지보수 용이예: 플레이어, UI 패널, 버튼, 적 캐릭터 등등Object Pooling이란?Object Pooling(오브젝트 풀링)은 게임에서 자주 생성되고 파괴되는 오브젝트를 미리 생성한 뒤, 필요할 때 꺼내 사용하고 다시 재활용하는 기법이다. 왜 필요한가?Instantiate()와 Destroy는 메모리 할당과 해제를 반복해 GC(가비지 컬렉션)을 유발특히 총알, 이펙트, 몬스터 등 짧은 시간에 많이..

Unity 학습 2025.06.19

Unity ScriptableObject의 개념과 MonoBehaviour와의 차이점

ScriptableObject란?Unity에서 제공하는 비-컴포넌트 기반의 경량 클래스로, 게임 오브젝트에 부착하지 않고도 데이터를 저장하고 공유할 수 있는 자산 형태의 객체 특징 항목내용컴포넌트가 아님GameObject에 부착되지 않는다생명주기 없음Start(), Update() 같은 생명주기 메서드가 없다메모리 효율중복 인스턴스 없이 다수의 오브젝트가 공유 가능하다에디터 연동ScriptableObject를 에디터에서 .asset 형태로 저장 가능하다복잡도 낮음씬에 존재하지 않아도 되므로 관리가 단순하다 주요 사용 사례분야예시게임 데이터무기/캐릭터/스킬/아이템 정보 정의설정값 관리난이도, 튜토리얼 진행 정보, 전역 설정공유 데이터런타임에 여러 오브젝트가 참조하는 공통 상태상태 정의FSM 상태 정의,..

Unity 학습 2025.06.16

유니티 무료 에셋을 활용한 3D 캐릭터와 움직임 구현

유니티 무료 에셋을 활용해 간단함 움직임과 애니메이션을 구현하고자 한다. 준비물1.Synty Studio POLYGON 스타터팩 Starter Pack - Synty POLYGON - Stylized Low Poly 3D Art | 자습서 | Unity Asset StoreGet the Starter Pack - Synty POLYGON - Stylized Low Poly 3D Art package from Synty Studios and speed up your game development process. Find this & other 자습서 options on the Unity Asset Store.assetstore.unity.com2.Unity Starter Assets - ThirdPerso..

Unity 학습 2025.06.09

간단한 3D 캐릭터 이동과 점프

3D 오브젝트를 이용해 캐릭터 이동과 점프를 구현해보고자 한다. WASD >> 상하좌우 수평이동Space바 >> 수직 점프 1. 3D 캐릭터 또는 오브젝트를 생성한다 2. Rigidbody와 Collider 컴포넌트를 추가한다 3. PlayerController 스크립트를 추가한다 using UnityEngine;public class PlayerController : MonoBehaviour{ public float moveSpeed = 5f; //이동 속도 public float jumpForce = 5f; //점프 강도 Rigidbody rb; bool isGrounded; //바닥에 닿아 있는지 여부 // Start is called once before the..

Unity 학습 2025.06.08

월드좌표(Space.World)와 로컬좌표(Space.Self)

좌표계 차이Space기준설명Space.Self해당 오브젝트의 로컬 좌표계 기준회전된 상태일 때 이동 방향도 함께 바뀜Space.World전역 좌표계(월드 기준)씬 전체 기준으로 항상 같은 방향으로 이동 비교 예시Self : 오른쪽으로 이동하려 할 때, 오브젝트가 회전된 상태면 생각하던 오른쪽 방향이 아닐수도 있게 움직임World : 오브젝트가 어떤 방향을 보고 있든 항상 x축(오른쪽)으로 이동함

Unity 학습 2025.06.07

ForceMode 종류

ForceMode설명대표 예Force매 프레임마다 작용하는 작은 지속적인 힘물체가 바람에 밀려 가는 듯한 효과Impulse짧은 시간 동안 큰 힘이 순간적으로 작용점프, 총알 발사 등 순간적인 반응Acceleration질량을 무시하고 가속도 적용질량과 관계없는 일정한 움직임VelocityChange질량 무시 + 속도 자체에 직접 변화공중 제어, 속도 덧셈 효과 등 Force와 Acceleration은 이미 굴러가고 있는 중에 사용하기 적합하다.무게를 적용하려면 ForceMode.Force무게를 무시하려면 ForceMode.Acceleration Impulse와 VelocityChange는 정지 상태에서 이동을 시작하려 할 때 적합하다.무게를 적용하려면 ForceMode.Impulse무게를 무시하려면 For..

Unity 학습 2025.06.07
728x90
반응형