나는이 질문을 여러 번 물어 봤지만 대답 (또는 적어도 내가 그들을 빼앗은 것)은 내 particiular 문제에 도움이되지 않았다.동적으로 변수 경로의 일부를 변경합니다.
변수 경로의 일부를 동적으로 변경하려고하므로 동일한 코드를 두 번 문자가 바뀌면서 x 번 반복하지 않아도됩니다. 여기
내가 가지고 무엇을 : 내 스크립트의 시작 부분에서 , 난이 같은 GameManager 객체에 부착 PlayerData 스크립트에 대한 참조, 설정 해요 : 나중에var P1 : P1_Data;
var P2 : P2_Data;
function Start(){
P1 = GameObject.Find("GameManager").GetComponent.<P1_Data>();
P2 = GameObject.Find("GameManager").GetComponent.<P2_Data>();
}
을, 내가 원하는 동적 경로를 조정합니다 currentPlayer 변수를 사용하여 이러한 스크립트 액세스 : 내가 두려워, 나는이 PlayerEnergy 유니티의 일부가 아니라고 말하는 오류를 가지고
var currentPlayer : String = "P1"; //this actually happens along with some other stuff in the SwitchPlayers function, i just put it here for better understanding
if (currentPlayer.PlayerEnergy >= value){
// do stuff
}
Engine.String.
그럼 어떻게 "currentPlayer"를 변수 경로의 일부로 읽을 수 있습니까?
아마도 일부 구문 분석 함수를 찾지 못했습니까?
아니면 완전히 잘못된 길로 가려고합니까?
건배
PS :
if (PlayerData[CurrentPlayerInt].PlayerEnergy >= value){ // do stuff }
없는 성공 : 또한 배열에 P1 및 P2 변수를 넣고 같이 그 액세스 시도. 모든
정말 할 방법이 없습니까? 아니면 대답이 너무 기초적인 것인가? 나 혼자서 알아 내야 했는가? (나는 그렇지 않다.) 각 경우에 하나의 변수가 변경되는 함수의 경우 사람들이 끝없는 글을 쓰는 것을 매우 의심한다 ... – Tuxedomask
한 가지 방법은, _currentPlayer_ var에 대한 경로를 직접 바인딩하는 것이라고 생각했다. if (currentplayerCount == 1) {currentPlayer = GameObject.Find ("GameManager"). GetComponent.();}'각 플레이어에 대해. 하지만 _currentPlayer_에 대한 유형을 설정하지 않으면 오류가 발생합니다. currentPlayer를 선언 할 변수의 유형은 무엇입니까? –
Tuxedomask