Unity如何实现3D物体拆解组装

Posted PassionY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity如何实现3D物体拆解组装相关的知识,希望对你有一定的参考价值。

一.前言

最近有一个需求,是做一个发动机的拆卸和安装功能,其实是一个很简单的功能,但是其中有一个点我觉的非常有意思,就是拖拽组装时,物体如何精准拖到目标位置,思路有了,但是我一直找不到实现方式,早晨刷牙时无意间想到了叉乘,我才有了解决方案。就凭这一次的灵光乍现,也很有必要写篇博客来记录一下。
首先,我们先来看下我们要实现的效果,就是对一个发动机(任意多组件物体,如:车)的360°预览查看,手动拖拽拆解,手动拖拽组装。
360°旋转视角

远近拉伸视角

点击拖拽拆卸

拖拽组装

二.360°旋转

360°旋转,原理很简单,就是检测鼠标的上下左右拖动,控制相机基于中心点的旋转
我们来看下核心代码&#x

Unity的物理引擎是如何实现碰撞的呢?

物理引擎不允许两个碰撞器重叠,当两个或多个物体碰撞时,Unity会根 

据他们的旋转速度计算碰撞效果。计算主要根据物体的碰撞器是静止的还
是动态的。物体是不移动的,例如,墙,地面,院子里的喷池等。动态物
体是移动的,例如玩家控制的球,汽车。当计算碰撞时,静态物体不会被
影响,而动态物体会被影响。例如动态的球碰到“静态”的方块时球被弹
开,而方块不受影响。物理引擎有“碰撞器”重叠发生时,物理引擎孩子
计算碰撞器体积,并追踪碰撞器重叠,但不会在碰撞重叠的物体上体现出
来,因为这不叫碰撞。我们把碰撞器放到触发器中,或叫触发器碰撞器。
而当我们这样做时,我们可以检测到触发器的碰撞事件,痛
过“OnTriggerEvent”信息。把碰撞器设为触发器时,可以做出很多智能
效果,比如我们可以在冒险游戏中把触发器放在房间门口,当玩家触发后
,小地图会显示,并告诉玩具,你发现了一个新场景,或者当你走近角落
是,天花板的蜘蛛会掉下来,因为玩家踩到了触发器。(在Collider中勾
选“Is Trigger”)

注:本文摘抄自视频"Unity官方实例教程 Roll-a-ball",视频资源来自游戏蛮牛网。

以上是关于Unity如何实现3D物体拆解组装的主要内容,如果未能解决你的问题,请参考以下文章

unity3d中c#如何修改物体局部的颜色

在unity3d里无法移动物体

unity3d让物体移动固定距离

unity3d 中如何让一个物体一端固定,另一端随另一物体运动,就像弹簧一样

Unity3D中,bundle文件拆解出来的3D模型怎么查看尺寸

Unity3D中移动物体位置的几种方法