Forum
2019.03.25
랜덤 도와주세요
-
제가 RandomScript.cs라는 파일을 만들고 square라는 GameObject를 10개를 만들어서 (square, square (1), square (2),....) 전부 RandomScript를 넣었습니다.(Comonent) 그리고 이 RandomScript.cs의 내용은 다음과 같아요
.
publci int R;
if(Input.GeyKeyDown(KeyCode.X)){
R = Random.Range(0,10);
}
이런 내용입니다...
제가 원하는건 square라는 모든 GameObject가 전부 각각 다른 R값을 가져야 하는데 문제는 R값이 모두 동일합니다..
도와주십시요..
====== 수정하겠습니다.... ======
A.cs 와 RandomScript.cs가 있습니다.
RandomScript.cs는 Start()안에 R = Random.Range(0,10);이 있습니다.
그리고 public rand_()라는 함수를 선언합니다. 이 함수는
R = A.GetComponent<A>().a;
R = Random.Range(R, R+10);
여기까진 좋습니다. 시작하면 전부 다른 값을 가지니까요
더 정확히는, X를 누르면
A.cs가 square1,2,3,4,...의 모든 R값을 비교해서 가장 높은 square를 알아냅니다.
R값이 가장 높은 square를 k번째 square 즉, square[k]라고 합시다.
A.cs가 k값을 알아낸 직후 바로 class에서 public int a; 선언
a = sqaure[k].GetComponent<RandomScript>().R;
i반복문 돌려서
sqaure[i].GetComponent<RandomScript>().rand_();
를 했습니다.
이제 여기서 모든 sqaure들이 같은 값을 가집니다.. 왜그런지 모르겠습니다...
{문법 스펠링 틀렸을수도 있지만, 문법이 위와 같다는 것 뿐, 디버깅은 됩니다.}
- Replies
-
동일한 코드 동일한 방식으로 빌드해봤을때 정상 작동 확인했습니다 (10개의 게임오브젝트 만들어서 각각 넣어서 확인도 해봤습니다)
우연히 같은값이 나왔거나, 다른 문제가 있는게 아닌가 싶네요gominky 2019.03.25 -
맞습니다... 다른문제같아서 내용 수정중입니다..
castle0416 2019.03.25
-
구조가 조금 복잡하네요.
가장 높은 값을 뽑아내는 함수부분에 Debug 돌려서 가장 높은 값이 항상 동일한지 확인해보시면 될꺼같습니다.gominky 2019.03.25 -
해봤습니다.. 시작했을때나 수동으로R값을 바꿨을때 x를 누르면 정상적으로 높은값을 가지는 게임오브젝트와 그 인덱스를 갖습니다.
castle0416 2019.03.25
-
확실한건 위 코드 내용만으로는 오류사항이 없습니다
빼먹은 부분에 뭔가 실수코드가 들어있는것같은데.. 함수 리펙토링 하시면서 실수하신 부분 찾는 수 밖에 없는것 같네요
오브젝트 이름들이 너무 어렵게 되어있습니다
차후 수정보완을 위해서라도 리펙토링 진행하시면서 함수나 변수 이름 변경을 권장합니다
gominky 2019.03.25
