Преместване по точки от масив

Здравейте, скъпи потребители на форума, кажете ми как да накарам тълпите да се движат по точки. По-рано имаше скрипт, в който всяка точка на тълпи се регистрираше. Реших да автоматизирам, така че данните да се локализират по тага и да се въвеждат в масива, а Waypoints вече да са избрани от него на брояча. Проблем - тълпите по етикет са въведени в масива, но не се движат, пише, че не можете да конвертирате GameObject в Transform. Може би има други решения?

използване на UnityEngine; използване на System.Collections;

публичен клас AI2 : MonoBehavior публична трансформация[] wayPoint = нова трансформация[10]; //създаване на масив, съдържащ нашите пътни точки int currentWayPoint = 0; // променлива WAYpoint, от която започват тълпите

//Врагове float rotationSpeed ​​​​= 6.0f; //Лична променлива, може да се редактира само в код public float accelerate = 1.8f;

void Start () //намиране на всички наши точки от пътя на заредената сцена на играта wayPoint[0] = GameObject.Find("WayPoint11").transform; //отброяване от "0", а не от 1. wayPoint[1] = GameObject.Find("WayPoint12").transform; wayPoint[2] = GameObject.Find("WayPoint13").transform; wayPoint[3] = GameObject.Find("WayPoint14").transform; wayPoint[4] = GameObject.Find("WayPoint15").transform; wayPoint[5] = GameObject.Find("WayPoint16").transform; wayPoint[6] = GameObject.Find("WayPoint17").transform; wayPoint[7] = GameObject.Find("WayPoint18").transform; wayPoint[8] = GameObject.Find("WayPoint19").transform; wayPoint[9] = GameObject.Find("WayPoint10").transform; >

// Актуализацията се извиква веднъж на кадър void Update () //когато зомбитата преминат последната пътна точка, waypoint10, унищожи зомбитата if (currentWayPoint == 10) Унищожи (this.gameObject); > иначе ходене();

> > //тази функция прави ход void walk() //посока с лице //завъртане с лице към следващата WayPoint, към която опонентите отиват Quaternion rotation = Quaternion.LookRotation(wayPoint[currentWayPoint].position - transform.position); //контролира колко бързо опонентите обръщат лицата си към новата точка transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotationSpeed);

//движение Вектор3 wayPointDirection = wayPoint [currentWayPoint].position - transform.position; float speedElement = Vector3.Dot(wayPointDirection.normalized, transform.forward); плавна скорост = ускоряване * speedElement; transform.Translate(0, 0, Time.deltaTime * скорост); >

//Използване на задействания на колайдер за следващата точка на пътя и друга void OnTriggerEnter(Колайдер на колайдер) //ако враговете се появят в тези точки на пътя, тогава кажете на враговете да отидат до следващата точка на пътя if (coll ) currentWayPoint++;

Сега правя нов скрипт, приложен по-долу

използване на UnityEngine; използване на System.Collections;

//[System.Serializable] публичен клас AI3: MonoBehaviour

int currentWayPoint=0; // брояч

публична точка на GameObject[]; public int CountWaypoint; //Дължина на масив public float rotationSpeed ​​​​= 1.8f;

публично плаващо ускорение = 1.8f;

void Update() waypoint = GameObject.FindGameObjectsWithTag("WayPoint"); CountWaypoint = waypoint.Length; //дължина на масива

for(currentWayPoint=0; currentWayPoint Allanian UNetsПубликации: 15Регистрирани: 07 март 2015 г., 23:59

Re: Преместване по точки от масив

Re: Преместване по точки от масив

Пренаписах малко, замених масива с лист. Е, самият въпрос, азсъздаде масив от точки по етикет, създаде брояч за избор от 1 точка до последната, но как да напиша движение за тълпи? пътната точка беше трансформация, а сега е GameObject. И така несъвместимостта на типове, от няколко дни се боря, може ли без transform.position? и как иначе.

използване на UnityEngine; използване на System.Collections.Generic; //за List using System.Linq; //за ToList

публичен клас AI4: MonoBehavior

public List waypointsList;//масив от точки в играта public int waypointsCount = 0; //брояч на точки в играта int currentWayPoint = 0; // променлива WAYpoint, от която започват тълпите

public float mobSpeed ​​​​= 2.0f; //максимална скорост на тълпата public float mobRotationSpeed ​​​​= 2.5f; // скорост на завъртане на тълпата

публичен GameObject Target; // текуща цел

waypointsList = нов списък(GameObject.FindGameObjectsWithTag("WayPoint")); waypointsCount = waypointsList.Count; //брой точки в масива

if (Target != null) //ако имаме цел

//движение - не работи ( Vector3 wayPointDirection = . position - transform.position; float speedElement = Vector3.Dot (wayPointDirection.normalized, transform.forward); float speed = mobSpeed ​​​​* speedElement; transform.Translate (1, 1, Time.deltaTime * speed);

> друго //ако няма цел for(int t = 0; t Allanian UNetsСъобщения: 15Регистриран: 07 март 2015 г., 23:59

Re: Преместване по точки от масив