Вопрос по реализации.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Вопрос по реализации.

Сообщение Sality 02 дек 2011, 23:44

Всем привет, хотел бы узнать как правильнее реализовать такую затею. А затея обычные шашки. Собственно шашки лежат на доске (их положить координатами или физикой), хватаю шашку мышкой (подскажите событие, которое поможет определить на какой обьект я кликнул) и перемещаю по доске (посоветуйте как лучше сделать чтоб можно было при перемещении набросить шашку на шашку).

Больше всего волнует вопрос, как проложить луч от клика мышки по шашке, чтоб сработал колайдер у этой шашки и я смог привезать ее координаты к координатам мышки (эффект перетаскивания)

заранее спс.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Вопрос по реализации.

Сообщение ArtUni3d 03 дек 2011, 04:11

Синтаксис:
Используется csharp
public RaycastHit Target;

void Update() {
     Ray r = camera.ScreenPointToRay(Input.mousePosition);
     Physics.Raycast(r, out Target);
}


Target это ваша выделенная шашка.
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

Re: Вопрос по реализации.

Сообщение ArtUni3d 03 дек 2011, 04:21

Ой, что-то я все усложнил без надобности.

Можно много проще:

Синтаксис:
Используется csharp
void OnMouseDown() {
     DoSomething();
}


Вешайте на шашку с колайдером.
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

Re: Вопрос по реализации.

Сообщение Sality 03 дек 2011, 11:58

Что-то немагу найти в доках эту фнцию. Что она возвращает? и вобще что она делает?)
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Вопрос по реализации.

Сообщение trololoid 03 дек 2011, 12:31

OnMouseDown() вызывается при нажатии и зажатии мыши на этом ГО вроде.
DoSomething() - это пример какбы, в переводе "Сделать что-либо".
Как-то так.
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Вопрос по реализации.

Сообщение Sality 03 дек 2011, 12:46

Я правильно понял в унити ненужно использовать луч, для определения обьекта, как только я навожу мышку или кликаю, в этом обьекте срабатывают соответствующие фнции?
спс. Как на счет запрыгивания или перепрыгивания других шашек.? и кстати как лучше положить физикой шашки на доску, или координатно положить на оси Z и X ?
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Вопрос по реализации.

Сообщение trololoid 03 дек 2011, 12:55

При перетаскивании, поднимать на определённую высоту?
Раскладывать можно и через position.
P.S. Ты бы подумал как закрепить шашку за определённым квадратом на доске.
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Вопрос по реализации.

Сообщение Sality 03 дек 2011, 15:18

Ну в псевдо 3д я это реализовывал по средствам колизии с подложкой. Думаю и тут так сделать, положить например plain - квадратик и прицепить на него колизию.
Да идея не плохая.. просто подымать шашку при перетаскивании, а как быть если ее нужно положить на другую шашку?
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Вопрос по реализации.

Сообщение trololoid 03 дек 2011, 16:44

Один из вариантов - засекать коллизию и уничтожать нижнюю шашку.
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Вопрос по реализации.

Сообщение Sality 04 дек 2011, 22:22

Подскажите пжлста, как с помощю луча (Ray) определить точку, на поверхности Plain (координаты.) Это мне нужно для того, что я мог шашку тягать по полю.

заранее спс.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Вопрос по реализации.

Сообщение gnoblin 05 дек 2011, 00:26

создать plane, выключить рендерер,
использовать метод Collider.Raycast()
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5