유니티 95

인벤토리 스크롤 설정 (Scroll View, Grid Layout Group)

Scroll View : 스크롤 기능 Grid Layout Group : 자식 오브젝트들을 일정하게 정렬 설정 방법 Scroll View 클릭 필요없는 Scrollbar는 삭제 (둘 다 삭제해도 됨) Viewport에서 Source Image는 삭제, 스크롤 방향을 체크 * Horizontal : 수평 * Vertical : 수직 Content 안에 슬롯 생성 Content에 Grid Layout Group 컴포넌트 추가 Padding, Cell Size, Spacing을 조절 Content의 크기가 자식 오브젝트들을 모두 수용하는 크기여야지 스크롤이 작동한다. 이것을 자동으로 조절하기 위해 Content Size Fitter 컴포넌트 추가, Preferred Size 클릭

유니티 2023.12.14

3D 1인칭 이동 구현 (Input System)

W/S/A/D 이동 구현 마우스 카메라 회전 구현 Space 1단 점프 구현 준비 1. Player Player 빈 오브젝트를 생성하고, 자식 오브젝트로 CameraContainer를 생성 CameraContainer 안에 Main Camera를 넣음 Main Camera 설정 Player 오브젝트에 Capsule Collider, Rigidbody 추가 2. Input System * 앞 부분은 Input System(2D)와 동일 * https://kkln2486.tistory.com/126 2D 이동 (position, velocity, Input System) position 오브젝트의 position 값을 변경해서 이동 GetAxis -1 ~ 1 까지의 숫자를 입력으로 불러옴 void Updat..

유니티 2023.12.14

GameObject 검색

전체 검색 (GameObject) 하이어라키 상의 모든 Object를 검색하기 때문에 속도가 느림 (Update에서 사용 x) 한번만 사용하는 용도로 Start, Awake에서 사용 비활성화 된 Object는 찾을 수 없음 Find GameObject 이름으로 검색 public GameManager gameManager; void Start() { gameManager = GameObject.Find("GamaManager").GetComponent(); } FindWithTag GameObject Tag로 검색 FindGameObjectWithTag와 동일한 기능 가급적 Find 보다는 FindWithTag 사용 public Transform Player { get; private set; } priv..

유니티 2023.12.11

Object Pool

Object Pool 오브젝트를 미리 생성하고 삭제하지 않고, 재사용 해서 최적화하는 방법 프리팹의 Instantiate, Destroy 함수는 비용이 큼 총알과 같이 자주 생성되고 삭제되는 프리팹에 사용 총알 Effect Object Pool 구현 1. 스크립트 ObjectPoolManager using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjectPoolManager : MonoBehaviour { public ObjectPool ObjectPool { get; private set; } private GameObject _bulletEffectObj; public void Init..

유니티 2023.12.08

캐릭터 스텟 만들기 (ScriptableObject)

ScriptableObject 유니티에서 제공하는 대량의 데이터를 저장하는데 사용하는 데이터 컨테이너 데이터 컨테이너로 데이터를 공유할 수 있고, 이를 통해 메모리 사용량 줄일 수 있음 스크립트 작성 CharacterStats using System; public enum StatsChangeType { Add, Multiple, Override, } [Serializable]// class, struct를 인스펙터창에서 확인 가능 public class CharacterStats// MonoBehaviour 상속 필요 x { public StatsChangeType statsChangeType; [Range(1, 100)] public int maxHealth;// 인스펙터 창에서 범위 조절 가능 [R..

유니티 2023.12.08

사운드 슬라이더 바 만들기

1. 슬라이더 추가  볼륨은 -80~20까지 존재하지만, -40~0까지만 사용함 (-40 이하는 거의 들리지 않고, 0 이상은 음악이 깨짐)  2. AudioSource 준비  3. AudioMixer 설정Mixers 이름 설정Master - BGM, SFX 그룹으로 구분AudioSource에서 출력되는 사운드 볼륨을 AudioMixer에서 제어 가능Expose 설정과 파라미터 설정      Volume 부분을 우클릭해서 Expos 'Volume (of Master)' to script를 클릭 (Master, BGM, SFX 모두)  다시 Audio Mixer에서 Exposed Parameters를 클릭해서 각각 이름을 변경  Audio Source - Output을 각각 AudioMixer와 연결  4..

유니티 2023.12.05

데이터 저장, 불러오기 (PlayerPrefs)

PlayerPrefs 앱을 껐다 켜도 데이터가 유지되게하는 데이터 보관 방법, 라벨을 붙여서 저장 저장 PlayerPrefs.SetFloat("bestScore", 어떤숫자값); PlayerPrefs.SetString("bestScore", 어떤문자열); 불러오기 저장된 정보가 없으면 0이 반환됨 PlayerPrefs.GetFloat("bestScore"); PlayerPrefs.GetString("bestScore"); PlayerPrefs.GetFloat("bestScore", 1f);//데이터가 없다면 1을 가져옴 그 외 PlayerPrefs.HasKey("bestScore");//true, false로 데이터 존재하는지 확인 PlayerPrefs.DeleteAll();//데이터 모두 지우기

유니티 2023.12.05