Update Project
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
namespace Zenject.SpaceFighter
|
||||
{
|
||||
public class EnemyStateIdle : IEnemyState
|
||||
{
|
||||
readonly EnemyRotationHandler _rotationHandler;
|
||||
readonly Settings _settings;
|
||||
readonly EnemyView _view;
|
||||
|
||||
Vector3 _startPos;
|
||||
float _theta;
|
||||
Vector3 _startLookDir;
|
||||
|
||||
public EnemyStateIdle(
|
||||
EnemyView view, Settings settings,
|
||||
EnemyRotationHandler rotationHandler)
|
||||
{
|
||||
_rotationHandler = rotationHandler;
|
||||
_settings = settings;
|
||||
_view = view;
|
||||
}
|
||||
|
||||
public void EnterState()
|
||||
{
|
||||
_startPos = _view.Position;
|
||||
_theta = Random.Range(0, 2.0f * Mathf.PI);
|
||||
_startLookDir = _view.LookDir;
|
||||
}
|
||||
|
||||
public void ExitState()
|
||||
{
|
||||
}
|
||||
|
||||
// Just add a bit of subtle movement
|
||||
public void Update()
|
||||
{
|
||||
_theta += Time.deltaTime * _settings.Frequency;
|
||||
|
||||
_view.Position = _startPos + _view.RightDir * _settings.Amplitude * Mathf.Sin(_theta);
|
||||
|
||||
_rotationHandler.DesiredLookDir = _startLookDir;
|
||||
}
|
||||
|
||||
public void FixedUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class Settings
|
||||
{
|
||||
public float Amplitude;
|
||||
public float Frequency;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user