When i start game my disapers why

enemy pathing

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class EnemyPathing : MonoBehaviour

{

    [SerializeField] List<Transform> waypoints;

    [SerializeField] float moveSpeed = 2f;

    int waypointIndex = 0;

                    

    // Start is called before the first frame update

    void Start()

    {

        transform.position = waypoints[waypointIndex].transform.position;

    }

    // Update is called once per frame

    void Update()

    {

       Move(); 

    }

    private void Move(){

        if (waypointIndex <= waypoints.Count - 1)

        {

            var targetposition = waypoints[waypointIndex].transform.position;

            var movementThisFrame = moveSpeed * Time.deltaTime;

            transform.position = Vector2.MoveTowards

            (transform.position, targetposition, movementThisFrame);

            if (transform.position == targetposition)

            {

                waypointIndex++;

            }

            else

            {

                Destroy(gameObject);

            }

        }

    }

}

It looks like you’ve set your code up to destroy whatever the script is attached to whenever the transform.position is not the same as the targetposition

if (transform.position == targetposition) { waypointIndex++; }
else { Destroy(gameObject); }

I suspect you need to outdent that else statement.

private void Move()
     {
          if (waypointIndex <= waypoints.count - 1)
               {
                    var targetposition = waypoints[waypointIndex].transform.position;
                    var movementThisFrame = moveSpeed * Time.deltaTime;
                    transform.position = Vector2.MoveTowards(transform.position, targetposition, movementThisFrame);
                    if (transform.position == targetposition)
                         {
                              waypointIndex++;
                         }
               }
          else
               {
                    Destroy(gameObject);
               }
     }

Privacy & Terms