昨天是实现了显示GameObject子GameObject的选项卡功能,今天就是要让statusPanel可以控制它们的位置、旋转和缩放了。
  没什么难的,对应选项卡绑定上对应的物体或子物体即可。
  删除操作的话只需要在删除当前选项卡之前递归地删除它的子孙选项卡和对应的模型即可,隐藏的话也是递归地将他们的active设置为false。
  由于smpl模型只有一个skinnedMeshRenderer,然而网格的各个部分是绑定在它的子对象中的,如何获得各种变换后对应网格的顶点坐标呢?
  使用BakeMesh方法即可,用法是先new一个mesh作为容器,然后调用该方法就能把经过各种乱七八糟变换后的mesh的snapshot(快照,就是网格渲染的样子,也是Mesh类型)存入括号里的mesh。
  比如我的OnClick方法是这么写的,就是点击按钮后会在网格的每个顶点坐标生成一个半径为0.1的球:

public void OnClick()
{Mesh mesh= new Mesh();smr.BakeMesh(mesh);foreach(var item in mesh.vertices){var a=GameObject.CreatePrimitive(PrimitiveType.Sphere);a.transform.position = item;a.transform.localScale = new Vector3(0.1f,0.1f,0.1f);}
}

  变换前:

  只旋转子对象:

  点击按钮:

  不过对最外层的变换貌似只响应scale变换,position和rotation的变换却没反应,但是对于直接导入的obj模型是这三类属性都不响应的,真奇怪。
  没办法,只能禁用最外层的scale编辑了...
  smpl模型也不能增加三角形数量,于是也把smpl模型三角形数量编辑给禁了。
  关节点的话只能编辑旋转,编辑position的话会产生很鬼畜的结果,所以把关节点的position和scale也禁了。总之哪里不对禁哪里。

  也相应地把计算接触点那里改成适应skinnedMeshRenderer的版本,来看看效果吧:
  先调好人的姿势以及和椅子的位置:


  然后计算接触点:


  看上去还挺正常的。不过接触点貌似太黑了点,要是红红的就好看一些,应该是阴影的问题。
  于是加了这两行代码:

//不产生阴影也不接收阴影
mr.receiveShadows = false;
mr.shadowCastingMode =UnityEngine.Rendering.ShadowCastingMode.Off;

  然而还是有些接触点是黑色的,这些都是卡在另一个模型里没有光线照射到的球:

  应该能够用设置layer的方式来解决这个问题,给接触点设置为单独的层,然后新建light再设置light的culling mask,只照射接触点所在层就行了:

  最后用一个哲♂学场景测一下效果:





  可以发现所有接触点在光线的照射下熠熠生辉,我成功地驱逐了黑暗!

转载于:https://www.cnblogs.com/yaoling1997/p/10158614.html

3dContactPointAnnotationTool开发日志(二二)相关推荐

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

      今天完成了修改按钮颜色,添加smpl模型到工具,以及可以显示物体子物体对应选项卡的功能.把之前的meshRenderer+meshFilter都改成了skinnedMeshRenderer,因为s ...

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

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

  3. 基于WPF+XMPP的IM程序开发日志 之二 WPF线程模型

    循例地在开始正文前说些废话.正如这篇博客的题目--开发日志,这系列的博客是我在编写这个IM的一些日志,或者另外一个说法:笔记.并不是一些系统的文章,例如"XX学习教程".这些博客里 ...

  4. [明日方舟抽卡数据库]开发日志(二)

    明日方舟抽卡数据库 上一章:[明日方舟抽卡数据库]开发日志https://blog.csdn.net/qq_37439115/article/details/125608849 目录 前言 一.新增功 ...

  5. windows phone 7开发日志(正题二,字体)

    基于XNA的例子下了几个,不寒而栗.主要是代码看起来让人有种回到过去的感觉,那个刚会堆叠代码,为实现一点小功能欣喜若狂的过去. 说句托大的话,很多例子的编码方式,看起来就像是未经任何程序训练,学会了凑 ...

  6. VSTO进行时––开发日志之二(VSTO Development diary II)

    原文见  [url]http://www.5ushare.com/vsto/vsto%e8%bf%9b%e8%a1%8c%e6%97%b6%e2%80%93%e2%80%93%e5%bc%80%e5% ...

  7. 【Lolttery】项目开发日志 (二) 数据库的二三事

    基本的框架定好了之后,就是数据库的问题咯.在框架上我们选用了现在比较流行的mybatis框架. mybatis与spring的整合十分简单: <!-- 配置sqlSessionFactory - ...

  8. “京算盘”家庭理财软件开发日志(二)需求定义

    先吐槽下CSDN新版的编辑器真的太难用了!!! 上图为"京算盘家庭理财软件"的需求定义脑图. 下面是手机版界面原型草图. 登录及锁屏界面原型图 登入后主界面原型图 再次吐槽下CSD ...

  9. RK3288W Android8.1开发日志(二)

    1.犯了一个错误,拿到SDK忘记执行源代码更新指令,5月8号的初始版本有挺多BUG,执行更新.repo/repo/repo sync,更新完之后编译烧录,之前的bug全无. 2.接上一篇文章,修改永不 ...

最新文章

  1. 迭代器(Iterator)模式
  2. 图片自动播放和动态添加
  3. 1270: [BeijingWc2008]雷涛的小猫
  4. Lync Server外部访问系列PART6:启用外部访问
  5. Fiori launchpad里tile的个数是如何从后台取回来的
  6. linux怎么同时查看两个文件,MultiTail - 在单个Linux终端中同时监视多个文件
  7. java线程卡住排查_基于 Java 线程栈 排查问题
  8. 详解数据管理发展的5个阶段
  9. 第1关:创建/删除节点
  10. AngularJS track by $index引起的思考
  11. Design System 中的 Design Token
  12. C# 一次性获取二维数组中的一维数组数据
  13. 微信头像失效_如何判断微信授权的头像是否失效
  14. 软件测试,AutoRunner错误:license invalid,error code=-8
  15. 软件工程人才的社会需求现状与发展趋势分析
  16. YuxuanSys WMS412无线流媒体网关在会议场景中的应用一
  17. #507 Wiggle Sort II
  18. 7-46 新浪微博热门话题 (30分)
  19. 儿童吹泡泡水简单配方_儿童吹泡泡水简单配方,最简单做泡泡水的办法
  20. html文件中top什么意思,margin-top在html中的意思是什么

热门文章

  1. 前端开发的开始---基于OO的Ajax类
  2. 一些面试题(JAVA)
  3. 从Image Caption Generation理解深度学习
  4. 视频直播技术详解(3)编码和封装
  5. [网络流24题-7]圆桌问题
  6. input获取焦点软键盘弹出影响定位
  7. 如何理解Generator
  8. ajax就收data的参数
  9. [Android] Git组件化部署
  10. kafka的简单使用