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 中如何让一个物体一端固定,另一端随另一物体运动,就像弹簧一样