标签:旋转 add 属性 mic lan att 插件 pmi unity3d
文档上说明实现的方式:
以下使用另外的角色模型进行測试拖尾效果。
using UnityEngine;
using System.Collections; public class TestMyTrail : MonoBehaviour { private Animator animator; void Start () { animator = GetComponent<Animator>(); } void OnGUI() { if (GUI.Button(new Rect(0, 0, 50, 50), "攻击")) { animator.SetTrigger("Attack"); } } } |
using UnityEngine;
using System.Collections; public class TestMyTrail : MonoBehaviour { public WeaponTrail myTrail; private Animator animator; private float t = 0.033f; private float tempT = 0; private float animationIncrement = 0.003f; void Start () { animator = GetComponent<Animator>(); } void LateUpdate() { t = Mathf.Clamp(Time.deltaTime, 0, 0.066f); if (t > 0) { while (tempT < t) { tempT += animationIncrement; if (myTrail.time > 0) { myTrail.Itterate(Time.time - t + tempT); } else { myTrail.ClearTrail(); } } tempT -= t; if (myTrail.time > 0) { myTrail.UpdateTrail(Time.time, t); } } } void OnGUI() { if (GUI.Button(new Rect(0, 0, 50, 50), "攻击")) { animator.SetTrigger("Attack"); } } } |
当攻击结束,武器往回收的时候。也会有拖尾,例如以下图所看到的:
假设要去掉这个时候的拖尾,能够採用更精确的控制拖尾的出现。选中攻击动作。切换到"Animations"。播放动作,在攻击開始时刻,加入一个事件,例如以下图所看到的:
在攻击完成,也加入一个事件。例如以下图所看到的:
void Start ()
{ animator = GetComponent<Animator>(); // 默认没有拖尾效果 myTrail.SetTime(0.0f, 0.0f, 1.0f); } public void heroAttack() { //设置拖尾时长 myTrail.SetTime(2.0f, 0.0f, 1.0f); //開始进行拖尾 myTrail.StartTrail(0.5f, 0.4f); } public void heroIdle() { //清除拖尾 myTrail.ClearTrail(); } |
标签:旋转 add 属性 mic lan att 插件 pmi unity3d
原文地址:http://www.cnblogs.com/jzssuanfa/p/6764467.html