В настоящее время я работаю над стратегической игрой, и я хочу преформировать действия, используя GUI.Button на игровых объектах. Я использую ray cast и click для выбора объекта, однако, когда я нажимаю на GUI.Button, чтобы вынуть другое действие, кнопка исчезает. Я хочу использовать эту кнопку, чтобы открыть еще один GUI.Box, чтобы показать некоторые описания.Выберите игровой объект и выполните действия с помощью GUI.Button (EventTrigger)
Я знаю, почему кнопка исчезает, потому что я проецирую лучи на мои кнопки нажатием кнопки в функции обновления, но как я могу избежать этого? Я также знаю, что мне нужно использовать EventTrigger, но я не знаком с триггером javascript, я искал в Интернете, но я не мог найти полезный javascript.
Скриншоты:
Вот мой сценарий:
@HideInInspector
var isCalled:int = 0;
@HideInInspector
var scWidth:int = 0;
@HideInInspector
var scHeight:int = 0;
function Start() {
scWidth = Screen.width;
scHeight = Screen.height;
}
function Update() {
if (Input.GetMouseButtonDown(0)) {
var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit)) {
if (hit.collider.tag == "House") {
isCalled = 1;
} else{
isCalled = 0;
}
}
}
}
function OnGUI(){
if(isCalled==1)
GUI.Button(Rect(scWidth/2,(scHeight/2)+(scHeight/4),120,120), name);
}
}
вы можете попытайтесь объяснить еще раз, чего вы пытаетесь достичь? Вы хотите нажать кнопку, скрыть ее и показать другой элемент GUI? – Mad
Да, это похоже на знаменитое игровое столкновение кланов. например, когда вы нажимаете кнопку «Обновить», открывается другая страница с описанием. Поскольку это функция обновления, raycast продолжает проверять столкновение с предоставленными тегами, поэтому, когда я нажимаю на кнопку одновременно, raycast снимается с камеры на кнопку, и поскольку кнопка не имеет никаких тегов, которые она обнаруживает ничего и ничего не показывает – Arsaceus
Итак, не используйте raycast для обнаружения нажатия кнопки. Обычно вы можете использовать 'if (GUI.Button (...) {// делать вещи при нажатии кнопки}' – Mad