【发布时间】:2016-01-27 18:30:26
【问题描述】:
我在 Unity 中创建了一个简单的 2D 触摸游戏,我在场景顶部每 3 秒产生一次尖刺,当尖刺落下时,玩家会在尖刺击中下面的角色之前轻按尖刺,但是,当我测试时游戏中,当我点击尖峰(游戏对象)时,它会破坏场景中的所有尖峰(游戏对象)。代码如下:
public GameObject spike;
public float spawnTime1 = 1f;
// Use this for initialization
void Start () {
InvokeRepeating ("SpawnSpike", spawnTime1, spawnTime1);
}
// Update is called once per frame
void Update () {
for (var i = 0; i < Input.touchCount; ++i) {
if (Input.GetTouch(i).phase == TouchPhase.Began) {
Destroy (gameObject);
}
}
}
void SpawnSpike () {
var newSpike = GameObject.Instantiate (spike);
newSpike.transform.position = new Vector3 (Random.Range(-3, 3), 11f, 0f);
【问题讨论】:
-
也许您的游戏对象是嵌套的,而您破坏了它们的“父对象”?你能告诉我们层次结构吗?
-
这个脚本是某种独特的“游戏管理器”吗?如果是这样,那很好。但是在您的
Update()中,您如何计算gameObject是什么? -
@d4Rk。是的,当然:dropbox.com/s/z2asmjn4muv5tw0/…
-
@andeart 在“Update()”中,我有我的触摸功能,当玩家触摸场景时,它会计算按下的触摸次数并破坏作为尖峰(精灵)的“gameObject”。 ??????
-
到目前为止似乎还可以。我认为您需要共享更多代码。此代码位于何处?它是一种单一行为吗?但是你会用
Destroy (gameObject);毁掉自己所以可能不会..
标签: c# unity3d sprite gameobject