Помогите со скриптом!!
|
|
Georgiy0912 | Дата: Суббота, 23 Июня 2012, 15:29 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Здравствуйте! Помогите в написании скрипта на си под юнити. Никак не могу понять, как сделать прицеливание от первого лица, т.е. Если прицел, например центр экрана или точка на экране наведена на противника, предположим на куб и get key down, то вычесть из переменной здоровья, лежащей в другом скрипте, допустим 10. Как вычесть я понимаю, но как создать условие "если прицел на противнике" Где то слышал про ray cast, но понятия не имею что это такое.
|
|
| |
Fennom | Дата: Суббота, 23 Июня 2012, 19:13 | Сообщение # 2 |
был не раз
Сейчас нет на сайте
| Копай тут
|
|
| |
Mkasss | Дата: Суббота, 23 Июня 2012, 19:25 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| http://www.youtube.com/watch?v=DXbPCbnVqk8&feature=related
|
|
| |
MyACT | Дата: Воскресенье, 24 Июня 2012, 09:29 | Сообщение # 4 |
C# CODERS
Сейчас нет на сайте
| Georgiy0912, вот это делается так: void OnMouseUp(){ if(Input.GetMouseDown(0)) hp -= 1;
3дэшечки: https://sketchfab.com/myactyindie Курентли воркс он: https://myacty.itch.io/raskopnik
|
|
| |
Georgiy0912 | Дата: Понедельник, 25 Июня 2012, 16:27 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Mkasss, просто драгоценный урок, спасибо! Добавлено (25.06.2012, 16:27) --------------------------------------------- Еще вопросник, значит сделал я ray и создат перемен ную типа RaycastHit с именем Hit, я так понял, что эта переменная равна объекту на который попал луч, но как теперь создать условие подобного типа: If (Hit содержит таг enemy){ }
|
|
| |
Povstalez | Дата: Понедельник, 25 Июня 2012, 18:51 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Quote (Georgiy0912) If (Hit содержит таг enemy){ } Code If (Hit.collider.tag == "Enemy") { }
|
|
| |
Georgiy0912 | Дата: Вторник, 26 Июня 2012, 09:11 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| Спасибо Добавлено (26.06.2012, 06:36) --------------------------------------------- Блин, опять вопрос, значит есть у меня игрок и куча кубиков с тегами enemy, от игрока идет луч, есть условие, если raycast пресекает объект с тегом enemy, то... Вот тут то и проблема, как обратиться к скрипту именно того объекта на который направлен луч, т.е. есть и другие объекты с таким же тегом и скриптом, но мне надо обратиться именно к этому. Проверка enemy нужно только для того, что бы проверить, что я стреляю именно во врага и тем самым наносить дамэйдж только противнику. Добавлено (26.06.2012, 09:11) --------------------------------------------- Ну же Очень нуждаюсь в вашем ответе!
|
|
| |
pixeye | Дата: Вторник, 26 Июня 2012, 09:30 | Сообщение # 8 |
Red Winter Software
Сейчас нет на сайте
| Quote (Georgiy0912) Блин, опять вопрос, значит есть у меня игрок и куча кубиков с тегами enemy, от игрока идет луч, есть условие, если raycast пресекает объект с тегом enemy, то... Вот тут то и проблема, как обратиться к скрипту именно того объекта на который направлен луч, т.е. есть и другие объекты с таким же тегом и скриптом, но мне надо обратиться именно к этому. Проверка enemy нужно только для того, что бы проверить, что я стреляю именно во врага и тем самым наносить дамэйдж только противнику.
Я приведу тебе пример с мышкой. Без труда перенесешь на свое.
Code Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit;
if(Physics.Raycast(ray,out hit,Mathf.Infinity)){ if (hit.collider.CompareTag("enemy")){ hit.collider.GetComponent<_скрипт_врага>().MakeDamage(); }
}
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
Georgiy0912 | Дата: Вторник, 26 Июня 2012, 09:48 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| pixeye, Всё, всё понял! Спс!
|
|
| |