목록Unity (61)
unihee1의 블로그
1. 단일 책임 원칙(Single Responsibility Principle)모든 클래스는 각각 하나의 책임만 가져야한다는 원칙으로 클래스는 그 책임을 완전히 캡슐화해야 한다.하나의 클래스가 여러 가지 기능을 담당하면 수정할 때 다른 기능에 영향을 미칠 가능성이 크기 때문이다.public class ReportManager{ public void GenerateReport() { } public void PrintReport() { } public void SaveReport() { }}ReportManager 클래스가 여러가지 역할을 수행(GenerateReport(), PrintReport(), SaveReport())하고 있다. 따라서 위의 코드는 단일 책임 원칙이 지켜지지 ..
1. UniTask와 UniRx 란?-UniTaskasync, await를 활용하여 비동기 작업을 효율적으로 처리할 수 있도록 도와주는 Unity 전용 비동기 라이브러리로 기존 Coroutine을 대체할 수 있는 기능을 제공한다. 또한 가비지 컬렉션을 줄여 성능 최적화가 가능하게 해준다. - UniRxReactive Extensions(Rx)를 Unity에 맞게 최적화한 라이브러리로 Observer 패턴을 활용하여 UI 이벤트, 입력 처리, 데이터 스트림 관리에 효과적이다. 또한 Update와 Linq를 대체할 수 있으며 반응형 UI를 제작하기 쉬워진다. 2. UniTask 활용 방법 Deleyasync UniTask LoadData(){ Debug.Log("데이터 로딩 시작"); awai..

1. 애니메이션 파라미터란? 애니메이터 컨트롤러에서 정의된 변수로서 애니메이션을 제어하고 스크립트에서 접근하고 값을 할당할 수 있다. 2. 애니메이션 파라미터 종류Int (정수) 특정 숫자 값을 기반으로 상태 구분 변수Float (실수)부드러운 값 변화를 반영하는 실수형 변수Bool (참/거짓)상태를 ON/OFF로 전환하는 변수Trigger (전환)한 번만 실행되는 이벤트성 변수 3. 사용하는 법// 정수형animator.SetInteger("파라미터 이름", 정수 값);// 실수형animator.SetFloat("파라미터 이름", 실수 값);// 참/ 거짓animator.SetBool("파라미터 이름", true/false);// 전환형animator.SetTrigger("파라미터 이름");

2025.03.27 - [Unity] - [TIL] Unity Monster 데이터 테이블 작성(ScriptableObject) [TIL] Unity Monster 데이터 테이블 작성(ScriptableObject)1. ScriptableObject란?Unity에서 데이터를 저장하고 관리하기 위한 특수한 클래스로 인스턴스를 생성하지 않아도 데이터를 유지할 수 있다.여러개의 오브젝트가 동일한 데이터를 참조할 수 있기 때문unihee1.tistory.com이전 글에서 ScriptableObject를 활용하여 Monster 데이터 테이블을 작성하였다. 데이터 테이블을 몬스터마다 하나씩 만들어 놓은 형식이었다. 하지만 몬스터 데이터를 효율적으로 관리하고 스테이지 진행에 따라 적절한 몬스터를 생성하기 위해서는 ..

1. ScriptableObject란?Unity에서 데이터를 저장하고 관리하기 위한 특수한 클래스로 인스턴스를 생성하지 않아도 데이터를 유지할 수 있다.여러개의 오브젝트가 동일한 데이터를 참조할 수 있기 때문에 데이터 재사용성이 좋고 코드에서 직접 값을 변경하는 것이 아니라 유니티 에디터에서 값만 수정하면 되기 때문에 데이터 관리가 쉬워진다.따라서 ScriptableObject를 사용하여 Monster 데이터 테이블을 작성해볼 것이다. 2. MonsterData 스크립트using System.Collections;using System.Collections.Generic;using UnityEngine;public enum StageType{ Easy, Normal, Hard}[Creat..
1. 최적화란?게임의 성능을 향상시키기 위해 자원을 효율적으로 사용하는 과정으로 같은 게임을 더 적은 연산으로 실행되게 만드는 것이 목표이다. 2 최적화의 필요성게임의 플레이 경험(UX)을 개선하는 핵심 요소로 최적화를 하면 다양한 플랫폼에 대응할 수 있기 때문에 더 넓은 유저층 확보가 가능하며 게임 시장에 경쟁력이 생긴다.불필요한 연산을 줄이기 때문에 배터리 발열 및 소모를 해결할 수 있다.최소한의 데이터만 주고 받아 서버 비용을 절감할 수 있고 서버의 안정성이 높아진다.코드가 효율적으로 동작해서 유지보수가 쉬워지고 확장성이 좋아져서 업데이트가 원활해진다.이렇듯 최적화는 선택이 아니라 필수로 게임의 장기적인 생명력을 보장한다. 3. 렌더링 최적화게임 최적화는 크게 두가지로 나눌 수 있는데 그 중 하..

1. Rigidbody란? Rigidbody 는 GameObject 가 물리 제어로 동작하게 하여오브젝트가 사실적으로 움직이도록 해준다. 2. Rigidbody에서 사용하는 이동 방식 이동 방식설명특징Velocity즉시 속도를 변경한다.물리 연산을 무시하고 즉각적으로 속도를 적용한다AddFore()힘을 가해 이동자연스러운 가속과 감속이 적용됨MovePosition()특정 위치로 이동충돌 감지를 유지하면서 이동 가능 3. velocity를 이용한 이동using UnityEngine;public class VelocityExample : MonoBehaviour{ private Rigidbody rb; void Start() { rb = GetComponent(); } ..
2025.03.11 - [C#] - [TIL] 직렬화 (Serialization) [TIL] 직렬화 (Serialization)2025.03.07 - [Unity] - [TIL]Unity_ SerializeField와 Serializable에 대해 알아보자 [TIL]Unity_ SerializeField와 Serializable에 대해 알아보자1. SerializeField와 Serializable의 개념- SerializeFieldprivate 또는 protected 변수도 유니unihee1.tistory.com전에 직렬화에 대한 글에 JSON의 개념을 아주 짧게 정리했었다.오늘은 JSON을 사용하여 데이터를 저장하고 불러오는 방법에 대해 글을 쓸 것이다. 1. JSON 기본 구조 JSON은 객체와 ..

유니티 UI의 Input Field 인스펙터를 조금 내려보면 위의 사진과 같은 Input Field Settings가 나온다.여러 항목들이 보이는데 그중에서 Content Type에 대해서 알아보도록 하겠다. 1. Standard일반적인 텍스트 입력 필드로 공백과 특수 문자를 포함한 모든 텍스트를 입력할 수 있다. 2. Autocorrected 자동 수정 기능이 활성화된 텍스트 입력 필드로 사용자가 잘못 입력한 내용을 자동으로 수정해주는 기능이 있다.* 주로 모바일에서 사용 3. Integer Number숫자만 입력할 수 있는 텍스트 필드로 정수 또는 실수 입력을 지원한다. 4. Decimal Number소수점을 포함한 숫자만 입력할 수 있는 필드로 실수 형태로 숫자를 입력할 때 사용된다 5. Alp..
using UnityEngine;using UnityEngine.InputSystem;public class CameraController : MonoBehaviour{ public Transform cameraContainer; public float minXLook = -85f; // 최소 시야각 public float maxXLook = 85f; // 최대 시야각 private float camCurXRot = 0f; // 현재 X축 회전 값 public float lookSensitivity = 3f; // 마우스 감도 private Vector2 mouseDelta; void Start() { Cursor.lockState = Curso..