public static void StartMoveScale(GameObject target, SkillMoveScaleInfo info) { MovementControl tLockFrame = target.gameObject.GetComponent <MovementControl>(); if (tLockFrame == null) { LogicSystem.GfxLog("StartMoveScale component miss!"); return; } tLockFrame.StartMoveScale(info); }
public SkillMoveScaleInfo Clone() { SkillMoveScaleInfo newData = new SkillMoveScaleInfo(); newData.IsValid = IsValid; newData.Id = Id; newData.Duration = Duration; newData.MoveScale = MoveScale; newData.NeedTarget = NeedTarget; return(newData); }
/// param:ID[对应到SkillSceneObjManager中的LockFrameInfo Id] /// example:101 public void Trigger_LockMoveScale(string param) { #if SHOOTER_LOG Debug.Log("Trigger_LockMoveScale param:"); #endif if (m_SceneObjMgr != null) { SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param); SkillMoveScaleInfo lockInfo = m_SceneObjMgr.TryGetSkillMoveScaleInfo(sobjInfo.Id); if (lockInfo != null) { lockInfo = lockInfo.Clone(); TriggerImpl.StartMoveScale(this.gameObject, lockInfo); } else { Debug.Log("Trigger_LockFrame null!"); } } }
private static void ProcessImpactLock(GameObject attacker, SkillImpactInfos impacts, bool isTargeted) { SkillLockFrameInfo lockInfo = TriggerImpl.GetLockFrameInfoById(attacker, impacts.LockFrameInfoId); if (lockInfo != null) { lockInfo = lockInfo.Clone(); if (lockInfo.NeedTarget) { if (isTargeted) { TriggerImpl.StartLockFrame(attacker, lockInfo); } } else { TriggerImpl.StartLockFrame(attacker, lockInfo); } } SkillMoveScaleInfo lockMoveInfo = TriggerImpl.GetMoveScaleInfoById(attacker, impacts.MoveScaleInfoId); if (lockMoveInfo != null) { lockMoveInfo = lockMoveInfo.Clone(); if (lockInfo.NeedTarget) { if (isTargeted) { TriggerImpl.StartMoveScale(attacker, lockMoveInfo); } } else { lockMoveInfo = lockMoveInfo.Clone(); TriggerImpl.StartMoveScale(attacker, lockMoveInfo); } } }
internal void Update() { float delta = Time.deltaTime; if (m_MoveScaleInfo != null && m_MoveScaleInfo.Duration >= 0) { m_MoveScaleElapsed += delta; if (m_MoveScaleElapsed <= m_MoveScaleInfo.Duration) { delta *= m_MoveScaleInfo.MoveScale; } else { m_MoveScaleElapsed = 0; m_MoveScaleInfo = null; } } m_MovementCom.ExecuteMove(delta); if (!m_IsIngoreGravity) { if (IsAutoGravity()) { SetGravityOn(true); } else { SetGravityOn(false); } } if (m_IsGravityOn) { ApplyGravity(this.gameObject, Time.deltaTime, GravityDropDownAnimInfo); } }
public void StartMoveScale(SkillMoveScaleInfo info) { m_MoveScaleElapsed = 0; m_MoveScaleInfo = info; }