Проблема с OnMouseDown

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

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 03:04

Проблема в следующем. Пытаюсь реализовать кнопку через raycast, хочу сделать проверку дистанции через OnMouseOver (если мышь наведена на кнопку и дистанция маленькая - кнопка работает). но OnMouseOver тоже не работает с rendertexture. Что же делать?

Может всё таки есть способ заставить OnMouseDown работать с rendertexture? Коллайдер проверял, нет его. Может нужно OnMouseDown уточнять, с какой камерой ему работать?
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 04:45

Люди добрые, ничего у меня не выходит. Облазил уже пол оффициального форума в надежде найти похожий скрипт, пытался делать свой на основе FPS туториала, не выходит. Либо не работает, либо валится с ошибками.
Напишите мне пожайлуста скрипт, что бы при нажатии на Object1 происходил Destroy (ну или любое действие, Destroy просто наглядный) Оbject2. Что бы работало это без OnMouseDown, через RaycastHit. Можно по нажатию клавиши "E". Это один из последних базовых скриптов, который мне нужен для реализации своего проекта.
И не ругайте сильно, художник я ) вынужден как-то делать то, чего не умею ну совсем. И не всегда получается, волосы на голове рву (
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение Syberex 10 мар 2011, 10:20

Хочется тебе помочь, но нечем - сам пока до скриптов всерьез не дошел ...
Но чтобы, народ быстрее откликнулся ты бы выложил скрипт, который намучал и ошибки, которые и где выскакивают - сразу дело быстрей пойдет!
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 13:38

Ну допустим, вот такой вариант, без рейкаста на триггере:

function OnTriggerStay (other : Collider) {
if(other.parent.tag == "player" && Input.GetButtonDown("Fire1")){
Destroy(GameObject);
}
}

Должен работать в теории?
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение DAlex 10 мар 2011, 14:31

Должен работать в теории?

А что на практике?

Уточните.OnTriggerStay висит на уничтожаемом объекте?
Аватара пользователя
DAlex
UNец
 
Сообщения: 20
Зарегистрирован: 10 фев 2011, 00:05
  • ICQ

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 14:48

Сейчас да, на уничтожаемом. На практике этот скрипт еще не проверял.

Вот еще что-то накопипастил с рейкастом, так оно работает, как я себе придумал?:

var placement : Transform;

function Update () {
if (Input.GetButtonDown("Use")){
var hit : RaycastHit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit, 5)){
if (hit.collider) {
Destroy(gameObject);
}
}
}
}
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение DAlex 10 мар 2011, 15:23

Оба скрипта рабочие...
Только в первом как вы уже себя поправили Destroy(gameObject);
Поправился.Второй код уничтожит ваш объект при "попадании" в любой объект сцены, который будет "находиться от камеры на расстоянии 5".
Последний раз редактировалось DAlex 10 мар 2011, 15:46, всего редактировалось 3 раз(а).
Аватара пользователя
DAlex
UNец
 
Сообщения: 20
Зарегистрирован: 10 фев 2011, 00:05
  • ICQ

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 15:25

Спасибо, буду дома, буду проверять.
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение DAlex 10 мар 2011, 15:38

Вам нужно использовать :
if (collider.Raycast (Camera.main.ScreenPointToRay(Input.mousePosition), hit, 5))
Что-то в этом роде ...
У самого сейчас [unity 3D] под рукой нету...
Удачи!
Аватара пользователя
DAlex
UNец
 
Сообщения: 20
Зарегистрирован: 10 фев 2011, 00:05
  • ICQ

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 15:41

Спасибо и на этом, буду пробывать!
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Re: Проблема с OnMouseDown

Сообщение Ert Donuell 10 мар 2011, 15:48

druggon писал(а):Сейчас да, на уничтожаемом. На практике этот скрипт еще не проверял.

Вот еще что-то накопипастил с рейкастом, так оно работает, как я себе придумал?:

var placement : Transform;

function Update () {
if (Input.GetButtonDown("Use")){
var hit : RaycastHit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit, 5)){
if (hit.collider) {
Destroy(gameObject);
}
}
}
}


Этот скрипт уничтожит объект, на котором он висит. Нужно так:
Синтаксис:
Используется javascript
function Update () {
   if (Input.GetButtonDown("Use")){
      var hit : RaycastHit;
      if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit, 5)){
         if (hit.collider) {
           Destroy(hit.transform);
         }
      }
   }
}
 
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Проблема с OnMouseDown

Сообщение DAlex 10 мар 2011, 16:04

function Update () {
if (Input.GetButtonDown("Use")){
var hit : RaycastHit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit, 5)){
if (hit.collider) {
Destroy(hit.transform);
}
}
}
}


"Апокалипсис" по нажатию "Use"- "уничтожить все вокруг на расстоянии 5, если мой курсор висит на этом"!
Уничтожим Terrain и провалимся в бездну... :((
Вроде того...
Аватара пользователя
DAlex
UNец
 
Сообщения: 20
Зарегистрирован: 10 фев 2011, 00:05
  • ICQ

Re: Проблема с OnMouseDown

Сообщение DAlex 10 мар 2011, 18:15

druggon отправил Вам сообщение в личку...
Аватара пользователя
DAlex
UNец
 
Сообщения: 20
Зарегистрирован: 10 фев 2011, 00:05
  • ICQ

Re: Проблема с OnMouseDown

Сообщение gnoblin 10 мар 2011, 18:29

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

Re: Проблема с OnMouseDown

Сообщение druggon 10 мар 2011, 19:23

Так не работает OnMouseDown, в этом и проблема )
druggon
UNец
 
Сообщения: 18
Зарегистрирован: 09 мар 2011, 13:36

Пред.

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

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

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