我是一个团结的新手,所以我无法弄清楚,我的游戏中有海豚碰撞时死了,所以它有两个动画,一个是移动到尸体的动画,第二个动画是气泡,是海豚的孩子对象,它触发的第二个触发器是停止气泡,第一个触发器正在起作用,即它的运动物体变为死体,但是第二个触发器不起作用,因为它的气泡仍在消失,我知道发生了什么事。
public class Dolphin : MonoBehaviour
{
private bool IsDead=false;
private Rigidbody2D rb2d;
public float upforce = 200f;
private Animator anim;
// Use this for initialization
void Start ()
{
rb2d = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update ()
{
if (IsDead == false)
{
if (Input.GetMouseButtonDown(0))
{
rb2d.velocity = Vector2.zero;
rb2d.AddForce(new Vector2(0, upforce));
}
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
IsDead = true;
anim.SetTrigger("Die");
anim.SetTrigger("StopBubble");
Debug.Log("rigger");
}
}
答案 0 :(得分:1)
您应该将第二个触发器设置为气泡游戏对象Animator(而不是Dolphin Animator)
仅将脚本更改为此:
private void OnCollisionEnter2D(Collision2D collision)
{
IsDead = true;
anim.SetTrigger("Die");
transform.GetChild(0).GetComponent<Animator>().SetTrigger("StopBubble");
Debug.Log("rigger");
}
(注意:您的泡泡游戏对象是海豚游戏对象的第一个子代。使用transform.GetChild(0)
可以访问它)
希望对您有帮助