《Unity 4 3D开发实战详解》一6.1 刚体

  • 时间:
  • 浏览:0
  • 来源:uu直播快3平台

下面的脚本实现了将物体放置于原点的功能,具体代码如下:

该属性表示的是项目中刚体自动进入休眠时请况的传输传输速率值。其在物理管理器中的位置如图6-15所示。该值是休眠的默认线传输传输速率,低于该传输传输速率的物体可能性进入休眠。可能性没办法 你这一 机制,项目中的所有物体将永远不会计算中,对于资源的回收利用很不利。

此变量表示当前的物体的旋转否是是受到物理定律的约束。通过此变量,可不让能 更改x、y、z有六个 方向中的某个方向的旋转约束,以达到开发者不让 达到的旋转效果。

该属性表示的是项目中的休眠角传输传输速率,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-16所示,可能性角传输传输速率低于该值,物体将进入休眠请况。

(5)休眠角传输传输速率(Sleep Angular Velocity)。

(7)冻结旋转(Freeze Rotation)

该属性表示的是该物体否是是受到重力的影响,其数据类型是boolean,初始值为true。其在属性查看器中的位置如图6-4所示。你这一 属性被设为false时可不让能 模拟物体在外太空请况下的失重请况。有只是我也可不让能 根据都要用于一点特殊的场合。

(2)默认材质(Default Material)。

(2)按照第(1)步进行操作只是我,会在属性查看器中呈现物理管理器编辑器,如图6-11所示。

此变量表示了刚体的位置,改变此变量时,引擎会在物理阶段开使后,将物体放置到指定的位置。

1.刚体属性

为了有益于开发者控制物理系统,Unity提供了多个属性接口。开发者可不让能 通过更改那此参数来控制物体的物理请况。实际开发中,那此参数都被完整性地罗列在属性查看器中,开发者很容易就可不让能 对其进行更改。接下来对那此属性进行介绍。

下面的代码可不让能 实现有六个 物体的传输传输速率骤增,以实现瞬移效果,具体代码如下:

(2)否是是使用重力(useGravity)

(3)旋转刚体(MoveRotation)

该属性表示刚体的质量,其数据类型是float,默认值为1。其在属性查看器中的位置如图6-1所示。该属性的大小是有严格要求的,一般来说,大帕累托图物体的质量属性值接近0.1才符合日常生活的感官感受,一旦超过10.0,就会被抛弃仿真所需达到的效果。

你这一 做法不适用于旋转物体,可不让能 使用MovePosition代替。

AddForce法律土办法尽量太多用在Update法律土办法中,可能性从前的法律土办法在Update中会被不停地调用,与被调用一次不同,你这一 是模拟了这一 加传输传输速率的效果。

该属性是物体的平移阻力,其数据类型是float,初始值为0。Drag属性在属性查看器中的位置如图6-2所示。在现实生活中,物体会受到各方面的影响,传输传输速率会渐渐衰减,为了模拟你这一 效果,Unity设定了平移阻力属性。你这一 属性值越高,物体的传输传输速率衰减越严重。

该属性表示的是该物体的旋转否是是受到物理定律的约束。其在属性查看器中的位置如图6-7所示。默认请况下任意轴的旋转是受物理定律控制的。该属性的值是修改在每个轴上的旋转属性来实现的,实际开发中可不让能 灵活地使用。

(2)强制唤醒(WakeUp)。

该属性表示本游戏对象否是是遵循牛顿运动学物理定律,其数据类型是boolean,初始值为false。其在属性查看器中的位置如图6-5所示。可能性该属性被置为true,本物体的运动请况将不受外力、碰撞和关节的影响,而只受到动画以及附加上物体上的脚本的影响。

该属性表示当物体没办法 被指定物理材质的只是我,该物体的默认材质。其在物理管理器中的位置,如图6-13所示。默认请况下是没办法 指定值的,可能性在Unity中,每个物体的物理材质可能性会有很大的不同,有只是我指定默认材质并不会有太多的用途。

该属性表示的是项目中刚体最大的角传输传输速率值。其在物理管理器中的位置如图6-17所示,设定最大值可不让能 处理角传输传输速率数值不稳定问提图片的地处。在脚本中可不让能 用语法Rigidbody.maxAngular Velocity来更改此值。

另外,着实当该属性被置为true时物体将不受物理定律的约束,而且该物体还是会影响一点的物体,改变一点物体的运动请况。在游戏开发中此属性会被经常用到,想象一下在第一人称射击游戏中,敌人被击杀不会倒地不动,可能性你这一 敌人对象Rigidbody的Is Kinematic属性被设置为了true。

说明

下面的脚本实现了设置物体无旋转,具体代码如下:

此法律土办法在碰撞时两物体接触过程中被调用。该法律土办法同样会传递有六个 Collision类,该类中有 了碰撞点和相对传输传输速率等信息,下面的代码我希望有六个 简单的例子:

(5)刚体的旋转(rotation)

可不让能 编写代码实现物体的失重请况,具体代码如下:



(2)碰撞器相关法律土办法。

此变量表示当前的物体否是是受到重力的约束。在开发过程中,灵活地更改此变量可不让能 达到一点特殊的场景要求,比如在外太空环境下的失重请况。

该属性表示的是项目中关节和连接计算过程中的迭代次数。其在物理管理器中的位置如图6-19所示,决定了关节和连接的计算精度。求解迭代次数越高精度越高,而且次数地处问题会浪费太多的资源,不有益于项目的正常运行,一般来说此值设置为7就可不让能 适用于大多数请况。

(4)刚体的位置(position)

(5)否是是遵循运动学(Is Kinematic)

该法律土办法非要在有六个 物体都遵循物理定律的请况架构设计 生,即两者的Is kinematic属性都为false。

该属性表示的是碰撞检测模式。其在属性查看器中的位置如图6-8所示。默认请况下,碰撞检测模式是Discrete 。在没办法 碰撞检测的请况下,碰撞物体会穿过对方,产生所谓的“穿透”问提图片。为处理此类问提图片的地处,碰撞检测工作是都要做的。

该属性表示的是项目中的射线检测命中触发器,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-20所示。可能性启用,没办法 进行射线检测时命中碰撞体会返回有六个 命中消息,可能性关闭,则不返回命中消息。

不得不提的是,插值意味分析了物理模拟和渲染的不同步,进而产生物体轻微抖动的问提图片。建议在开发中,对主要角色使用插值,而一点的则禁用此功能,以达到折中效果。

该属性表示的是项目中的重力加传输传输速率,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-12所示,该属性六个数值分别指定在x、y、z方向上的重力加传输传输速率,一般重力是竖直向下的,一点非要y轴上有有六个 负值,大小默认为单位是-9.81米/(秒^2)。

Unity作为有六个 优秀的游戏开发平台,其出色的管理模式是令人称赞的。在Unity中,不仅可不让能 对单个分组进行属性设置,也可不让能 对场景全局进行设置。你这一 帕累托图讲解Unity中场景的全局物理参数是咋样设置的。

(3)反弹阈值(Bounce Threshold)。

1.碰撞的使用

与碰撞相关的内容包括碰撞器(Collision)类、碰撞检测模式选则和最小穿透禁区设置,后有六个 内容可能性在前面的内容中进行了完整性的介绍,这里不再赘述。下面重点讲解一下碰撞器类及其相关法律土办法的使用。

2.物理管理器参数

在前面的内容中,讲解了物理管理器的打开操作。接下来介绍的是物理管理器中的相关参数的含义和用法。

(6)最大角传输传输速率(Max Angular Velocity)。

此变量表示了物体的旋转请况,改变此变量时,引擎会在物理阶段开使后,将物体旋转到指定的请况。

注意

2   rigidbody.rotation = Quaternion.identity;//将物体的旋转请况设置为原始态(无旋转)

3 }

(3)冻结旋转(freezeRotation)

(4)使用重力(Use Gravity)

该属性表示的是项目中的层碰撞矩阵,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-21所示。定义层碰撞检测系统的行为。

在Unity内建物理引擎中,首很难介绍的是刚体(Rigidbody)的概念。包中有 该类组件的游戏对象,会遵循万有引力定律,在重力的作用下,使物体垂直下落。刚体组件不会影响物体地处碰撞时的反应,使物体遵循惯性定律,并在一点物体运动冲击作用下产生传输传输速率可能性形变。

(8)求解迭代次数(Solver Iteration Count)。

碰撞触发(OnCollisionEnter)

此法律土办法在碰撞地处时被系统自动调用。该法律土办法会传递有六个 Collision类,该类中有 了碰撞点和相对传输传输速率等信息。开发者可不让能 利用那此信息对物体进行碰撞处理,下面的代码我希望有六个 简单的例子:

该属性表示的是项目中的最小穿透禁区,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-18所示,该属性的具体含义是在碰撞检测器将有六个 物体分开前,可不让能 穿透几条米的距离。较高的值会意味分析较多的物体穿透,不过可不让能 减少抖动。





此变量表示物体的传输传输速率值,在Unity中单位1表示现实生活中的1米。在开发过程中,直接更改此变量的值并不会这一 明智的做法,可能性Unity中物体的运动经过非常错综复杂的计算使得物体的运动自然平滑,可能性有外加干预,会迫使物体的运动模拟失真。

(8)碰撞检测模式(Collision Detection)

说明

(4)休眠传输传输速率(Sleep Velocity)。

关于碰撞模式的选则,可选的有不连续模式(Discrete)、连续模式(Continuous)和动态连续模式(ContinuousDynamic),其中动态连续模式适用于高速运动的物体,而且耗费资源较大。连续模式仅仅可不让能 用于球体、胶囊和盒子碰撞者的刚体,而且会严重影响物体的运动表现。一点大帕累托图的物体采用不连续模式作为碰撞检测模式。

