Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 如何在多维数据集中动态创建OnPointerDownMixedRealityPointerEventData?_Unity3d_Hololens_Mrtk - Fatal编程技术网

Unity3d 如何在多维数据集中动态创建OnPointerDownMixedRealityPointerEventData?

Unity3d 如何在多维数据集中动态创建OnPointerDownMixedRealityPointerEventData?,unity3d,hololens,mrtk,Unity3d,Hololens,Mrtk,我正在使用MRTK 2.3.0版本,当“事件指针向下”创建新的游戏对象多维数据集时,我创建了一个拖动的多维数据集,但新多维数据集没有事件。我想为移动它分配一个事件。如何按代码分配事件 using System.Collections; using System.Collections.Generic; using UnityEngine; using Microsoft.MixedReality.Toolkit.Input; public class T

我正在使用MRTK 2.3.0版本,当“事件指针向下”创建新的游戏对象多维数据集时,我创建了一个拖动的多维数据集,但新多维数据集没有事件。我想为移动它分配一个事件。如何按代码分配事件

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using Microsoft.MixedReality.Toolkit.Input;

    public class TouchableCube : MonoBehaviour, IMixedRealityPointerHandler
    {
        Color colorBlue = Color.blue;
        Renderer rend;

        public void OnPointerClicked(MixedRealityPointerEventData eventData)
        {
            rend.material.color = colorBlue;
        }


        public void OnPointerDown(MixedRealityPointerEventData eventData)
        {
            rend.material.color = Color.red;
            GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.transform.position = new Vector3(0,0,2);

            cube.SetActive(true);


        }

        public void OnPointerDragged(MixedRealityPointerEventData eventData)
        {
            rend.material.color = Color.yellow;
            Vector3 v = new Vector3(
                               eventData.Pointer.Position.x,
                               eventData.Pointer.Position.y, 
                               eventData.Pointer.Position.z);
            rend.transform.position = v;   
        }
您可以向中添加一个,并向其中添加侦听器。下面是如何根据示例代码添加更改多维数据集颜色的侦听器:

        public void OnPointerDown(MixedRealityPointerEventData eventData)
        {
            rend.material.color = Color.red;
            GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.transform.position = new Vector3(0,0,2);
            var pointerHandler = target.AddComponent<PointerHandler>();
            pointerHandler.OnPointerDown.AddListener((e) => material.color = Color.green);
            pointerHandler.OnPointerUp.AddListener((e) => material.color = Color.magenta);
            cube.SetActive(true);

        }
public void OnPointerDown(MixedRealityPointerEventData事件数据)
{
rend.material.color=color.red;
GameObject cube=GameObject.CreatePrimitive(PrimitiveType.cube);
cube.transform.position=新向量3(0,0,2);
var pointerHandler=target.AddComponent();
pointerHandler.OnPointerDown.AddListener((e)=>material.color=color.green);
pointerHandler.OnPointerUp.AddListener((e)=>material.color=color.magenta);
cube.SetActive(true);
}

有关更多示例,请参见和。

您可以像分配任何其他事件一样分配它,根据事件类型使用AddListener或+=方法