【发布时间】:2015-03-30 23:47:27
【问题描述】:
我知道这个问题已经被问过很多次了,但没有一个答案(或者至少我从他们那里得到的答案)对我的特殊问题没有帮助。
我想动态更改变量路径的一部分,因此我不必重复相同的代码 x 次,只需更改两个字符。
这是我得到的:
在脚本的开头,我设置了对 PlayerData 脚本的引用,附加到 GameManager 对象,如下所示:
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 变量访问这些脚本以动态调整路径:
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
}
因为我害怕,我收到一条错误消息,说 PlayerEnergy 不是 UnityEngine.String 的一部分。
那么如何统一读取“currentPlayer”作为变量路径的一部分?
也许我还没有找到一些解析函数?
还是我在这里走错了路?
干杯
PS:我还尝试将 P1 和 P2 变量放入一个数组并像这样访问它们:if (PlayerData[CurrentPlayerInt].PlayerEnergy >= value){
// do stuff
}
没有成功。
【问题讨论】:
-
真的没有办法吗?还是答案如此基本,以至于我应该自己弄清楚? ( 我没有
-
我想到的一种方法是直接将路径绑定到 currentPlayer 变量,例如每个玩家的
if (currentplayerCount == 1){currentPlayer = GameObject.Find("GameManager").GetComponent.<P1_Data>();}。但是当我没有为 currentPlayer 设置类型时,我得到一个错误。我在这里声明 currentPlayer 是什么类型的变量?
标签: variables unity3d unityscript