我写了一个代码,对我来说是半工作的。除了工作动画外,一切都有效。
我尝试做的是当玩家进入触发器时,如果他/她按下E,它将执行动画。 (动画工作正常,所以它只是代码错误?)。
这是我到目前为止所得到的:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class barTrigger : MonoBehaviour {
// press shit to drink text
public GameObject drinkText;
// bottle
public GameObject alcBottle;
// drink animator
public GameObject animatorOjbect;
Animator drinkAmin;
public bool triggerIsOn;
// Use this for initialization
void Start () {
drinkAmin = animatorOjbect.GetComponent<Animator> ();
drinkText.SetActive(false);
alcBottle.SetActive(false);
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter(Collider other){
triggerIsOn = true;
if (other.gameObject.name == "vThirdPersonController") {
drinkText.SetActive (true);
}
if (triggerIsOn && Input.GetKeyDown (KeyCode.E)) {
drinkAmin.Play ("Dab");
alcBottle.SetActive (true);
}
}
void OnTriggerExit(Collider other){
if (other.gameObject.name == "vThirdPersonController") {
drinkText.SetActive (false);
alcBottle.SetActive (false);
}
}
}
请帮帮忙?
答案 0 :(得分:1)
ionic cordova build ios --debug
被调用一次,很难按下E按钮并让OnTriggerEnter
同时检测到它。检查OnTriggerStay
函数中的E输入更适合此但Input.GetKeyDown(KeyCode.E)
有时不起作用,因此将其计算出来。虽然值得知道它存在。
将OnTriggerStay
移至{{1>}每个框架 的函数,然后将其设置为Input.GetKeyDown(KeyCode.E)
函数中的Update
{{1}在true
函数中。以下是应该更改的代码。
OnTriggerEnter
一旦你开始工作,开始使用false
函数而不是OnTriggerExit
,因为它更精通。