在对撞机上输入动画师(Unity3d / c#)

时间:2017-12-24 07:18:52

标签: c# unity3d

我写了一个代码,对我来说是半工作的。除了工作动画外,一切都有效。

我尝试做的是当玩家进入触发器时,如果他/她按下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);
        }
    }
}

请帮帮忙?

1 个答案:

答案 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,因为它更精通。