【发布时间】:2014-08-28 16:34:04
【问题描述】:
我需要一些关于以下问题的帮助。我正在制作一个简单的游戏,其中你有一个角色正在奔跑,他必须跳过迎面而来的障碍。
我目前在创建游戏对象并在运行时在游戏场景中随机生成它们时遇到了困难。
我写了一个类来帮助完成这个:
using UnityEngine;
using System.Collections;
public class randomObstacles : MonoBehaviour {
public GameObject myCube;
public Vector3 spawnLocation = new Vector3(0,2,0);
// Use this for initialization
void Start () {
GameObject SpawnLocation = (GameObject)Instantiate(myCube, spawnLocation, Quaternion.identity);
}
// Update is called once per frame
void Update () {
}
}
上面的代码是我为了简单地创建对象而编写的,一个接一个。但是当我运行游戏时,它出现空 -_- !
谁能告诉我哪里出了问题,从外观上看,我的代码似乎没有达到我希望达到的效果:(
正如我在 Unity 社区论坛的教程中看到的那样,我已将上述脚本附加到一个空的 GameObject 中,但这也无济于事。 (我环顾四周,似乎没有人遇到过这样的问题 - 我可能错了)
【问题讨论】:
-
什么时候定义变量“myCube”?因为目前还没有分配。
-
如果
myCube在编辑器中预设并指向场景中存在的预制件或对象,代码应该可以正常工作。 -
@LightStriker 未分配“myCube”吗?我以为我用这行代码做了
GameObject SpawnLocation = (GameObject)Instantiate(myCube, spawnLocation, Quaternion.identity);!感谢您指出这一点!虽然我不太确定如何分配,也不确定分配到哪里!! :( -
@Kay 我尝试将脚本分配给场景中的现有对象,但没有成功。
-
1.你有一个
GameObject,在你附加randomObstacles的场景中我们称之为initial。 2. 你应该有另一个你必须转换成prefab 并命名为myCubePrefab。 3.将myCube上的myCube拖到randomObstacles组件上initial上的initial