public virtual void Init(SpriteRenderer renderer, EnemyDeploy deploy) { transform.SetLayer(Layers.Enemy); transform.localScale = Vector3.one * deploy.scale; Deploy = deploy; MainRenderer = renderer; HP = deploy.maxHp; HPMax = HP; _aniStyle = EnemyMoveStyle.Idle; _currPos = transform.position; InitRigid(); if (!string.IsNullOrEmpty(deploy.AIScript)) { AIMoudle = Common.CreateInstance(deploy.AIScript) as AI_Base; if (AIMoudle != null) { AIMoudle.Init(this); } } }
private void UpdateAnimation() { if (GameSystem.FixedFrameCount < _nextAnimationFrame) { return; } if (SpriteDic.TryGetValue(AniStyle, out List <Sprite> sprites)) { if (sprites.Count > 0) { MainRenderer.sprite = sprites[_currAniIdx]; _currAniIdx++; if (_currAniIdx >= sprites.Count) { if (AniStyle == EnemyMoveStyle.Move) { AniStyle = EnemyMoveStyle.MoveIdle; } else { _currAniIdx = 0; } } } } _nextAnimationFrame = GameSystem.FixedFrameCount + Deploy.frameSpeed[(int)AniStyle]; }
private void StopMove() { InMoveToTarget = false; InMove = false; AniStyle = EnemyMoveStyle.Idle; if (_moveData != null) { Pool.Free(_moveData); } }
private void UpdateMoveStyle() { if (InMoveToTarget || InMove) { float moveX; if (InMove) { moveX = _moveData.Forward.normalized.x; } else { moveX = (_moveTarget - transform.position).normalized.x; } if (moveX > 0.01f) { //right if (AniStyle != EnemyMoveStyle.MoveIdle) { AniStyle = EnemyMoveStyle.Move; } MainRenderer.flipX = false; } else if (moveX < 0.01f) { if (AniStyle != EnemyMoveStyle.MoveIdle) { AniStyle = EnemyMoveStyle.Move; } MainRenderer.flipX = true; } else { AniStyle = EnemyMoveStyle.Idle; } } else { AniStyle = EnemyMoveStyle.Idle; } }