unity 5.3 工业模型的细节展开功能实现

本文介绍了作者在Unity 5.3中实现工业模型散开与合拢功能的过程,包括数据准备、物体移动、散开与合拢的具体实现方法,以及自定义的寄存器和添加器模块。通过动态添加rigidbody和目标位置计算,实现了物体的平滑移动。此外,文中还提到在合拢过程中修复误差的重要性,并分享了使用Vector3.Lerp方法简化代码的建议。
摘要由CSDN通过智能技术生成

笔者刚学习unity10个月的时间,这个功能是项目需要,由笔者一个人独立完成开发。

有一些显得愚昧或者稚嫩的地方希望得到前辈们的指导,qq 321152405,邮箱也是这个。

一、功能实现思路

(1)数据准备

在主摄像机上挂载一个添加器给父物体的所有子物体(甚至孙物体)动态的添加rigidbody,使用子物体的世界坐标乘以一个值来作为这个子物体需要到达的目标位置,在原始状态使用添加器为每一个子物体动态添加一个寄存器来储存原始状态的子物体坐标(以便于合拢功能)。

(2 )使用一个挂载在主摄像机上的脚本来获取到父物体,笔者在这里使用gameobject.find方法实现,如果需要实用方面的开发,可以使用resource.load方法。

(3 )散开功能:

  在主摄像机的添加器里写一个动态加载方法实现物体的散开方法(使用目标坐标减去原始坐标除以你需要的时间得到速度,在这个时间段内物体以这个速度进行移动,超过时停止)。

(4 )合拢功能:

   与上面的散开功能大同小异,但是需要加上一个修复误差的代码块(因为使用上面的方法经过多次散开以后可能合拢是存在误差)

(5 )寄存器和添加器

   这个笔者自己设计的功能模块,也是笔者在这一次开发体验中得到的受益匪浅的东西。

   寄存器: 负责在软件的某个特殊时间段内寄存下一些在宁一个时间段需要使用的数据。

   添加器: 负责在软件执行的某个时间段内给需要添加组件或者功能脚本的物体动态添加这些东西。(使用单例模式可以修改功能属性)

二、 功能展示

  (1)原始状态

这里需要注意,所有子物体的坐标是否存在(在一次测试中我们团队里的美工给我的模型我打不开,后来找到原因是所有子物体的坐标都为0,后来他在3dmax里面重新导出了一下模型时取消了所有子物体的附加就可以跑起来了)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值