2017-04-10 290 views
2

我想問你如何添加像使用ipointerdown事件觸發器只使用腳本,因爲我的對象是使用script.i生成已經添加事件觸發器內,但它我混淆瞭如何添加ipointerdown事件。謝謝你們Unity 3D VR(Unity 5.6)如何添加事件觸發器使用C#腳本

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.EventSystems; 

public class spawn : MonoBehaviour { 

    // 
    int buatrandom; 
    int jumlahrandom = 16 ; 

    int objek1 ; 
    int objek2 ; 
    int objek3 ; 

    int checkobjek; 
    int checkobjekawal; 

    string simpan1; 
    string simpan2; 
    string simpan3; 

    public GameObject target1; 
    public GameObject target2; 
    public GameObject target3; 

    public int [] simpannomorobject ; 
    public GameObject[] nomorasset; 

    public float speed =10f; 
    public float berat = 1.0f; 

    // Use this for initialization 
    void Start() { 
     simpannomorobject = new int[3]; 
     for (int i = 0; i < 2; i++) { 
      buatrandom = Random.Range (0, jumlahrandom); 
      simpannomorobject [i] = buatrandom; 
      if (i > 0){ 
       if (i < 3) { 
        buatobjek(); 
       } 
      } 
     } 
    } 

    void buatobjek(){ 
     objek1 = simpannomorobject [0]; 
     objek2 = simpannomorobject [1]; 
     objek3 = simpannomorobject [2]; 

     simpan1 = objek1.ToString(); 
     simpan2 = objek2.ToString(); 
     simpan3 = objek3.ToString(); 

     target1 = Instantiate (nomorasset [objek1], new Vector3 (0, 0, 3.0f), Quaternion.identity); 
     target2 = Instantiate (nomorasset [objek2], new Vector3 (4.0f, 0, 0), Quaternion.Euler(0,90,0)); 
     target3 = Instantiate (nomorasset [objek3], new Vector3 (-4.0f, 0, 0), Quaternion.Euler(0,-90,0)); 

     target1.AddComponent<BoxCollider>(); 
     target2.AddComponent<BoxCollider>(); 
     target3.AddComponent<BoxCollider>(); 

     target1.AddComponent<EventTrigger>(); 
     target2.AddComponent<EventTrigger>(); 
     target3.AddComponent<EventTrigger>(); 

     target1.tag = simpan1; 
     target2.tag = simpan2; 
     target3.tag = simpan3; 


    } 

    // Update is called once per frame 
    void Update() { 
     target1.transform.Rotate(0,100* Time.deltaTime,0); 
     target2.transform.Rotate(0,100* Time.deltaTime,0); 
     target3.transform.Rotate(0,100* Time.deltaTime,0); 
    } 



} 

回答

2
void buatobjek(){ 
    // .... 
    EventTrigger eventTrigger1 = target1.AddComponent<EventTrigger>(); 
    EventTrigger.Entry entry = new EventTrigger.Entry(); 
    entry.eventID = EventTriggerType.PointerDown; 
    entry.callback.AddListener((data) => { OnPointerDownDelegate((PointerEventData)data); }); 
    eventTrigger1.triggers.Add(entry); 
} 

public void OnPointerDownDelegate(PointerEventData data) 
{ 
    Debug.Log("OnPointerDownDelegate called."); 
} 
+0

感謝@Hellium –