From 8aa23191d66ace148246d7f7528624a1cd9e00a7 Mon Sep 17 00:00:00 2001 From: Vova Date: Sun, 25 Jun 2023 17:58:03 +0300 Subject: [PATCH] added Enemy --- Assets/Scripts/Character.cs | 3 +-- Assets/Scripts/EnemyAI.cs | 19 +++++++++++++++++-- Assets/Scripts/Player.cs | 18 ++++++++++++++++-- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Character.cs b/Assets/Scripts/Character.cs index 1f70cc6..0a34e3a 100644 --- a/Assets/Scripts/Character.cs +++ b/Assets/Scripts/Character.cs @@ -29,12 +29,11 @@ public class Character : MonoBehaviour { var groundCheck = Physics2D.BoxCast(_boxCollider.bounds.center, _boxCollider.bounds.size, 0f, Vector2.down, .1f, groundLayer); - float h_movement=0; float v_movement=0; if (groundCheck || _isOnLadder) { _isFall = false; - h_movement=inputHorizontal ; + float h_movement = inputHorizontal; if (h_movement > 0 && !_facingRight) { FlipCharacter(); diff --git a/Assets/Scripts/EnemyAI.cs b/Assets/Scripts/EnemyAI.cs index 2f41e48..c759f9d 100644 --- a/Assets/Scripts/EnemyAI.cs +++ b/Assets/Scripts/EnemyAI.cs @@ -1,7 +1,22 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; +using static UnityEditor.Searcher.SearcherWindow.Alignment; public class EnemyAI :Character { + + + private void Update() + { + float horizontal = 0; + float vertical = 0; + if (Mathf.Abs(Player.Instance.transform.position.x - transform.position.x)>0.5f) + { + horizontal = Player.Instance.transform.position.x - transform.position.x; + } + else + { + vertical = Player.Instance.transform.position.y - transform.position.y; + } + base.MoveTo(horizontal, vertical); + } } diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs index 08c5b3d..9e96465 100644 --- a/Assets/Scripts/Player.cs +++ b/Assets/Scripts/Player.cs @@ -2,10 +2,24 @@ using UnityEngine; public class Player : Character { - - private int _totalCoins = 0; private bool _hasKey = false; + public static Player Instance { get; private set; } + + private void Awake() + { + + if (Instance != null) + { + Destroy(gameObject); + Debug.Log("There's more than one player instance"); + return; + } + PlayerPrefs.SetString("lastExitName", string.Empty); + Instance = this; + DontDestroyOnLoad(gameObject); + } + public void AddCoin() {