Урон
|
|
Vagaitsev | Дата: Суббота, 09 Августа 2014, 16:17 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Всем привет! Помогите дополнить код на c# Необходимо когда зомби ко мне подходит он убивал меня сразу И нужна дистанция при которой объект видит меня
вот код
Код using UnityEngine; using System.Collections;
public class Enemy: MonoBehaviour {
public Transform player; public float move_speed; public float rotation_speed; public Transform enemy; void Update() { var look_dir = player.position - enemy.position; //look_dir.y = 0; enemy.rotation = Quaternion.Slerp(enemy.rotation,Quaternion.LookRotation(look_dir),rotation_speed*Time.deltaTime); enemy.position += enemy.forward * move_speed * Time.deltaTime; } }
|
|
| |
Wookie | Дата: Суббота, 09 Августа 2014, 16:39 | Сообщение # 2 |
Decembear
Сейчас нет на сайте
| http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html
|
|
| |
allods | Дата: Суббота, 09 Августа 2014, 17:02 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| рейкаст и триггер тебе в помощь юный падаван
|
|
| |
JonLivingston | Дата: Суббота, 09 Августа 2014, 18:53 | Сообщение # 4 |
почетный гость
Сейчас нет на сайте
| Код //Смерть if(Vector3.Distance(player.position, enemy.position) < minDistance) player.Death();
//Видимость if(Vector3.Distance(player.position, enemy.position) < lookDistance) player.isVisible = true; else player.isVisible = false;
И, соответственно, подставляй переменные. А вообще, в целом, за расстояние отвечает Vector3.Distance, с ним и играй.
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
MANMANA | Дата: Суббота, 09 Августа 2014, 20:00 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| И консоль ему скажет, что у player нет компонента Death Функцию Смерть ему в помощь?:)
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
JonLivingston | Дата: Суббота, 09 Августа 2014, 21:54 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| Цитата MANMANA ( ) Функцию Смерть ему в помощь?:) Так же, как и isVisible. Я думаю с этим пусть как-нибудь сам, ибо вопрос в другом состоял =)
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
Сообщение отредактировал JonLivingston - Суббота, 09 Августа 2014, 21:57 |
|
| |
Vagaitsev | Дата: Воскресенье, 10 Августа 2014, 07:14 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Переменная видимости? Код public float lookDistance;
Выдает ошибку
Код Assets/������� � �����/Enemy.cs(20,23): error CS1061: Type `UnityEngine.Transform' does not contain a definition for `isVisible' and no extension method `isVisible' of type `UnityEngine.Transform' could be found (are you missing a using directive or an assembly reference?)
|
|
| |
Wookie | Дата: Воскресенье, 10 Августа 2014, 07:16 | Сообщение # 8 |
Decembear
Сейчас нет на сайте
| Vagaitsev, Цитата JonLivingston ( ) Так же, как и isVisible. Я думаю с этим пусть как-нибудь сам, ибо вопрос в другом состоял =)
|
|
| |
Vagaitsev | Дата: Воскресенье, 10 Августа 2014, 08:08 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Wookie, Я просто не догоняю что да как) Так куда вставлять и дописывать?
|
|
| |
JonLivingston | Дата: Воскресенье, 10 Августа 2014, 11:31 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| Vagaitsev, переменные Код minDistance //Дистанция смерти lookDistance //Дистанция видимости isVisible //Видимость игрока А так же метод вы вводите сами, основываясь на предыдущем коде и необходимых данных.
Ок, судя по таким вопроса, наверное стоит пояснить еще кое-что. Предыдущий код я писал, как пример, в надежде на то, что из него будет виден принцип действия инструмента Vector3.Distance(). Точно так, как там, писать не стоит. В частности, код Код //Видимость if(Vector3.Distance(player.position, enemy.position) < lookDistance) player.isVisible = true; else player.isVisible = false; Лучше заменить на Код if(Vector3.Distance(player.position, enemy.position) < lookDistance) isLook = true; else isLook = false; Тогда, при наличии двух и более врагов, даже если вы вышли из зоны видимости одного, другой может продолжать вас видеть. Другими словами, лучше проверять не видимость игрока, а поле зрения каждого моба. Конечно, я надеялся, что это и так понятно, но похоже, пояснить все-таки было не лишним.
Все, что вам осталось, вбить необходимые значения в переменные (все переменные создаются в классе Enemy), описанные выше (player.isVisible заменив на isLook), а так же создать в классе Player публичный метод Death(), в котором прописать, что случается при смерти.
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
Сообщение отредактировал JonLivingston - Воскресенье, 10 Августа 2014, 11:34 |
|
| |