using Axibug; using Axibug.Runtime; using System.Collections.Generic; using UnityEngine; namespace Game { public class MainRole : RoleBase { protected SpriteRenderer mSpriteRenderer; public SnapshotData mRoleSnapshot; /// /// 初始化 /// /// public void Init(S_ROLE_SELF data) { base.Init(data); mRoleSnapshot = new SnapshotData(); } protected override void Awake() { base.Awake(); mSpriteRenderer = mModelTransfrom.GetComponent(); } protected override void OnEnable() { base.OnEnable(); } protected override void OnDisable() { base.OnDisable(); } protected override void FixedUpdate() { base.FixedUpdate(); FixedUpdate_FastMoveMode(); } const int SnapInterval = 3; int SnapIntervalIndex = 0; protected override void Update() { base.Update(); SnapIntervalIndex++; if (SnapIntervalIndex >= SnapInterval) { mRoleSnapshot.AddSnap(mSpriteRenderer.sprite, mBridgeTransfrom.localEulerAngles, transform.position); SnapIntervalIndex = 0; } if (Input.GetKeyDown(KeyCode.T)) { RoleFastShadow fastshadow = GamePlayEntry.EffectMgr.rolegastEftPool.GetAnyHide(); //设置影子 //fastshadow.SetData(mSpriteRenderer.sprite, mBridgeTransfrom.localEulerAngles, transform.position); } if (Input.GetKeyDown(KeyCode.G)) { Anime.SetAnimatorSpeed(1f); Move_BaseSpeed = 3.5f * 1f; } if (Input.GetKeyDown(KeyCode.Y)) { Anime.SetAnimatorSpeed(1.5f); Move_BaseSpeed = 3.5f * 1.5f; } if (Input.GetKeyDown(KeyCode.U)) { Anime.SetAnimatorSpeed(2f); Move_BaseSpeed = 3.5f * 2f; } if (Input.GetKeyDown(KeyCode.I)) { Anime.SetAnimatorSpeed(2.6f); Move_BaseSpeed = 3.5f * 2.6f; } } public override void MeshChangeMoveState(bool ToMoveState) { if (ToMoveState) { Anime.StartRun(); } else { Anime.BackToIdle(); } } public override void Release() { } #region 高速移动模式 private bool mIsFastSkillMode = false; private float LastFastShadowCreateTime = 0; public bool IsFastSkillMode { get { return mIsFastSkillMode; } set { if (mIsFastSkillMode != value) { mIsFastSkillMode = value; if (value) { AxibugLog.Debug("高速模式:开"); //刚开始高速移动模式 Move_SpeedMultiplier = ConstClass.FastRunSpeedMultiplier; Anime.SetAnimatorSpeed(ConstClass.FastRunSpeedMultiplier); AttackBoxAnime.SetBool("KeepAttack", true); } else { AxibugLog.Debug("高速模式:关"); //刚停止高速移动模式 Move_SpeedMultiplier = 1f; Anime.SetAnimatorSpeed(1f); AttackBoxAnime.SetBool("KeepAttack", false); //Camera.main.fieldOfView = GamePlayEntry.MainPlayer.srcCameraFov; //清理影子 GamePlayEntry.EffectMgr.rolegastEftPool.Hide(); } } } } public void FixedUpdate_FastMoveMode() { if (!IsMove) { IsFastSkillMode = false; } else { //如果超过移动时间 if(MoveTime > ConstClass.ToFastModeTime) IsFastSkillMode = true; else IsFastSkillMode = false; } //高速模式开影子 if (IsFastSkillMode) { if (Time.time - LastFastShadowCreateTime > ConstClass.FastModeShadowCreateIntervalTime) { LastFastShadowCreateTime = Time.time; AxibugLog.Debug("创建影子"); //创建影子 GamePlayEntry.EffectMgr.rolegastEftPool.GetAnyHide(); } float fov = Camera.main.fieldOfView; fov += 30f * Time.deltaTime; fov = Mathf.Min(GamePlayEntry.MainPlayer.srcCameraFov + 10f, fov); Camera.main.fieldOfView = fov; } else { float fov = Camera.main.fieldOfView; fov -= 25f * Time.deltaTime; fov = Mathf.Max(GamePlayEntry.MainPlayer.srcCameraFov, fov); Camera.main.fieldOfView = fov; } } #endregion } }