프로퍼티 변수를 사용하면 인스펙터에 노출이 되지않아 불편할때가 많다. 물론 아예 방법이 없는것은 아니다. public GameObject WrongBallProperty { get { return this.wrongBallProperty; } set { //do whatever } } [SerializeField] private gameObject wrongBallProperty; 이렇게 private변수를 하나 더 만들어서 연결해줘도 되고 인스펙터를 디버그모드로 변환해도 보이긴 보인다. 다만 뭔가 좀더 최소한으로 건드리면서 인스펙터에 노출시키는 방법을 메모한다. 그냥 SerializeField를 프로퍼티에 냅다 써버리면 이렇게 invalid하다고 뜨고 실제로 아무변화도 안생긴다. 하지만 앞에 field..
Unity - Scripting API: AssetDatabase.RenameAsset docs.unity3d.comUnity프로젝트내의 에셋의 이름을 런타임중에 바꿀수있는 함수이다.구글시트에서 불러온 데이터를 스크립터블 오브젝트에 입력하고 오브젝트의 이름까지 바꿔주는 자동화 작업에 사용했다. 사용법은 이런식이다. string assetPath = AssetDatabase.GetAssetPath(data.GetInstanceID()); string fileName = "newFileName"; AssetDatabase.RenameAsset(assetPath, fileName); AssetDatabase.S..
보통 유니티로 개발하다보면 난수생성이 필요할 때 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대용으로 쓰면 될것같은데 주의점은 에디터에서 플레이를 누를때만이 아닌 컴파일이 되고난 후에도 에디터상에서 실행이 된다. 따라서 런타임중에 내용이 채워지는 변수들을 참조하면 컴파일 후에 에러가 출력될것으로 예상된다. 빌드에서도 잘되는지는 아직 확인은 안해봤지만 이렇게 쓰는사람이 있는것으로 보아 빌드에서도 잘 될거라고 생각된다.
나중에 기억하기위한용도로 작성 1. 우선 Anaconda를 설치 가상환경을 사용하여 혹여나 다른 파이썬 패키지에 영향이 가지않게 하기위함 2. 가상환경 만들기 아나콘다 프롬프트를 열어서 conda create -n ml-agents python=3.7 이러면 ml-agents라는 가상환경이 만들어지게됨 현재로서는 ML-Agents는 파이썬 3.6~3.7까지 지원한다고함 그리고 activate ml-agents를 입력해서 방금만든 가상환경을 액티브시킴 3. 파이토치 설치 pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html 를 입력하면 파이토치가 설치됨 4. ml-agents 파이썬패키지 설치 python -m pip..