簡體   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