Привет! Как можно повесить кнопку на game object? сделал скрипт выбора и покупки персонажа. Добавил его в канвас, и создал кнопки, через них все работает. Но я хочу сделать так, что бы на игровом поле стояли мои анимированые персонажи,а не бездушные картинки на кнопках. Ставил персонажей, давал им бокс коллайдер 2д как триггер и добавлял event trigger(pointer down). Но ничего не рботает может есть какой-нибудь другой вариант? Игра 2дшная Вот сам скрипт
Код
using UnityEngine; using System.Collections;
public class CharacterSelector : MonoBehaviour {
public string Character1load; public string Character2load; public string Character3load; public string Character4load; public string Character5load;
public string mainMenu;
public int Character1True; public int Character2True; public int Character3True; public int Character4True; public int Character5True;
public int Character1Cost; public int Character2Cost; public int Character3Cost; public int Character4Cost; public int Character5Cost;
public int score;
public int Character1Open;
public GameObject character2LockCanvas; public GameObject character3LockCanvas; public GameObject character4LockCanvas; public GameObject character5LockCanvas;
public GameObject character2CostCanvas; public GameObject character3CostCanvas; public GameObject character4CostCanvas; public GameObject character5CostCanvas;
public int playerMana;
// Use this for initialization void Start () { //PlayerPrefs.GetInt ("Character1Open", Character1True); PlayerPrefs.GetInt ("Character2Open", Character2True); PlayerPrefs.GetInt ("Character3Open", Character3True); PlayerPrefs.GetInt ("Character4Open", Character2True); PlayerPrefs.GetInt ("Character5Open", Character3True);
// Update is called once per frame void Update () { if (PlayerPrefs.GetInt ("Character2Open") > 0) { character2LockCanvas.SetActive (false); character2CostCanvas.SetActive (false); }
Ставил персонажей, давал им бокс коллайдер 2д как триггер и добавлял event trigger(pointer down).
Чтобы нажать на collider можно использовать MonoBehaviour.OnMouseDown(), но он пробивает сквозь UI. Чтобы работал EventTrigger надо добавить Physics Raycaster на камеру, только надо настроить слои, всё что включено считается как UI элемент и для него будет выполняться EventSystem.current.IsPointerOverGameObject(). Про три способа блокирования кликов сквозь UI здесь рассказано https://www.youtube.com/watch?v=EVZiv7DLU6E.