Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
物品拾取之判断手指触摸屏幕事件
草莓卷子kaka发起了问答2017-08-29
8
回复
1426
浏览


要先判断手指触摸到了方块,然后做后续的拾取操作

void Update()
	{
		if (Input.GetMouseButtonDown(0)||(Input.touchCount >0 && Input.GetTouch(0).phase == TouchPhase.Began))
		{
#if IPHONE || ANDROID
			if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
#else
			if (EventSystem.current.IsPointerOverGameObject())
#endif
				Debug.Log("当前触摸在UI上");
			
			else 
				Debug.Log("当前没有触摸在UI上");
		}
	}

上面再update里面判断是一种方式,我们不使用在update里面这种方式,想使用注册事件并监听的方式,例如鼠标点击事件有OnMouseDown,那么手指触摸事件是什么了,我们项目是用Xlua写界面,我写了一个方法判断点击到了物体(射线检测)然后向服务器发送拾取的消息,但是不知道在哪触发这个方法?

像做拾取这种操作,一般怎么做,不再update里面判断

所有回复
  • siki 2017-08-29

    这里的手指触摸事件,unity没有提供的,需要自己做检测触发的,unity也支持提供了基本的事件,我们在这些事件上进行扩展

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-29

    开发自定义自己的事件

    • 草莓卷子kaka 2017-08-30

      那如果要用xlua写这部分代码,结合c#,大致思路要怎么实现

      (0) 回复
    • siki 2017-08-30

      回复 @ 草莓卷子kaka: 使用C#来做检测,然后给调用lua里面的方法进行处理

      (0) 回复
    • siki 2017-08-30

      回复 @ siki: 也可以做检测的部分直接做成一个方法,让lua来调用,根据返回值判断是否需要做处理

      (0) 回复
    • 草莓卷子kaka 2017-08-31

      回复 @ siki: 像一般检测 触摸到物体的方法放在C#中update方法里,或者OnMouseDown里面来写,这里的情况我应该是在那触发检测,难道在lua里面要写一个定时器?检测我是否点到

      (0) 回复
    • 草莓卷子kaka 2017-08-31

      回复 @ siki: 或者是直接在lua里面给 所在的UI添加一个点击的监听事件

      (0) 回复
    还有0条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-31

    可以使用一个c#脚本做检测,触发了事件调用lua里面的方法,在lua里面你怎么处理按照自己的逻辑来就行

    这个检测放在一个地方就行了,不用放在多个地方

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!