public 변수 초기화가 안될때! 안되는 이유!
프로그래밍/모르는것들!!2014. 1. 24. 17:09
public int a = 100;
이렇게 변수 선언하고나서
이 스크립트가 연결되어있는 오브젝트를 선택하고 Inspector창에서 a의 변수값을 50으로 바꾸었습니다.
그런데 그뒤로 a = 1000000으로 바꿔도 a변수가 50으로 고정되어있는데..
Inspector창에 있는 a변수값을 다시 스크립트랑 연동시키려면 어떻게해야되나요 ?
public 변수 선언하고 Inspector창에서 변환을 안하면 계속 script랑 값이 연동되다가...
inspector창에서 한번이라도 바꾸면 고정되는거.. 그걸 푸는 방법을 질문하는겁니당 ㅜㅜㅜㅜ
어떻게보면 편한데.. 어떻게보면 불편하네요;;
다른 스크립트"들"이 참조하고있어서.. private로 바꾸면 에러가 나오고..ㅜ..
--------------------------------------------------------------------------------------------
[답변 1]
가장 쉬운 두가지 방법이 있는데요.
하나는 인스펙터에서 해당 컴포넌트 우측위에 톱니바퀴아이콘 클릭해서 리셋하면 초기화됩니다.
이게 제일 편하긴한데 다른 것도 다 초기화되는 문제가 있네요.
그리고 다른 하나는 해당 변수 위에 [System.NonSerialized] 를 입력하시고 조금 기다리시면
인스펙터에서 없어집니다. 없어진거 확인하시고 [System.NonSerialized]를 지우시면 그것만 초기값 그대로 생성됩니다.
[답변 2]
인스펙터에 값이 있다면 private으로 바꿔서 안보여도 그 값이 우선적용 됩니다.
우선 인스펙터에서 적은 값을 지우시구요.
인스펙터에선 사용안하면서 public으로 유지하시려면 [HideInInspector] 를 변쉬위나 앞에 달아주세요.
p.s. 답변1은 테스트해봤는데 2는 안해봄. 1번 답변대로 하면 확실히 되긴 하는데... 쨋든 귀찮은건 마찬가지 ㅜㅜ
유니티도 불편한점이 있구나 싶은..ㅜ..
'프로그래밍 > 모르는것들!!' 카테고리의 다른 글
NGUIPlaySound 질문했을때 답변이;; (0) | 2014.01.24 |
---|---|
프로젝트 진행 중 테스트 시 끊김.. (0) | 2014.01.24 |
용량먹는 기본 파일들! (0) | 2014.01.24 |
[링크] 가비지컬렉션에 의한 메모리관리! (0) | 2014.01.24 |
Resources - AssetBundle을 만드는데 안드로이드타겟 추가! (0) | 2014.01.24 |