본문 바로가기

unity26

[Unity | 유니티] 로그 On/Off를 위한 전용 로깅 스크립트 만들기 릴리즈 빌드 시 전용 로깅 스크립트를 사용하면 Debug.Log( )를 일괄 제어할 수 있다. 로그를 사용하지 않으려면 #define USE_LOGS를 주석 처리하면 된다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361.. 2018. 11. 29.
[Unity | 유니티] 커스텀 정렬 알고리즘 만들기 특정한 조건을 충족하는 정렬 알고리즘이 필요할 경우 커스텀 정렬 알고리즘을 만드는 방법을 소개한다. 기존 list.sort((a,b) => a.CompareTo(b)); //오름차순 정렬 list.sort((a,b) => b.CompareTo(a)); //내림차순 정렬 커스텀 List list = new List() {a, b, c, d}; list.sort(new SortComparer()); 12345678910111213141516171819public class SortComparer : IComparer{ public int Compare(item x, item y) { //정렬 조건을 설정한다. //item의 weight를 내림차순으로 정렬한다고 가정해보자. //x 순서가 y보다 앞이면 -1 .. 2018. 11. 21.
[Unity | 유니티] Serializable Class 활용하기 인스펙터에서 상의 변수들을 그룹으로 분류하여 serializable class로 만들면 관리가 용이하다. Serializable Class 만들기 공통 속성을 가진 변수들을 그룹지어 클래스를 만든다. [Serializable] 속성을 부여한다. 생성한 클래스에 변수들을 모두 public으로 선언한다. Awake()나 Start()에서 초기화할 필요가 없다. 초기화는 유니티가 자체적으로 해 준다. 변수 선언시 초기화 값을 지정할 수 있다. 플레이어가 가진 속성을 이동속성과 체력속성으로 분리하여 serializable class로 관리해 보았다. 123456789101112131415161718[Serializable]public class MovementProperties //Not a MonoBehavi.. 2018. 11. 21.
[Unity | 유니티] 특정 디렉토리에서 프리팹 또는 파일 로드하기 경로에 있는 첫번재 오브젝트를 찾아 반환한다. 경로는 대소문자를 구분함에 유의해야 한다. 오브젝트를 찾지 못하면 Null을 반환한다. 1234567891011using UnityEngine;using UnityEditor; public class LoadAssetFromDirectory : MonoBehaviour{ static void ImportExample() { Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/Textures/texture.jpg", typeof(Texture2D)); GameObject obj = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/Prefab/play.. 2018. 11. 15.