Re: Хочу зібрати команду для створення проектів на движку unity3d.
Скріпт скину.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Робота → Пропоную роботу → Хочу зібрати команду для створення проектів на движку unity3d.
Скріпт скину.
using UnityEngine;
using System.Collections;
public class ai : MonoBehaviour
{
public Transform[] waypoint = new Transform[5];
private Transform _target;
NavMeshAgent _agent;
public int N;
int i1;
void Start()
{
i1 = Random.Range(0, N);
_target = waypoint[i1];
_agent = (NavMeshAgent)this.GetComponent("NavMeshAgent");
}
void Update(Collider NPC)
{
_agent.SetDestination(_target.transform.position);
if (Vector3.Distance(transform.position, /*waypoint[i1].transform.position*/ _target.transform.position) <= 1f)
{
Start();
}
}
}
Простий скріпт, але завдяки йому НПЦ можуть рандовно ходить до точок і обходить перешкоди.
Саме робота цього скріпта показана в відео яке я скидав раніше.
то ви не розумієте значення слова "скрипт"?
Ну так що?
перший раз бачу, щоб Start, котрий призначений для ініціалізації, викликали в Update, котрий викликається кожен кадр.
до того ж в старті отримується компонент, котрий наче один раз отримали, та й використовуємо, так нііі, ми будемо кожний кадр шукати той компонент, ліл.
Та й шо то за Update такий? Звідки там взявся аргумент? Воно хоч компілюється?
Мене не вразив Ваш кід.
перший раз бачу, щоб Start, котрий призначений для ініціалізації, викликали в Update, котрий викликається кожен кадр.
до того ж в старті отримується компоненUpdata, рий наче один раз отримали, та й використовуємо, так нііі, ми будемо кожний кадр шукати той компонент, ліл.
Та й шо то за Update такий? Звідки там взявся аргумент? Воно хоч компілюється?
Мене не вразив Ваш кід.
В цілому код робе нормально.
Щас розберу його структуру:
-массив waypoint хранить кординати п'яти обєктів;
-перемена _target лишня і її можна замінити на waypoint[i1];
-далі іде перемена якій ми пізніше присвоєм компонент NavMeshAgent;
-в функції старт все понятно думаю;
-в Updata спочатку ми заставимо нпц рухатися в сторуну _target;
-дальше іде проверка чи відстань між нпц і обєктом равна або менша за 1, якщо да то ми визиваєм функцію старт в якій рандовно вибираються нові значенія і заново іде функція Updata, таким чином нпц буде ходить рандовно до пяти різних обєктів.
Якщо щось неясно то питайте.
Цей скріпт я показував в відео яке скидав в цій темі раніше.
Програмірування це така штука де самий дурний варіант може оказатися в полне робочим і нормальним.
Щось у Вас не дуже виходить не вживати суржик.
На форумі є вкладка користувачі і там знайдіть Faraon, то він поділяє ваш підхід до діла, може погодиться на співпрацю. Він навіть колись оцим цікавився.
Ну принані я намагаюсь не вживати суржик.
Ну принані я намагаюсь не вживати суржик.
Хто зацікавений в пропозиції то пишіть.
На форумі є вкладка користувачі і там знайдіть Faraon, то він поділяє ваш підхід до діла, може погодиться на співпрацю. Він навіть колись оцим цікавився.
Це все є хорошо, але є одне але, він заходив останій раз в 10.09.15.
перший раз бачу, щоб Start, котрий призначений для ініціалізації, викликали в Update, котрий викликається кожен кадр.
до того ж в старті отримується компонент, котрий наче один раз отримали, та й використовуємо, так нііі, ми будемо кожний кадр шукати той компонент, ліл.
Та й шо то за Update такий? Звідки там взявся аргумент? Воно хоч компілюється?
Мене не вразив Ваш кід.
Омг, ви просто не очікували, що людина видасть вам хоч якийсь код, почали тролити. А коли це трапилось, щоб не впасти лицем у багнюку, вирішили увімкнути "експерта".
З форуму видно, що місцями не знаєте/не розумієте самих основ, натомість намагаєтесь повчати інших і на кожному кроці тикати у пхпешників (бо ж самі намагаєтесь осилити математику). І будь-ласка, наступного разу коли надумаєте висловити свою думку, зробіть це зі свого аккаунта, а не з "coder'ів" різних..
(с) Ваши даказатєльства нє даказатєльства.
Все, зливаюсь перед тру програмером:(
Але ж код справді не працює. Зробив я такий самий метод Update, розраховуючи на те, що вміст методу просто не буде виконуватись. Unity ж дає помилку:
Script error (gun): Update() can not take parameters.
Якщо ТС хоче знайти людей в команду, то йому варто б викласти робочий скрипт. І свій, тому що пан Ярмоленко постійно пише Updata і наводить на думку, що він не писав навіть це.
Але ж код справді не працює. Зробив я такий самий метод Update, розраховуючи на те, що вміст методу просто не буде виконуватись. Unity ж дає помилку:
Script error (gun): Update() can not take parameters.
Якщо ТС хоче знайти людей в команду, то йому варто б викласти робочий скрипт. І свій, тому що пан Ярмоленко постійно пише Updata і наводить на думку, що він не писав навіть це.
В функції Updata() неповино бути аргументів.
Є і упрощоний варіант:
using UnityEngine;
using System.Collections;
public class ai : MonoBehaviour
{
public Transform[] waypoint = new Transform[5];//кординати обєктів до яких буде ходить НПС
Transform _target;
NavMeshAgent _agent;
void Start()
{
_agent = (NavMeshAgent)this.GetComponent("NavMeshAgent");//присваюємо компонент NavMeshAgent
}
void Update()
{
bool patryl = true;
do
{
_target=waypoint[Random.Range(1, waypoint.Length)];//случайно вибираємо до якого обєкта буде іти нпс
_agent.SetDestination(_target.transform.position);//змушуємо нпс іти до нашого обєкта
} while (patryl == false);
}
}