【发布时间】:2020-02-27 03:19:04
【问题描述】:
当我的子弹与一个球相撞时,如果附近或同一位置有 2 个球,则所有对象都会同时被摧毁。我在脚本中设置了当子弹与其他玩家相撞时它将被摧毁。
我试图用 else if 检查每种球的类型
if(other.gameObject.tag == "yerrow")
{
if (ballType >= 0 && ballType < 4)
{
clone1 = (GameObject)Instantiate(_ball, gameObject.transform.position, Quaternion.identity);
clone1.gameObject.GetComponent<Balloon_Behave>().ballMove = -4;
clone1.gameObject.GetComponent<Balloon_Behave>().transform.position = new Vector2(transform.position.x - Random.Range(0, 0.5f), transform.position.y - Random.Range(0,1));
clone2 = Instantiate(_ball, gameObject.transform.position, Quaternion.identity);
Destroy(this.gameObject);
}
else if (ballType == 4)
{
Destroy(this.gameObject);
}
Debug.Log("Yerrow COLl");
}
Yerrow Script 自毁
private void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag != "Player")
{
Destroy(this.gameObject);
player.CanFire = true;
}
}
编辑注意:每个球与被欺负的球相撞都是破坏意图。我想用一颗子弹摧毁一个物体
【问题讨论】:
-
这可能是因为你的子弹太快了,在它检测到第一次碰撞之前它注册了另一个。您可以做的是在与某物碰撞时禁用对撞机,它应该防止两次射击
-
耶罗、子弹、球、球员,4种还是只有2种?
-
我只是尝试将速度降低得太慢并尝试一下。结果是一样的。
-
@shingo yerrow 是子弹的标签,球是玩家短的目标对象
-
这是关于c#,而不是unityscript。