我非常坚持使用这段代码。我不会发布相关部分的整个代码。
问题是: 当玩家丢弃一个项目时,所以基本上掉落了正手或支持手的孩子(库存老虎机),然后它会给出以下错误: '变量'主手'尚未分配。'
但是已经分配了变量,并且脚本的工作方式如何。我只是想摆脱这个错误。有什么想法吗?
请帮忙!
public bool handsFull = false;
public Transform mainHand;
public Transform supportHand;
public GameObject player;
public GameObject[] Items;
public float throwDistance = 2f;
void Update () {
//Dropping Items
if (Input.GetKey (KeyCode.G)) {
if (Input.GetMouseButtonDown (0) && mainHand.childCount > 0) {
GameObject itemToDrop = mainHand.GetChild(0).gameObject;
DropItem (itemToDrop);
}
if (Input.GetMouseButtonDown (1) && supportHand.childCount > 0) {
GameObject itemToDrop = supportHand.GetChild(0).gameObject;
DropItem (itemToDrop);
}
}
}
public void DropItem(GameObject itemToDrop)
{
for (int i = 0; i < Items.Length; i++) {
GameObject itemDropped;
if (Items[i].name == itemToDrop.name) {
itemDropped = (GameObject)Instantiate (Items [i], itemToDrop.transform.position, Quaternion.identity);
itemDropped.tag = "Item";
itemDropped.name = itemToDrop.name;
Destroy (itemToDrop);
itemDropped.transform.SetParent (null);
itemDropped.transform.Translate (0, 0, throwDistance);
itemDropped = null;
itemToDrop = null;
return;
//hand not defined? -
}
}
}
答案 0 :(得分:4)
解决方案很简单,Unity不是OO。
别忘了,上面的剧本......
很可能在某处有一个GameObject,附带了脚本。你不知道它或者你忘了它。
(*)请记住,Prefabs可以很容易地在Unity中找到你。不要忘记你只能在&#34;内设置检查员拖拽。 Unity中的预制件 - 它有点令人困惑。在预制件中,您无法连接到外部世界的任何地方,直到现场。