因为ReferenceImage的锚点是固定的左下角,缩放时controller面板也会跟着动.为了使Scale的时候controller上的slider不会远离指针,于是把controller固定到了左下角.   在网上找了半天也没有找到好的在图像上画球的方法,没办法只好用image来当求了,放上球的照片即可.得把三维坐标转到UI坐标里,具体方法请看Unity3D 世界坐标上一个点对应UI上一个点.   于是具体的玩法就是先计算接触点,再把图片和三维物体对齐,点击Overlay按钮,就会生…
转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上一片博客那样,处理标题栏的布局的右键消息就可以了.后来发现在duilib的标题栏中无法像在客户区那样自如响应UIEVENT_CONTEXTMENU消息的.所以还得用另外的方法. 在非客户区处理右击消息对应的是WM_NCRBUTTONUP,WM_NCRBUTTONUP是和WM_NCHITTEST相辅相…
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出来,给学习duilib布局的朋友做个demo.现在编写的仿酷狗选项设置窗体和原酷狗的窗体不细看几乎看不出差别,控件的布局位置和原酷狗最多只有几个像素的位置差别. 先来看一下原酷狗的选项设置窗体的其中一个页面: 如果还不太会布局的朋友可以先看我前些日子写的关于duilib布局的博客<duilib各种布…
转载请说明原出处,谢谢~~ 虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里.今天把菜单和播放列表控件关联时发现了问题. 和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单.分组的菜单.音乐电台的菜单.应该的效果如下: 原本我想着只要给对应的控件设置menu属性,然后在代码里响应消息弹出菜单就可以了.但是实际测试发现,控件根本无法响应到menu消息,原因在于:音乐项目.电台项目这些控件都是靠许多子控件组合而成的,换句话就是他们上面覆盖了很多其他子控件,子控件挡住了音乐项目和电台…
  增加了输出接触点信息到文件功能.…
  今天实现了tab效果,按tab键可以在status面板的各个输入框内来回切换,参考Unity3D - UGUI实现Tab键切换输入框.按钮(按Tab键切换高亮显示的UI)…
  调了一上午才发现是把下面这个函数: private float DivideTriangle(int []triangle,out int []outTriangle,List<Vector3> vertices)//切割三角形 { float re = -1; int p = 0; for (int i = 0; i < 3; i++) { int a = triangle[i]; int b = triangle[(i + 1) % 3]; var len = (vertices…
  有时候拖动一个窗口的时候可能直接拖出去了那就再也拖不回来只能reset重新来过:   于是开了个类成员变量在start里记录了一下panel的位置: var lp = panel.GetComponent<RectTransform>().localPosition; localPosition = new Vector2(lp.x,lp.y);   在OnClick中将其复原: panel.GetComponent<RectTransform>().localPosition…
  貌似每次让用户手动输入文件路径太不人道了,于是参考Unity 实用教程 之 调用系统窗口选择文件或路径增加了让用户浏览文件的功能,点击输入框旁边的+就可以找到文件并加载进来:   貌似调整位置再计算接触点是假的,原因应该是我计算用的点的坐标知识mesh原来的点的坐标,并没有考虑缩放.位移和旋转这些因素:   要想将变换应用到mesh.vertices上,可以参考Matrix4x4.TRS Creates a translation, rotation and scaling matrix  …
  要是那几个状态栏不能拖动的话岂不是显得太呆板了,于是我又参考Unity官方视频教程学习了如何实现拖动状态栏的功能,还挺简单的.   比如说要拖动这个PanelStatus面板,我只让使用者通过拖动其Text组件来实现拖动整个面板移动的效果.   只要为其Text绑定一个DragPanel.cs脚本,代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEn…