[英]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.