我想让我的角色在进入扳机时按下一个键时播放一段动画,但我想不通。你能帮忙吗?这里是我的代码
public Text text;
public Animator anim;
public void Start()
{
text.enabled = false;
anim = GetComponent<Animator>();
}
public void OnTriggerEnter()
{
text.enabled = true;
}
public void Update()
{
if (Input.GetKeyDown("e"))
{
anim.Play("DoorOpen");
}
}
}
首先,OnTriggerEnter
采用Collider
类型的参数。否则它永远不会被Unity调用。
然后,在ontriggerexit
中将bool
标志设置为true
并将其重置为false
-例如,您可以使用正在设置的text.enabled
公共文本文本;大众动画师阿尼姆;
private void Start()
{
text.enabled = false;
anim = GetComponent<Animator>();
}
private void Update()
{
if (text.enabled && Input.GetKeyDown(KeyCode.E))
{
anim.Play("DoorOpen");
}
}
private void OnTriggerExit (Collider other)
{
text.enabled = false;
}
private void OnTriggerEnter(Collider other)
{
text.enabled = true;
}
或者,您可以直接使用ontriggerstay
,而不是在update
中轮询检查它,只要您敲击触发器,就会重复调用该命令
public Text text;
public Animator anim;
private void Start()
{
text.enabled = false;
anim = GetComponent<Animator>();
}
private void OnTriggerStay(Collider other)
{
if (Input.GetKeyDown(KeyCode.E))
{
anim.Play("DoorOpen");
}
}
private void OnTriggerExit (Collider other)
{
text.enabled = false;
}
private void OnTriggerEnter(Collider other)
{
text.enabled = true;
}