보통 유니티로 개발하다보면 난수생성이 필요할 때 UnityEngine.Random을 사용하게된다. 다만 비동기화 멀티스레딩 코딩중 Task를 쓸때에는 Task안에서 UnityEngine의 API는 거의 다 사용할 수 없다. 에러를 띄워주는것도 아니고 그냥 그 줄에서 스레드가 작업을 마쳐버리니 굉장히 주의해야 할 부분이다. 그래서 Task에서 난수생성이 필요할때 대체재로 쓸쑤있는 System.Random의 사용법을 메모한다. Random 클래스 (System) 의사(pseudo) 난수 생성기를 나타냅니다. 이 알고리즘은 무작위성에 대한 통계적인 특정 요구 사항과 일치하는 숫자 시퀀스를 생성합니다.Represents a pseudo-random number generator, which is an algor..
GetInstanceID 와 GetHashCode 정리할 것. [라면과뽀글이] [오후 4:18] 질문이있어용 [라면과뽀글이] [오후 4:18] GetInstanceID랑 GetHashCode랑은 같은게 맞나요? [라면과뽀글이] [오후 4:24] 자답일지는 모르겠는데 GetInstanceID는 유니티에서 쓰는거같.. daebalstudio.tistory.com 인벤토리의 세이브를 구현할때 아이템의 고유번호를 InstanceID를 섞어서 지정해주려하니 ScriptableObject타입이라 GetInstanceID가 없었다. GetHashCode는 사용할수있었는데 어떤차이인지 설명해주는 게시물 스크랩 결론은 완전히 같다.
최근 발견한 소소한 팁 ScriptableObject는 컴포넌트가아닌 에셋형태로 사용하기 때문에 예약함수들은 못쓰겠구나라고 알고있었는데 최근 알아보니 OnEnable과 OnDisable을 실행이 된다. OnDisable은 사실 호출 타이밍이 불확실해서 필요하면 더 알아봐야 할것같다. OnEnable은 Start대용으로 쓰면 될것같은데 주의점은 에디터에서 플레이를 누를때만이 아닌 컴파일이 되고난 후에도 에디터상에서 실행이 된다. 따라서 런타임중에 내용이 채워지는 변수들을 참조하면 컴파일 후에 에러가 출력될것으로 예상된다. 빌드에서도 잘되는지는 아직 확인은 안해봤지만 이렇게 쓰는사람이 있는것으로 보아 빌드에서도 잘 될거라고 생각된다.
enum(열거형)에서는 Flag(FlagsAttribute)속성이 있는데, 이를 이용하면 하나의 속성을 선택하는 것이 아니라 여러 속성을 선택하는 것이 가능합니다. 다음의 코드는 열거형의 Flag연산을 쉽게 정리해 놓은 것입니다. [Flags] public enum Column { None = 0, Priority = 1
SerializableDictionary - Unify Community Wiki wiki.unity3d.com 유니티에서 Dictionary를 인스펙터에서 관찰할수있게 만든 커스텀 Dictionary 스크립트이다. 이런식으로 인스펙터에서 보여준다. 다만, 사용해보니 처음 초기화할때 기존 Dictionary는 new Dictionary(originDictionary) 이렇게 초기화하면 originDictionary의 컨텐츠가 카피된 상태로 초기화됐었는데 그 기능은 구현 안돼있다. C# Dictionary 복사 예제, 딕셔너리 class copy 사용법 Dictionary 복사. C# Dictionary에는 복사 생성자가 있습니다. 기존 딕셔너리 객체를 생성자로 넘기면 그대로 복사가 되는데, 현재로썬 가장..