繁体   English   中英

基于GameObject接近度触发统一动画

[英]Triggering unity animations based on GameObject proximity

我想创建一个简单的脚本,当播放器踩到特定的图块时将触发我的动画。 但是,它不会触发!

为此,我创建了一个不可见的(禁用网格渲染器)GameObject。 隶属于我正在设置动画的组的动画师默认为空闲状态。

对于上述小组,我应用以下脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AnimTurretFromWall : MonoBehaviour {

    public Animator anim;
    public GameObject triggerPanel;
    public Transform player;
    public int minDistanceFromTriggerPanel;


    // Use this for initialization
    void Start () {
        anim = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update () {
        Vector3 distance = player.position - triggerPanel.transform.position;
        if (distance.magnitude < minDistanceFromTriggerPanel)
        {
            anim.Play("TurretFromWall");
        }

    }
}

对于Transform player ,我正在使用Standard Assets的FPS Controller。 triggerPanel是不可见的triggerPanel

您也可以只使用OnTriggerEnter()函数开始动画。

 void OnTriggerEnter (Collider other)
{ 
    if(other.gameobject.tag == "Player")
    {
      // animation code
      Debug.Log("animation started..."); 
    }
}

在这里,请确保将BoxCollider添加到拼贴中,并勾选Trigger选项,然后确保Player附加了一个刚体,这就是OnTriggerEnter()的工作方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM