欢迎光临散文网 会员登陆 & 注册

UGUI的滚动窗修改

2020-05-25 11:26 作者:vicozan  | 我要投稿

最近想尝试用unity的ugui来做一个节点化工具,发现有不少问题。我又不想大面积修改源码,通过查看ugui源码倒是想到些比较恶心的修改方法也能到达目的,特此记录一下。

方法就是利用他开放的可重载函数或者非私有变量。

举个具体的例子。比如ScrollView这个滚动窗,按下鼠标左键不放的情况下可以拖拉窗口。但是仔细观察发现左键按下的位置和实际拖拉的位置会有偏差,看源码发现OnBeginDrag这个回调是在移动一小段距离之后才会触发,对于有强迫症的人来说这就很不舒服了。

问题就出在这,应该把这个变量的修改时机改为鼠标按下时,而非这个开始拖动时

查看源码发现这个关键变量居然是私有的。。。,所幸的是下面还有一个保护型变量 

既然如此那就有办法了,把原本该修改的m_PointerStartLocalCursor的偏差值加到m_ContentStartPosition上去就行了,虽然看着恶心了点,但总比重载N个虚函数要来的简单的多。。。


UGUI的滚动窗修改的评论 (共 条)

分享到微博请遵守国家法律