using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 角色状态 闪避 /// public class RoleDodge : MonoBehaviour { /// /// 击退的时间 /// private float mPushTime = 0.5f; /// /// 击退的方向 /// private Vector3 mDir = Vector3.zero; /// /// 移动速度 /// private float mSpeed = 3; /// /// 延迟更新 /// private float mLateUpdat = 0.15f; private Role role = null; // /// 击退 /// i /// 角色 /// 方向 public void Init(Role r, Vector3 dir, float speedf) { role = r; mSpeed = speedf; role.mInvincible = true; mLateUpdat = 0.15f; mDir = dir; mDir.y = 0; } /// /// 更新 /// public void FixedUpdate() { mLateUpdat -= Time.fixedUnscaledDeltaTime; if (mLateUpdat > 0) { return; } mPushTime -= Time.fixedUnscaledDeltaTime; if (mPushTime >= 0) { role.mNavMeshAgent.velocity = mDir * mSpeed; } else { role.mInvincible = false; Destroy(this); } } }