Клик по террайну

Программирование на Юнити.

Клик по террайну

Сообщение yellowspirit 24 сен 2009, 15:05

Народ, подскажите плз, как в скрипте получить координату клика щелчка мышью? Хочу реализовать управление как в РПГ играх от 3го лица, чтобы чар бежал в точку клика по террайну. Подскажите в какую сторону копать. :-?
Аватара пользователя
yellowspirit
UNец
 
Сообщения: 10
Зарегистрирован: 19 сен 2009, 19:14
Откуда: Мурманск
  • Сайт
  • ICQ

Re: Клик по террайну

Сообщение Neodrop 24 сен 2009, 15:35

Луч из позиции камеры через координаты курсора.

(c#)
Код: Выделить всё
Ray ray = сamera.ScreenPointToRay(new Vector3(Screen.width/2, Screen.height/2, 1));
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 500))
                {
                    // Делаем своё чёрное дело
                    // Переменная hit содержит все, интересные вам, данные.
                }
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Клик по террайну

Сообщение yellowspirit 24 сен 2009, 16:36

Код: Выделить всё
using UnityEngine;
using System.Collections;

public class mmove : MonoBehaviour {

   // Use this for initialization
   void Start () {
   
   }
   
   // Update is called once per frame
   void Update () {
   Ray ray = Camera.ScreenPointToRay(new Vector3(Screen.width/2, Screen.height/2, 1));
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 500))
                {
                    // Делаем своё чёрное дело
                    // Переменная hit содержит все, интересные вам, данные.
                }
   }
}


Выдает ошибку:
Assets/My Assets/mmove.cs(13,26): error CS0120: `UnityEngine.Camera.ScreenPointToRay(UnityEngine.Vector3)': An object reference is required for the nonstatic field, method or property


Что я нетак делаю?
Аватара пользователя
yellowspirit
UNец
 
Сообщения: 10
Зарегистрирован: 19 сен 2009, 19:14
Откуда: Мурманск
  • Сайт
  • ICQ

Re: Клик по террайну

Сообщение Neodrop 24 сен 2009, 17:43

Camera.ScreenPointToRay это вызов метода класса Camera
Какое это имеет отношение к вашей камере? Правильно - никакого.
Если этот скрипт висит на камере, то можно написать так : сamera.ScreenPointToRay С МАЛЕНЬКОЙ БУКВЫ!!!
Потому что это компонент, который будет найден автоматически.
Если же этот скрипт висит где угодно, а не на камере, то введите переменную, в которой укажите эту камеру и пишите так : myFuckedCAmera.ScreenPointToRay

А вообще, по-хорошему, пройдите туториалы, чтобы не множить таких "школьных" ошибок.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Клик по террайну

Сообщение yellowspirit 25 сен 2009, 22:09

спасибо, все получилось. Правда слегка не так как вы написали, но куда копать я понял.

Туторы пройду, совет дельный)
Аватара пользователя
yellowspirit
UNец
 
Сообщения: 10
Зарегистрирован: 19 сен 2009, 19:14
Откуда: Мурманск
  • Сайт
  • ICQ


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2