【发布时间】:2021-09-23 09:15:41
【问题描述】:
我正在开发一个合并类游戏。当这两个对象发生碰撞时,必须生成一个对象。但是在我的代码中,我得到了两个对象。您对这种情况有任何想法,或者您有合并游戏的算法吗?谢谢。
`使用 System.Collections; 使用 System.Collections.Generic; 使用 UnityEngine;
公共类合并:MonoBehaviour {
public GameObject Circle;
public GameObject Heptagon;
public GameObject Hexagon;
public GameObject Octagon;
public GameObject Pentagon;
public GameObject Square;
public GameObject Triangle;
void start()
{
}
void update()
{
}
public void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Triangle")
{
Debug.Log("Merged !!!");
Instantiate(Circle, new Vector2(Triangle.transform.position.x, transform.position.y), Quaternion.identity);
Destroy(Triangle);
}
else if (collision.gameObject.tag == "Circle")
{
Debug.Log("Merged !!!");
Instantiate(Square, new Vector2(Circle.transform.position.x, Circle.transform.position.y), Quaternion.identity);
Destroy(Circle);
}
else if (collision.gameObject.tag == "Square")
{
Debug.Log("Merged !!!");
Instantiate(Pentagon, new Vector2(Square.transform.position.x, Square.transform.position.y), Quaternion.identity);
Destroy(Square);
}
else if (collision.gameObject.tag == "Pentagon")
{
Debug.Log("Merged !!!");
Instantiate(Hexagon, new Vector2(Pentagon.transform.position.x, Pentagon.transform.position.y), Quaternion.identity);
Destroy(Pentagon);
}
else if (collision.gameObject.tag == "Hexagon")
{
Debug.Log("Merged !!!");
Instantiate(Heptagon, new Vector2(Hexagon.transform.position.x, Hexagon.transform.position.y), Quaternion.identity);
Destroy(Hexagon);
}
else if (collision.gameObject.tag == "Heptagon")
{
Debug.Log("Merged !!!");
Instantiate(Octagon, new Vector2(Heptagon.transform.position.x, Heptagon.transform.position.y), Quaternion.identity);
Destroy(Heptagon);
}
}
} `
【问题讨论】:
-
因为 2 个具有相同脚本的相同事物正在工作。这是一个逻辑问题