我想创建一个简单的脚本,当玩家踩到特定的图块时会触发我的动画。但是,它没有触发!
为了实现这一点,我创建了一个不可见的(网格渲染器禁用)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
,我使用标准资产中的FPS控制器。
triggerPanel
是不可见的GameObject。
答案 0 :(得分:0)
您也可以使用OnTriggerEnter()函数来启动动画。
void OnTriggerEnter (Collider other)
{
if(other.gameobject.tag == "Player")
{
// animation code
Debug.Log("animation started...");
}
}
从这里开始,一定要在你的磁贴上添加一个BoxCollider,并勾选Trigger选项,然后确保你的Player附有一个Rigidbody,这就是OnTriggerEnter()的工作方式。