我的Vr项目就像是一个使用3d对象作为选择的测验,所以我已经制作了一个有效的点击事件并使用GVR Pointer Physic Raycaster,但问题是我不知道如何使用GVR Pointer Physic Raycaster获取对象名称
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;
private gerak coba;
// 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> ();
EventTrigger eventTrigger1 = target1.AddComponent<EventTrigger> ();
EventTrigger eventTrigger2 = target2.AddComponent<EventTrigger> ();
EventTrigger eventTrigger3 = target3.AddComponent<EventTrigger> ();
EventTrigger.Entry entry1 = new EventTrigger.Entry( );
EventTrigger.Entry entry2 = new EventTrigger.Entry( );
EventTrigger.Entry entry3 = new EventTrigger.Entry( );
entry1.eventID = EventTriggerType.PointerDown;
entry1.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
entry2.eventID = EventTriggerType.PointerDown;
entry2.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
entry3.eventID = EventTriggerType.PointerDown;
entry3.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
eventTrigger1.triggers.Add (entry1);
eventTrigger2.triggers.Add (entry2);
eventTrigger3.triggers.Add (entry3);
target1.AddComponent<gerak> ();
target2.AddComponent<gerak> ();
target3.AddComponent<gerak> ();
}
// 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);
}
public void OnPointerDownDelegate( PointerEventData data )
{
print (data.enterEventCamera.gameObject.name);
}
}
答案 0 :(得分:1)
您可以PhysicRaycaster
enterEventCamera
而不是public void OnPointerDownDelegate(PointerEventData data)
{
print(data.pointerCurrentRaycast.gameObject.name);
}
获取[[SVProgressHUD appearance] setHudBackgroundColor:[[UIColor greenColor] colorWithAlphaComponent:0.4]];
[[SVProgressHUD appearance] setHudForegroundColor:[UIColor yellowColor]];
[[SVProgressHUD appearance] setHudFont:[UIFont fontWithName:@"MarkerFelt-Wide" size:16]];
检测到的对象名称。
CustomCell.swift