Unity3D EasyTouch挑战

时间:2014-08-16 22:41:26

标签: c# unity3d

我刚刚为Unity3D购买了EasyTouch 3.1插件,我无法让EasyTouch通过连接到空对象的脚本中的碰撞器识别对象。

如果有人有使用EasyTouch的经验,我会非常感谢您的帮助。

以下是我使用的代码:

using UnityEngine;
using System.Collections;

public class tet1 : MonoBehaviour {

    // Subscribe to events
    void OnEnable(){
        EasyTouch.On_TouchStart += On_TouchStart;
    }
    // Unsubscribe
    void OnDisable(){
        EasyTouch.On_TouchStart -= On_TouchStart;
    }
    // Unsubscribe
    void OnDestroy(){
        EasyTouch.On_TouchStart -= On_TouchStart;
    }
    // At the touch beginning
    public void On_TouchStart(Gesture gesture){
        // Verification that the action on the object
        print ("YEP: " + gesture.pickObject.name);
    }
}

点击对象时收到以下消息:

  

NullReferenceException:未将对象引用设置为对象的实例

我在以下行中得到它:" print(" YEP:" + gesture.pickObject.name);"所以我想我在这行代码中做错了,我无法弄明白。

1 个答案:

答案 0 :(得分:1)

我没有使用该插件的经验,但似乎您正在注册任何触摸事件,然后,在处理程序上,您不会检查对象是否被触摸。

你应该选择

public void On_TouchStart(Gesture gesture)
{
    // ensure an object is touched
    if (gesture.pickObject != null) 
    {
        // Verification that the action on the object
        print ("YEP: " + gesture.pickObject.name);
    }
}