2016-03-30 4 views
2

Прежде всего позвольте мне объяснить мою структуру, есть фоновое изображение, содержащее сценарий кнопки, который он использовал, чтобы знать, когда пользователь нажал кнопку за пределами кнопки.Нажатие кнопки не работает во всей картине с авторскими правами.

Вот это: enter image description here

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

и, наконец, кнопка, которая имеет проблемы : enter image description here

Во время игры при нажатии на эту кнопку, она работает только до его до половины высоты, как на картинке ниже: enter image description here

Просто, если не было больше кнопки ниже этого, во-первых, я подумал, что это потому, что у меня есть кнопка фона, и когда я щелкнул ниже, что он считается фоном, но когда я деактивирую кнопку фона, все равно происходит то же самое.

Просто для дальнейшего использования, это то, как он выглядит во время игры: enter image description here

Кнопка только показывает, когда его изображение будет нажата, когда я нажимаю за пределами своей коробки я GameObject.SetActive (ложь);

Поскольку я на самом деле думаю, что это имеет какое-то отношение к Unity UI, я не верю, что есть необходимость в каком-либо коде, но при необходимости просто комментировать, и я могу опубликовать (его длинный код).

+2

Помимо вашей проблемы, достаточно уверенно, что эти изображения не являются бесплатными. –

+0

Я бы сказал, что есть прямая трансформация, блокирующая эту часть кнопки обновления. Можете ли вы проверить и подтвердить, если это так. Также вы уверены, что никакие другие кнопки не «съедают» raycast, когда вы нажимаете нижнюю часть обновления. Возможно, вам придется реализовать некоторые холст-группы, чтобы справиться с этим. –

+1

В соответствии с двумя последними изображениями кликабельная часть соответствует размеру этого изображения «X/Y». Я думаю, что эти двое как-то мешают. –

ответ

2

не может быть проще, а также ваше обычное защищенными авторские infrigement изображения,

вы явно имеете дополнительные «4000 (монет)» типа авторских прав infrigement изображения, которое появляется на дне.

вы набивали что-то на этом изображении, а кнопка - одна блокирует другую или тому подобное.

(Почти наверняка вы изменение размера «изображение, а не кнопку» или что-то подобное ... но мы собираемся, чтобы спасти вас скуку дело с этим.)

Вот решение

Реорганизуйте свои изображения любым способом, в том числе динамически изменяя их на лету.

Тогда на самом деле ПОД ОБРАЗА есть кнопка, сделать его развернуть все пути. Полностью закрепите кнопку - УДАЛИТЕ изображение и текст кнопки.

Теперь все будет работать отлично - кроме пустых кнопок не работает. Так как вы можете избежать всей работы, найдя вещи в Интернете, вот она ниже. Это волшебный скрипт, который вы бросаете на пустые кнопки, и затем они работают.

Важные советы:

1) при добавлении ваши пустые кнопки, на первый отпуск в простом белом 50% альфа-изображения, так что вы можете увидеть, где кнопки.Запустите свой код, который динамически изменяет размеры/добавляет/удаляет и т. Д. Изображения, и вы можете посмотреть, остается ли «прозрачная серая область» кнопок правильной.

2) чувак вы должны использовать Prefabs для кнопок, как это. то вы можете изменить один и изменить их все сразу. сделайте так, чтобы узнать, как правильно использовать prefabs

3) для всех ваших единиц изображения, нарушающих авторское право, теперь вы наверняка должны использовать систему идеального макета Unity. вам нужно будет узнать о горизонтальных и вертикальных группах макета.

помните, что вы просто не может производить, не реагирующие интерфейсов в эти дни.

Снова на recap. Система кнопок Unity (хотя и отлично) очень ребяческая - у них есть понятие изображения, включенное в стандартную кнопку, не говоря уже о смешном текстовом элементе, который попадает под стандартную кнопку.

На практике вы редко работаете так. У вас есть «много вещей» (очень вероятно, динамические, обменивающиеся изображения и т. Д.), И вы просто хотите «нарезать кнопку», отбросив компонент кнопки на этот материал изображения.

Я дал вам нижеприведенное решение по преобразованию кнопки Unity (превосходной) в расширенную, серьезную техническую кнопку «Drop On». Наслаждайтесь!

/* Touchable.cs 

So: basically use this to make invisible buttons. 

Often it's much better to have your IMAGES 
(any combination or layout you want), 
as totally normal images. 

Then, UNDER THE IMAGE, using four way stretching, 
have a totally empty button (no image, no text). 

This allows you to separate the image and buttons 
functions. 

You can then do absolutely anything you want to the 
the images, eg, reahape, have multiple images, etc etc 

There's only one problem with this, empty buttons 
don't work. 

In short, if you add this script to an empty button 
- simply drop it on - the button then works perfectly. 

Regarding precisely HOW this script works, I can't 
be bothered explaining. Treat it as magic or search 
long discussions about it on the www. 
It's a little better engineering to go Touchable:Text 
rather than building one from scratch with :Graphic, 
since it will be more immune to Unity deprecations... 
this is the correct solution for Touchable.cs. 
*/ 

// Don't modify ONE CHARACTER in the code here! 

using UnityEngine; 
using UnityEngine.UI; 

#if UNITY_EDITOR 
using UnityEditor; 
[CustomEditor(typeof(Touchable))] 
public class Touchable_Editor:Editor 
    { 
    public override void OnInspectorGUI() 
     { 
     // just consider this magic and don't bother about it, 
     // prevents treating component as a Text object in Editor 
     } 
    } 
#endif 

public class Touchable:Text 
    { 
    protected override void Awake() 
     { 
     base.Awake(); 
     } 
    } 
+1

«Он не тот герой, которого StackOverflow заслуживает, но тот, который ему нужен прямо сейчас ...» :) –

+0

@JoeBlow Спасибо за все советы, это было очень полезно, я рассмотрю использование этой опции в будущих проектах, но этот сделано и исправлено другим способом, спасибо в любом случае! –

+0

kkkk, конечно! Но отметьте, что вы хотите проголосовать или принять его? –

1

Ну, это была очень глупая вещь, панель я использовал, чтобы сделать строки было сделано, прежде чем я сделал кнопку, так что, когда я создал кнопку она просто была вне границ, поэтому, когда я нажал на в нижней части кнопки это не сработало бы, потому что это не был щелчок на панели, я просто решил, что каждый снимок каждого изображения вырастет. enter image description here

Смежные вопросы