本节书摘来异步社区《Unity 4 3D开发实战详解》一书中的第6章,第6.1节,作者: 吴亚峰 , 杜化美 , 张月霞 , 索依娜 责编: 张涛,更多章节内容可不让能 访问云栖社区“异步社区”公众号查看。

在第一人称射击游戏中,通过此属性去除物理属性对旋转的控制,可不让能 使玩家完整性控制视角旋转。

说明

(9)射线检测命中触发器(Raycasts Hit Triggers)。

该属性表示的是该物体运动的插值模式。其在属性查看器中的位置如图6-6所示。在默认请况下,插值Interpolate是被禁用的,可不让能 选则Interpolate模式,在此模式下物理引擎会在物体的运动帧之间进行插值,使得运动更加自然。

该法律土办法被调用时,会强制使有六个 地处睡眠请况刚体被唤醒,其具体的语法如下:

该变量使用的具体语法代码如下所示:

该属性表示的是项目中的反弹阈值,该参数将被应用于所有刚体。其在物理管理器中的位置如图6-14所示,可能性有六个 碰撞体的相对传输传输速率低于该值,没办法 将不让反弹。该值也用于减少抖动,一点不建议设置为很低的值。

3.刚体常用法律土办法

在讲解了刚体的属性与变量后,有必要讲解一下Unity提供的相关法律土办法。

(1)刚体的传输传输速率(velocity)

(10)层碰撞矩阵(Layer Collision Matrix)。

该法律土办法被调用时,会强制有六个 刚体进入睡眠请况合适 一帧的时间。一般用在Awake法律土办法中,设置脚本开使执行时刚体睡眠。刚体进入睡眠后,物体合适 没办法 刚体地处,其具体的语法如下:

该属性表示物体的旋转阻力,其数据类型是float,初始值为0.05。其在属性查看器中的位置如图6-3所示。当有六个 物体进行旋转的只是我,其旋转的角传输传输速率也会受各方面影响衰减,为模拟你这一 问提图片,Unity设定了旋转阻力属性。此属性值越高,物体的角传输传输速率衰减越严重。

**1 function OnCollisionExit(collisionInfo : Collision) { //碰撞开使

2   print("不再和" + collisionInfo.transform.name+"地处碰撞。"); //打印**碰撞开使信息

3 }

2.睡眠的使用(1)睡眠(Sleep)。

(1)质量(Mass)

(6)插值(Interpolate)

此法律土办法被调用时,会使刚体按照参数旋转到某个方位。此法律土办法经常用于FixedUpdate法律土办法中。具体用法如下列代码所示:

你这一 做法不适用于旋转物体。可不让能 使用MoveRotation法律土办法来代替。

下面的代码实现了对物体施加竖直向上的力,具体代码如下:

层碰撞矩阵在上方的介绍中会有比较完整性的解释,此处不再赘述。

当该值被设定为false的只是我,物体将不受重力影响,但刚体的一点形态还是地处的。

此法律土办法在碰撞时停止触碰刚体可能性碰撞的只是我调用。该法律土办法同样会传递有六个 Collision类,该类中有 了碰撞点和相对传输传输速率等信息,下面的代码我希望有六个 简单的例子:

(7)最小穿透禁区(Min Penetration For Penalty)。

此法律土办法被调用时,会使刚体按照参数移动到某个位置。此法律土办法经常用于FixedUpdate法律土办法中。具体用法如下列代码所示:

Unity 4 3D开发实战详解

2.刚体变量

为了获取可能性更改物体的运动请况,Unity还预留了多个变量接口,那此接口使得运动处理变得相当简单。接下来将具体地介绍一下那此变量。

刚体作为物理引擎中的最基本组件,保证了所有物体受到重力的约束。Unity开发平台中,对刚体设置了一点属性和变量,并对应封装了多个相关法律土办法,下面进行分别介绍。

(1)碰撞器类的变量如表6-1所示,碰撞器有一点变量供碰撞处理使用,其中除了碰撞接触点(contacts)变量,一点变量不会只读的,读者请务必注意。

1.物理管理器预览

(1)打开Unity开发平台,在菜单栏中选则“Edit”选项,会弹出编辑列表,如图6-9所示。在编辑列表中,选则“Project Settings”选项,弹出全局设置列表,如图6-10所示。在全局设置列表中选则“Physics”,即可进入物理管理器。

(3)旋转阻力(Angular Drag)

(1)重力(Gravity)。

(2)移动刚体位置(MovePosition)

(2)平移阻力(Drag)

此法律土办法被调用时,可能性施加给刚体有六个 瞬时力,而且物体在力的作用下,产生有六个 初传输传输速率,接着物体在初传输传输速率的作用下开使运动。

说明

前面的内容简单介绍了刚体的属性、变量和常用法律土办法。接下来你这一 帕累托图将讲解一下物理管理器(Physics Manager)的相关内容。

(1)给刚体施加力(AddForce)

注意