void Update() { target = GameServices.Get <PlayerManager>().PlayerPosition; if (state == States.Chase) { // Debug.Log("Chase"); ChaseTarget(); if (IsCloseEnoughToShoot()) { state = States.Attack; } } else if (state == States.Attack) { // Debug.Log("Attack"); StopMovement(); Attack(); if (!IsCloseEnoughToShoot()) { state = States.Chase; } } if (Vector3.Distance(this.transform.position, target) <= stopDistance * 0.7f) { MoveBackwards(); } navAgent.enabled = true; }
void LateUpdate() { transform.position = (health.transform.position + Vector3.up * 2f); //// transform.LookAt(Camera.main.transform); transform.LookAt(GameServices.Get <CameraService>().MainCamera.transform); Debug.DrawLine(this.transform.position, GameServices.Get <CameraService>().MainCamera.transform.position, Color.red); }
public static void OnGameSessionOver() { GameServices.Get <EnemySpawnerManager>().DestroyAllEnemies(); GameServices.Get <PlayerManager>().DestroyPlayer(); AsteroidSpawner.instance.DestroyAllAsteroids(); //HealthBarController.instance.ClearAllHealthBars(); GameServices.Get <HealthBarManager>().ClearAllHealthBars(); }
///public event Action OnDestinationReached; // Vector3 clickPoint; void Start() { /// initilazeNavMeshAgent(); /// InvokeRepeating("ChaseTarget", 1, 1f); target = GameServices.Get <PlayerManager>().PlayerPosition; // new Transform();// Player.instance.transform; state = IsCloseEnoughToShoot() ? States.Attack : States.Chase; projectileLauncher = GetComponent <ProjectileLauncher>(); gameObject.tag = GameTags.Enemy; }
void StartLevel() { GameServices.Get <PlayerManager>().SpawnPlayer(); //PlayerSpawner.instance.SpawnPlayer(); GameServices.Get <EnemySpawnerManager>().SpawnEnemiesOnField(); AsteroidSpawner.instance.PopulatePlaneWithsteroids(); InvokeRepeating(nameof(SpawnEnemiesByOne), 4f, 6f); InvokeRepeating(nameof(SpawnAsteroidsByOne), 1f, 1f); }
public override void Init(Action onRelease) { GameServices.Get <GameScoreManager>().Register(this); /// Invoke(nameof(Explode), 30f); if (GetComponent <Health>() != null) { health = GetComponent <Health>(); health.OnHealthDepleted += Explode; health.InitilazeHealth(); } OnDestroy += onRelease; }
void CreateAsteroid() { var index = Random.Range(0, m_Asteroids.Count - 1); var asteroid = Serivces.Get <IPoolingService>().Instantiate <Asteroid>(m_Asteroids[index].gameObject); var asteroidGameObject = asteroid.gameObject; var spawnSpread = Random.Range(-m_SpawnRang, m_SpawnRang); asteroidGameObject.transform.SetParent(transform); asteroidGameObject.transform.localPosition = new Vector3(spawnSpread, 0, 0); var v = GameServices.Get <CameraService>().MainCamera.transform.position - transform.position; asteroidGameObject.GetComponent <Rigidbody>().AddForce(v.normalized * 250f); }
public GameScoreManager(IGamePlayUIView gamePlayUIView) { m_GamePlayUI = gamePlayUIView; m_GamePlayUI.OnRestartRequest += Restart; //m_GamePlayUI.OnRestartRequest += PlayerSpawner.instance.SpawnPlayer; m_GamePlayUI.OnRestartRequest += GameServices.Get <PlayerManager>().SpawnPlayer; m_GamePlayUI.OnRestartRequest += GameServices.Get <EnemySpawnerManager>().SpawnEnemiesOnField; m_GamePlayUI.OnRestartRequest += AsteroidSpawner.instance.PopulatePlaneWithsteroids; Player.OnPlayerDied += ProcessGameOver; // Player.OnPlayerDied += EnemySpawner.instance.DestroyAllEnemies; /// EnemySpawner.OnDisableEnemies += Restart; Restart(); ///// PlayerSpawner.instance.SpawnPlayer(); }
//public void PopulatePlaneBelowLevel() //{ // var yPosition = meshForGenerationgAsteroidsBelow.gameObject.transform.position.y; // Bounds bounds = meshForGenerationgAsteroidsBelow.mesh.bounds; // // // size in pixels // float boundsX = meshForGenerationgAsteroidsBelow.transform.localScale.x * bounds.size.x; // float boundsZ = meshForGenerationgAsteroidsBelow.transform.localScale.z * bounds.size.z; // float offcet = 8f; // float offsetX = Random.Range(-offcet, offcet); // float offsetZ = Random.Range(-offcet, offcet); // for (int i = 0; i <= boundsX; i += generationStep ) // { // for (int j = 0; j <= boundsZ; j += generationStep ) // { // Vector3 position = new Vector3(-boundsX / 2 + i, yPosition, -boundsZ / 2 + j) + new Vector3(offsetX, offsetX * 20f, offsetZ); // CreateAsteroid(position); // } // } //} public void SpawnAsteroidOnRandomPoint() { /// if (asteroids.Count >= maxAsteroidsCapacity) return; int index = UnityEngine.Random.Range(0, spawnPoints.Count); //// CreateEnemy(spawnPoints[index].position); var spawnPointCollider = spawnPoints[index].gameObject.GetComponent <Collider>(); if (!GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider)) { CreateAsteroid(spawnPoints[index].position); //return; } else if (GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider)) { //SpawnAsteroidOnRandomPoint(); //return; } }
public void SpawnEnemyOnRandomPoint() { int index = UnityEngine.Random.Range(0, spawnPoints.Count); //// CreateEnemy(spawnPoints[index].position); var spawnPointCollider = spawnPoints[index].gameObject.GetComponent <Collider>(); if (!GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider)) { CreateEnemy(spawnPoints[index].position); return; } else if (GameServices.Get <CameraService>().IsVisibleToCamera(spawnPointCollider)) { SpawnEnemyOnRandomPoint(); return; } //throw new InvalidOperationException(); }
void ProcessGameOver() { HandleGameScore(); m_GamePlayUI.ShowGameOverScreen(); m_GamePlayUI.OnGameOver(m_Score, highScore); GameServices.Get <EnemySpawnerManager>().DestroyAllEnemies(); GameServices.Get <PlayerManager>().DestroyPlayer(); /// AsteroidSpawner.instance.DestroyAllAsteroids(); /// GameServices.Get<HealthBarManager>().ClearAllHealthBars(); // HealthBarController.instance.ClearAllHealthBars(); //foreach (var item in GameObjectsPool.allPoolledObjects) //{ // if (item.isActiveAndEnabled) { item.Release(); } //} Time.timeScale = 0f; m_Score = 0; //m_GamePlayUI.SetHighScore(m_Score); //m_GamePlayUI.SetCurrentScore(m_Score); }
private void ChaseTarget() { /// if (navAgent.enabled = false) navAgent.enabled = true; if (navAgent.isStopped) { navAgent.isStopped = false; } if (Time.time > pathRecalculateTimeStamp) { //Vector3 destination = Player.instance.transform.position; Vector3 destination = GameServices.Get <PlayerManager>().PlayerPosition; // navAgent.ResetPath(); //navAgent.SetDestination(destination); navAgent.destination = destination; /// // Debug.Log(" ChaseTarget destination " + destination.ToString() ); ///Debug.Log("Warp " + navAgent.Warp(destination)); pathRecalculateTimeStamp = Time.time + pathRecalculateRate; /// Debug.Log("PathRecalculated"); } }
void LateUpdate() { playerPosition = GameServices.Get <PlayerManager>().PlayerPosition; Vector3 worldPosition = (Vector3.forward * -distance) + (Vector3.up * height); Debug.DrawLine(playerPosition, worldPosition, Color.red); Vector3 rotationVector = Quaternion.AngleAxis(angle, Vector3.up) * worldPosition; Debug.DrawLine(playerPosition, rotationVector, Color.blue); Debug.DrawLine(playerPosition, worldPosition, Color.green); //Vector3 flatTargetPosition = player.GetComponent<Rigidbody>().position; //flatTargetPosition.y = 0; Vector3 finalPosition = playerPosition + rotationVector; Debug.DrawLine(playerPosition, finalPosition, Color.blue); transform.position = Vector3.SmoothDamp(transform.position, finalPosition, ref smoothVelociy, smoothingSpeed); transform.LookAt(playerPosition); }
public override void Release() { GameServices.Get <GameScoreManager>().Unregister(this); //health.OnHealthDepleted -= OnDestroyEnemy; health.OnHealthDepleted -= Explode; }
public override void Release() { GameServices.Get <CubeEnemy1Service>().Unregister(this); }
public override void Release() { GameServices.Get <AsteroidsService>().Unregister(this); }
public float maxIntensity = 3f; // The maximum intensity the flash will reach void Start() { cam = GameServices.Get <CameraService>().MainCamera; //StartCoroutine(nameof(flashNow)); }
void Start() { cam = GameServices.Get <CameraService>().MainCamera; playerPosition = GameServices.Get <PlayerManager>().PlayerPosition; }
public override void Init(Action onRelease) { GameServices.Get <CubeEnemy1Service>().Register(this); OnDestroy += onRelease; }
public override void Init(Action onRelease) { GameServices.Get <AsteroidsService>().Register(this); Invoke(nameof(Explode), 30f); OnDestroy += onRelease; }
void SpawnEnemiesByOne() { GameServices.Get <EnemySpawnerManager>().SpawnEnemyOnRandomPoint(); }
void SetTargetPosition() { target = GameServices.Get <PlayerManager>().PlayerPosition; }