Unity3D Enemy Move

EnemyMove — движение объекта по траектории

Скрипт движения объекта по траектории заданной положением других объектов. Может применяться для движения врагов, платформ или других игровых объектов.

Настройка скрипта:

Unity3D Enemy Move

 

результат работы скрипта:

Unity3D Enemy Move

 

исходный код скрипта:

//************************************************//
//********** Author:  Dimusikus@mail.ru **********//
//********** Site:    http://midadev.ru **********//
//************************************************//
using UnityEngine;
using System.Collections;

public class EnemyMove : MonoBehaviour 
{
  [SerializeField] private float moveSpeed = 5f;	// скорость движения
  [SerializeField] private GameObject[] myWaypoints;	// список точек по которым будет двигаться енеми
  
  private int myWaypointId = 0;		                // текущая точка в массиве куда двигаться
  
  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  void EnemyMovement() 
  {
    // если точки есть
    if(myWaypoints.Length != 0) 
    {
      // если мы уже достигли назначенной точки, то переходим к следующей
      if(Vector3.Distance(myWaypoints[myWaypointId].transform.position, transform.position) <= 0) 
      {
        myWaypointId++;
      }
      
      //если точки исчерпаны то переходим к началу массива точек
      if(myWaypointId >= myWaypoints.Length) 
      {
        myWaypointId = 0;
      }
      
      //движемся в назначенную точку
      // move towards waypoint
      transform.position = Vector3.MoveTowards(transform.position, myWaypoints[myWaypointId].transform.position, moveSpeed * Time.deltaTime);
    }
  }
  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  // Update is called once per frame
  void Update () 
  {
    EnemyMovement();
  }
}

 

 

 

Теги: ,

Трекбэк с Вашего сайта.

Дмитирй

This information box about the author.

Оставить комментарий

Вы должны войти чтобы оставить комментарий.

Offcanvas

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.