找回密码
 注册帐号

扫一扫,访问微社区

着色器 unity EventTriggerr组件和ScrollRect中item的滑动冲突

4
回复
481
查看
[ 复制链接 ]
6蛮牛粉丝
1157/1500
排名
2307
昨日变化

14

主题

190

帖子

1157

积分

Rank: 6Rank: 6Rank: 6

UID
238290
好友
2
蛮牛币
1456
威望
0
注册时间
2017-8-18
在线时间
339 小时
最后登录
2019-3-2
2018-6-25 16:26:36 显示全部楼层 阅读模式
20蛮牛币
unity EventTriggerr组件和
在ScrollRect中的每一个item 上添加 EventTriggerr组件,运行程序后,ScrollRect中的鼠标中键滑动事件不执行,删除EventTriggerr组件后,就可以执行,这是为什么?
求大神解决,或者给个思路,万分感谢

回复

使用道具 举报

3偶尔光临
211/300
排名
13052
昨日变化

3

主题

57

帖子

211

积分

Rank: 3Rank: 3Rank: 3

UID
190909
好友
1
蛮牛币
60
威望
0
注册时间
2016-12-9
在线时间
85 小时
最后登录
2019-1-18
2018-6-25 16:45:23 显示全部楼层
raycast target 不勾选
回复

使用道具 举报

6蛮牛粉丝
1157/1500
排名
2307
昨日变化

14

主题

190

帖子

1157

积分

Rank: 6Rank: 6Rank: 6

UID
238290
好友
2
蛮牛币
1456
威望
0
注册时间
2017-8-18
在线时间
339 小时
最后登录
2019-3-2
楼主 2018-6-27 09:21:06 显示全部楼层
Unittt 发表于 2018-6-25 16:45
raycast target 不勾选

不 勾选,有个功能实现不了。勾选还是不能取消的
回复

使用道具 举报

2初来乍到
105/150
排名
15907
昨日变化

0

主题

22

帖子

105

积分

Rank: 2Rank: 2

UID
67817
好友
1
蛮牛币
181
威望
0
注册时间
2015-1-12
在线时间
37 小时
最后登录
2018-8-7
2018-8-1 17:29:43 显示全部楼层
嘿,大胸弟,Check it out!
个人觉得原因应该是:
ScrollRect和EventTrigger都继承了接口IBeginDragHandler/IDragHandler/IEndDragHandler,而Item比Scroll更靠前,挡住了Scroll,所以优先响应Item上面的这几个接口的方法。

解决方法有二:
其一:
可考虑不使用EventTrigger,自己写个脚本,然后继承EventTrigger所继承的接口当中你认为你需要的,例如,想要有点击效果就继承IPointerClickHandler,反正不继承上面提到的那三个冲突的接口就是了。(保证妥妥的)

其二:
如果你不想写多一个类,那么就在触发EventTrigger的OnBeginDrag(PointerEventData eventData)/OnDrag(PointerEventData eventData)/OnEndDrag(PointerEventData eventData)的时候分别调用一下ScrollRect的OnBeginDrag(PointerEventData eventData)/OnDrag(PointerEventData eventData)/OnBeginDrag(PointerEventData eventData)。(妥妥的大胸弟)
回复

使用道具 举报

6蛮牛粉丝
1157/1500
排名
2307
昨日变化

14

主题

190

帖子

1157

积分

Rank: 6Rank: 6Rank: 6

UID
238290
好友
2
蛮牛币
1456
威望
0
注册时间
2017-8-18
在线时间
339 小时
最后登录
2019-3-2
楼主 2018-8-2 09:06:52 显示全部楼层
fishman2015 发表于 2018-8-1 17:29
嘿,大胸弟,Check it out!
个人觉得原因应该是:
ScrollRect和EventTrigger都继承了接口IBeginDragHandle ...

不错呀,很详细,我喜欢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则