public override void SetAni(eMobAniST ani) { if (mPrevAni != ani) { if (mPrevAni == eMobAniST.Hang) { base.SetAni(eMobAniST.Unhang); if (HangTask.MyCeiling != null) { FlowerBat_Task_Hang.HangWalls.Remove(HangTask.MyCeiling.gameObject); } GetComponent <BoxCollider2D>().size = Size; bUnHang = true; mHitImmunity = true; mPrevAni = ani; return; } mPrevAni = ani; } if (bUnHang) { Dir2d = Vector2.zero; mPrevAni = eMobAniST.Unhang; base.SetAni(eMobAniST.Unhang); } else { base.SetAni(ani); } }
void Animation() { EndFollowing.Invoke(); if (m_SEObj.Ani != eMobAniST.Last) { m_CurAniST = m_SEObj.Ani; m_bHurting = false; return; } if (m_bHurting) { return; } if (!m_bAttacking) { if (CanFollow && Follow()) { OnFollowing.Invoke(); } } m_CurAniST = m_bHurting || m_bAttacking ? m_CurAniST : m_groundDetectionData.isGrounded ? Dir != 0 ? VelX == 0 ? eMobAniST.Idle : eMobAniST.Walk : eMobAniST.Idle : VelY > 0 ? eMobAniST.AirborneUp : eMobAniST.AirborneDown; }
public bool RandomMove() { if (MoveST) // ● MOVE { if (StateFrist) { StateFrist = false; Dir2d = ARandom.Dir2d; } mCurAniST = eMobAniST.Fly; } else // ● IDLE { Dir2d = Vector2.zero; mCurAniST = eMobAniST.Idle; } MoveT += Time.deltaTime; if (MoveT > MoveTime) { MoveT = 0; MoveST = !MoveST; MoveTime = MoveST ? MoveTimeMove : MoveTimeIdle; StateFrist = true; } return(true); }
public bool Fall() { if (m_bFallStart = MobYMoveDetect_Logic.Down(transform.position, m_groundDetectionData.Size, ref m_MoveData)) { m_CurAniST = eMobAniST.AirborneDown; } return(m_bFallStart); }
public virtual void SetAni(eMobAniST ani) { if (mAnimator.speed == 0) { AniPlay(); } mCurAniST = ani; }
public bool Jump() { if (m_bJumpStart = MobYMoveDetect_Logic.UP(transform.position, ref m_jumpData, ref m_MoveData)) { m_CurAniST = eMobAniST.AirborneUp; } return(m_bJumpStart); }
virtual public void OnGroundEnter() { //Debug.Log(m_bFollowJump); Jump_Logic.ResetJumpCount(ref m_jumpData); m_bFollowJump = false; if (m_bHurting) { return; } m_CurAniST = eMobAniST.Idle; }
public override void OnHurt() { if (mHitImmunity) { return; } mHurt = true; mAniStart = true; mCurAniST = eMobAniST.Hit; SpriteDir = (GM.PlayerPos.x - transform.position.x) < 0 ? -1 : 1; }
public bool IdleRandom() { if (!m_groundDetectionData.isGrounded) { return(false); } if (m_MoveData.State == MobMoveData.eState.Idle) { m_CurAniST = eMobAniST.Idle; m_MoveData.Dir = 0; } return(true); }
void Animation() { if (mSE.Ani != eMobAniST.Last) { mCurAniST = mSE.Ani; SetStatusEffectUseAniState(); return; } if (!mHurt) { SpriteDir = Dir2d.x > 0 ? 1 : -1; } }
public bool MoveRandom() { if (!m_groundDetectionData.isGrounded) { return(false); } m_MoveData.State = MobMoveData.eState.Move; m_CurAniST = eMobAniST.Walk; ATimer.Tick(this); if (!m_bYMoveCoolTime && !m_bJumpStart) { m_bYMoveCoolTime = ARandom.Get(70) ? true : ARandom.Get(50) ? Jump() : Fall(); m_bYMoveCoolTime = true; ATimer.Set("JumpFall" + GetInstanceID(), m_MoveData.CoolTime, () => { m_bYMoveCoolTime = false; }); } return(true); }
public override void OnHurt(/* 총알 위치 */) { if (m_SEObj.Ani != eMobAniST.Last) { return; // Ani 우선순위가 Hurt보다 커야함. } if (m_bAttacking) { return; } if (!m_bHurting) { m_bPrevDir = m_MoveData.SprDir; m_MoveData.SprDir *= (Mathf.Sign(GM.PlayerPos.x - transform.position.x) == m_bPrevDir) ? -1 : 1; } m_bHurting = true; m_bAniStart = true; GetComponentInChildren <AColliderMgr>().Stop(); if (m_SEObj.Ani == eMobAniST.Last) // Ani 우선순위가 Hurt보다 커야함. { m_CurAniST = eMobAniST.Hit; } }
virtual protected void FixedUpdate() { MovementAction[MS](); mRb2d.velocity = Dir2d * (IsJPSVel ? 1f : MoveSpeed) * mSE.SpeedMult * (CheckOverlapSlow(MobSize, Dir2d) ? OverlapSlow : 1f); if (mSE.UseSEVel) { mRb2d.velocity = mSE.EffectDir2d * mSE.SpeedMult; } if (!mSE.UseSEVelCurve) { CurveTime = 0f; } if (mSE.UseSEVelCurve) { mRb2d.velocity = mSE.EffectDir2d * mSE.VelCurve.Evaluate(CurveTime); CurveTime += Time.fixedDeltaTime; } Animation(); mAnimator.SetDuration(m_Ani[mCurAniST].Item2); if (mAniStart) { mAnimator.Play(m_Ani[mCurAniST].Item1, 0, 0); mAniStart = false; } else { if (prevAni != mCurAniST) { prevAni = mCurAniST; mAnimator.Play(m_Ani[mCurAniST].Item1); } } IsJPSVel = false; }
public bool AttackPre() { m_CurAniST = eMobAniST.Attack_Pre; return(m_bAttacking); }
public bool Follow() { Dir2d = (GM.PlayerPos - Pos).normalized; mCurAniST = eMobAniST.Fly; return(true); }
public bool AttackPost() { m_CurAniST = eMobAniST.Attack_Post; return(m_bAttacking); }
virtual protected void Attack() { mCurAniST = eMobAniST.Attack_Post; }
virtual protected void PreAttack() { mAttacking = true; mCurAniST = eMobAniST.Attack_Pre; }
public bool Falling() { m_CurAniST = m_jumpData.isJumping ? eMobAniST.AirborneUp : eMobAniST.AirborneDown; return(true); }