Quantcast
Viewing latest article 27
Browse Latest Browse All 1488

Wy does the enemy shake when it gets to the player?

using System.Collections; using System.Collections.Generic; using UnityEngine; public class groundEnemy : MonoBehaviour { [SerializeField] Transform player; [SerializeField] Transform distancePoint; [SerializeField] float aggrowRange; [SerializeField] float speed; [SerializeField] float patrolSpeed; Rigidbody2D rb2d; public bool flip; private float stopChasing; void Start() { rb2d = GetComponent(); Physics2D.IgnoreLayerCollision(11, 11, true); } // Update is called once per frame void FixedUpdate() { float distance = Vector2.Distance(distancePoint.transform.position, player.transform.position); Vector2 direction = player.transform.position - distancePoint.transform.position; if (distance <= aggrowRange) { ChasePlayer(); } else { StopChasingPlayer(); if (IsFacingRight ()) { rb2d.velocity = new Vector2(patrolSpeed, 0f); } else { rb2d.velocity = new Vector2(-patrolSpeed, 0f); } } void ChasePlayer() {Vector3 scale = transform.localScale; if (transform.position.x < player.position.x ) { rb2d.velocity = new Vector2(speed, 0); scale.x = Mathf.Abs(scale.x) * -1 * (flip ? -1 : 1); } else { rb2d.velocity = new Vector2(-speed, 0); scale.x = Mathf.Abs(scale.x) * (flip ? -1 : 1); } scale = transform.localScale; } void StopChasingPlayer() { rb2d.velocity = new Vector2(0, 0); } } private bool IsFacingRight() { return transform.localScale.x > Mathf.Epsilon; } private void OnTriggerExit2D(Collider2D collision) { transform.localScale = new Vector2(-(Mathf.Sign(rb2d.velocity.x)), transform.localScale.y); } }

Viewing latest article 27
Browse Latest Browse All 1488

Trending Articles