为了使工具更人性化,我又在每个status的text上绑了个可以拖拽实现值改变的脚本,但是不知道为啥rotx那个值越过+-90范围后连续修改就会产生抖动的现象,试了很多方法也没能弄好,不过实际用起来问题应该不大。

  不过拖拽时鼠标碰到屏幕边缘就动不了了,于是我想像unity那样可以让鼠标出现在屏幕的另一边,这样就拖拽起来就更加的方便。

  关于如何实现该功能请看完下列教程:

  1.unity中锁定鼠标移动&&隐藏鼠标&&强制是鼠标移动到某一位置

  2.C# 鼠标光标到达屏幕边缘后从另一边缘出现

  3.在unity中添加System.Windows.Forms引用和注意事项,其中第三部修改Edit是在Unity里修改,不要像我一样在Visual Studio里弄半天都找不到 Project Settings在哪T_T...

  做完上面这几步后可能还会有这样的错误: error CS0012: The type `System.Drawing.Rectangle' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'



  像教程3那样在该文件夹下找到System.Drawing.dll文件并拖到plugins文件夹下即可。



  效果如下:



  不过可能很少有人会发现这个功能,所以我又加了按钮可以让用户通过点击按钮来改变值,不过必须点击一次才能改变一下所以显得很蠢。长按按钮来改变的方式貌似有点难,不会。



  刚刚闲来无事看unity关于eventSystem的视频教程的时候无意中看到了一个叫作Event Trigger的东西,利用它提供的PointerDown和PointerUp就能够轻松响应鼠标长按按钮事件:



  给要实现长按功能的组件添加一个EventTrigger,添加这两个Event然后把组件丢进去,调用组件绑定的自己写的脚本里的方法。我的脚本写的关键代码如下:

void Update () {
if (ifPointerDown)//鼠标按在按钮上
{
float delta = speed;
//Debug.Log("name:"+transform.name);
if (transform.name.Equals("ButtonDec"))
delta = -speed;
if (inputField.interactable)
inputField.text = (float.Parse(inputField.text) + delta).ToString();
}
}
public void PointerDown()
{
ifPointerDown = true;
}
public void PointerUp()
{
ifPointerDown = false;
}

  这样就能实现长按按钮改变输入框的值功能了!按钮也不一定得是按钮,可以是别的UI组件。

3dContactPointAnnotationTool开发日志(二十)的更多相关文章

  1. 3dContactPointAnnotationTool开发日志(十二)

      因为ReferenceImage的锚点是固定的左下角,缩放时controller面板也会跟着动.为了使Scale的时候controller上的slider不会远离指针,于是把controller固 ...

  2. 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法

    转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上 ...

  3. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

    转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...

  4. 仿酷狗音乐播放器开发日志二十五 duilib右键事件的不足的bug修复

    转载请说明原出处,谢谢~~ 虽然仿酷狗的各个菜单早就写好了,但是一直没有附加到程序里.今天把菜单和播放列表控件关联时发现了问题. 和播放列表相关的菜单有三个,分别是每个音乐项目控件相关的菜单.分组的菜 ...

  5. 3dContactPointAnnotationTool开发日志(十九)

      增加了输出接触点信息到文件功能.

  6. 3dContactPointAnnotationTool开发日志(十八)

      今天实现了tab效果,按tab键可以在status面板的各个输入框内来回切换,参考Unity3D - UGUI实现Tab键切换输入框.按钮(按Tab键切换高亮显示的UI)

  7. 3dContactPointAnnotationTool开发日志(十六)

      调了一上午才发现是把下面这个函数: private float DivideTriangle(int []triangle,out int []outTriangle,List<Vector ...

  8. 3dContactPointAnnotationTool开发日志(十五)

      有时候拖动一个窗口的时候可能直接拖出去了那就再也拖不回来只能reset重新来过:   于是开了个类成员变量在start里记录了一下panel的位置: var lp = panel.GetCompo ...

  9. 3dContactPointAnnotationTool开发日志(十四)

      貌似每次让用户手动输入文件路径太不人道了,于是参考Unity 实用教程 之 调用系统窗口选择文件或路径增加了让用户浏览文件的功能,点击输入框旁边的+就可以找到文件并加载进来:   貌似调整位置再计 ...

  10. 3dContactPointAnnotationTool开发日志(十)

      要是那几个状态栏不能拖动的话岂不是显得太呆板了,于是我又参考Unity官方视频教程学习了如何实现拖动状态栏的功能,还挺简单的.   比如说要拖动这个PanelStatus面板,我只让使用者通过拖动 ...

随机推荐

  1. mvc:interceptor拦截器使用

    在spring-mvc.xml里面配置标签 <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/* ...

  2. 使用gogs和glide来轻松拉取golang第三方库

    golang的第三方代码拉取一直是让人头疼的问题,在github托管的代码还好,托管在其他网站上的代码总会由于大家都懂的原因,无法访问.纵使是github,在拉取文件数量较多的库时,也是比较慢的. 有 ...

  3. Hangfire初探

    Hangfire 是什么? Hangfire 是一个定时任务的管理后台,它拥有定时任务功能和及其相关的管理后台界面.Hangfire 原生使用 .NET 开发的,同时支持 .NET 和 .NET Co ...

  4. PWA-网络

    PWA-网络 fetch API Get fetch('/some/url',{ method:'GET' }).then(function(resp){ //success }).catch(fun ...

  5. git忽略项gitegnore配置

    在git中如果想忽略掉某个文件, 不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法.这个文件每一行保存了一个匹配的规则 例如 # 此为注释 – 将被 Git 忽略 *.a # ...

  6. elasticsearch集群整合elqsticsearch-sql插件

    1.本来整合这个插件是比较简单易操作的,但是由于公司从AWS下载禁掉了,给安装带来一些麻烦, 采用离线安装,先FQ将elasticsearch-sql-5.1.2.0.zip下载下来: ./bin/e ...

  7. Emmet 技巧

    1. Lorem 产生一段 dummy text 2. $ 变量的使用 3. 插入img的长度和宽度 使用快捷键ctrl+u插入图片的长度和宽度 注意光标要停留在图片文件名上. 其他在Sublime中 ...

  8. MySQL高级-全局查询日志

    注意:全局查询日志不要在生成环境中启用 一.配置启用 二.编码启用

  9. 获取Chromium代码以及编译

    获取和编译Chromium必须自备梯子,最好是购买一个稳定的V*P*N,喜欢折腾的可以使用类似shadowsock的代理(需要设置google文档). 英文版教程文档可以参考这个界面,下面详细说Win ...

  10. git 操作几个命令

     git clone ssh://lijianfeng@192.168.1.246:29418/GMGameSDK压栈:git stash查状态:git status切换到要修改的提交:git reb ...