- Home /
Question by
onlyyouubilir · Dec 03, 2021 at 04:24 PM ·
unity 2daienemyenemyai
Enemy is not chasing player. it is escaping.
Hello I writed some scripts but enemy is moving away from my character here is the scripts I need this help so much I'm beginner I can' solve this.
public abstract class Mover : Fighter { protected BoxCollider2D boxCollider; protected Vector3 moveDelta; protected RaycastHit2D hit; protected float ySpeed = 0.75f; protected float xSpeed = 1.0f;
protected virtual void Start()
{
boxCollider = GetComponent<BoxCollider2D>();
}
protected virtual void UpdateMotor(Vector3 input)
{
// moveDelta'yı resetle
moveDelta = new Vector3(input.x * xSpeed, input.y * ySpeed,0);
// Karakterin yönünü nereye gittiğine göre ayarla
if (moveDelta.x > 0)
{
transform.localScale = Vector3.one;
}
else if (moveDelta.x < 0)
{
transform.localScale = new Vector3(-1, 1, 1);
}
//Kutu varsa hareket etme kutu yoksa hareket et
hit = Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(moveDelta.x, 0), Mathf.Abs(moveDelta.x * Time.deltaTime), LayerMask.GetMask("Creatures", "Blocking"));
if (hit.collider == null)
{
// Karekterimizi hareket edelim
transform.Translate(moveDelta.x * Time.deltaTime, 0, 0);
}
public class Fighter : MonoBehaviour { public int hitpoint = 10; public int maxHitpoint = 10; public float pushRecoverySpeed = 0.2f;
protected float immuneTime = 1.0f;
protected float lastImmune;
protected Vector3 pushDirection;
//all fighters receive damage&die
protected virtual void ReceiveDamage(Damage dmg)
{
if (Time.time - lastImmune > immuneTime)
{
lastImmune = Time.time;
hitpoint -= dmg.damageAmount;
pushDirection = (transform.position - dmg.origin).normalized * dmg.pushForce;
GameManager.instance.ShowText(dmg.damageAmount.ToString(), 25, Color.red, transform.position, Vector3.up * 25, 1.7f);
if (hitpoint > 0)
{
}
if (hitpoint <= 0)
{
hitpoint = 0;
Death();
}
}
}
protected virtual void Death()
{
}
}
ekran-resmi-2021-12-03-191716.png
(369.7 kB)
ekran-resmi-2021-12-03-191810.png
(279.0 kB)
Comment
Answer by rage_co · Dec 03, 2021 at 05:39 PM
Try using -moveDelta.x, seeing that you code is behaving in the opposite of the intended manner