我正在使用Unity3D,我有一个在OnGUI内部调用的函数来布局我的应用程序的各种gui组件。通常,标签和按钮都在我提供的某个Rect内部,它以屏幕为中心。
那里没有问题...但是,我想要的是有时渲染完全相同的gui元素,这些元素可以是动态的,因此不仅仅是放入预制纹理,而是放到侧面的梯形区域,看起来好像那个gui实际上是在一个平面上,被推离屏幕中心,并稍微旋转。在函数中绘制的所有gui按钮仍应正常响应。
我非常希望我可以在GUI.matrix中指定一些值来将矩形映射到一个梯形,但我最初的探索似乎表明gui元素似乎没有使用同质坐标,一切仍然显示出来像矩形一样。
有没有办法用Unity执行此操作,理想情况下无需访问专业版功能?
答案 0 :(得分:2)
由于现在Unity3D
GUI系统不是很灵活。 new GUI system是Unity 4
中尚未发布的功能之一(我们都在等待它)。
从我的观点来看,它有几个问题,特别是:
然而,我想要的是有时候渲染完全相同的gui 元素,可以是动态的,因此不仅仅是放入预制件中 纹理,成一个梯形的区域,看起来好像 那个gui实际上是在一个平面上,被推离了中心 屏幕,并稍微旋转。绘制的所有gui按钮 该功能仍应正常响应。
使用Unity
的{{1}}课程即使不是不可能,这也很难。
我看到了两种可能性:
GUI
类来执行此操作。如果您的GUI
足够简单,您可以使用以下方法实现自己的(甚至是3d)按钮:
答案 1 :(得分:0)
当我遇到同样的问题时,我只使用了具有纹理的普通3D GameObjects立方体,并在它们上面调用OnMouseDown
(PC / Mac)或RayCasting
(Android / iOS)。我猜这就是每个人都这样做的。