Vector3
-
Vector常量 zero,one,forward,right,up
-
Lerp两个向量之间的线性插值(from + ( to - from ) * t)
this.cube.transform.position = Vector3.Lerp(Vector3.zero, Vector3.right * 10, Time.time);
-
Slerp两个向量之间的球形插值
this.cube.transform.position = Vector3.Slerp(Vector3.right * -10, Vector3.right * 10, Time.time * 0.1f);
-
两个向量的距离
float len = Vector3.Distance(Vector3.right, Vector3.right * -1);
-
向量角度
float degree = Vector3.Angle(Vector3.right, Vector3.right * -1);
刚体
- Mass(质量): [0, 10],默认为1
Drag(阻力): 物体移动时的阻力
AngularDrag(旋转阻力): 旋转时候的衰减
Use Gravity(使用重力): 是否受重力影响
Is Kinematic(是否受牛顿运动学影响): false,正常的物理计算,true运动只会在代码和动画里面受影响,普通的碰撞等都不会改变它的运动状态
Interpotate (物体运动插值模式) :None(最近计算值) Interpolate(内插值) extrapolate(外插值)
Discrete(离散模式 资源少,静止,低速) Continuous(连续检测,高速体积小)
被使用了Continusous检测撞击的对象,使用Continus Dynamic模式;
- Mass(质量): [0, 10],默认为1
- 刚体变量
1: 角速度(angularVelocity);
2: 线性速度(velocity);
3: 重心(center of mass);
4: 碰撞检测开关(detectCollisions): 默认为true, 关闭检测碰撞 false;
5: intertiaTensor惯性张量 intertiaTensorRotation 惯性张量旋转;
6: 最大角速度(maxAngularVelocity);
7: 最大穿透速度(maxDepenetrationVelocity);
8: position:刚体的世界坐标,与图像的transform.position尽量保持一致;
9: rotation: 刚体在世界坐标的旋转;
10: useConeFiction是否使用锥形摩擦,一般false; true一般不使用;
- 刚体方法
1: AddForce 给刚体一个力,方向是世界坐标
2:AddForceAtPosition postion是世界体系坐标,确保坐标在物体内;
3: AddRelativeForce力方向 相对于物体坐标
4: MovePosition/MoveRotation 调整刚体到指定的位置/旋转
5: AddTorque/AddRelativeToque: 施加一个力矩(相对力矩);
6: 设置密度SetDensticy,体积是碰撞器体积;
7: Sleep: 强制刚体休眠; Wakeup 唤醒刚体;
8: SweepTest/SweepTestAll 扫描检测,返回射线碰撞到的刚体;
- 碰撞器
1:Box Collider 盒子碰撞器;
2: Sphere Collider 球体碰撞器
3: Capsule Collider 胶囊碰撞器;
4: Mesh Collider 网格碰撞器;
5: Terrian Collider 地形碰撞器;
6: Wheel Collider车轮碰撞器;
- 物理材质
Dynamic Friction 滑动摩擦
Static Firction 静态摩擦
Bounciness 表面弹性;
Friction Combine 摩擦力的混合方式
Bounciness Combine 弹力的混合方式;
- 碰撞检测
1: OnCollisionEnter: 开始碰撞
2: OnCollisionExit: 碰撞离开
3: OnCollisionStay 碰撞持续
4: OnTriggerEnter: 开始碰撞到触发器
5: OnTriggerExit: 与触发器结束碰撞
6: OnTriggerStay; 与触发器碰撞持续
- 关节:连接刚体与刚体的对应的物理模拟
关节类型:
铰链关节 Hinge Joint
1: 将两个刚体束缚在一起,在两者之间产生铰链效果,例如门
2: 铰链关节属性
connect Body:目标连接的刚体;
Anchor 本体锚点,连接目标旋转时围绕的中心点;
Connect Anchor 连接目标的锚点,本体旋转时围绕的中心点;
Axis 锚点和目标锚点的方向,指定了本体和连接目标的旋转方向;
Auto Configure Connected Anchor: 勾选时,仅给出锚点的坐标,系统将自动计算出目标锚点坐标;
Using Spring: 是否使用弹簧;
Sprint 弹力;
Damper: 阻尼,物体移动受到阻碍的大小,越大物体越慢;
Target Postion: 目标位置,弹簧旋转的目标角度;
Use Moto 使用电机,规定关节肿是否使用电机;
TargetVelocity: 目标速率,对象试图达到的速度,会以此速度与目标速度进行加速和减速;
Force 此属性是达到目标速率的力;
Free Spine 规定了收控制对象的旋转是否会破坏,若启用,马达将永远不会破坏旋转,只会加速;
Use Limits规定了关节在旋转的时候是否受限;
Min 规定了刚体旋转的达到的最小角度
Max 规定了刚体旋转的达到的最大角度
Min Bonus 规定了刚体旋转的达到的最小弹跳值
Max Bonus 规定了刚体旋转的达到的最小弹跳值
Break Force 给出一个力的限值,当关节受到的力超过这个,关节损坏;
Break Torque 给出一个力矩的极限,当关节受到力矩超过此值时关节损坏;
-
-
-
固定关节 Fixed Joint
1: 将两个刚体束缚在一起, 相对位置保持不变,永远不会变化,就像父子关系
2: 固定关节属性
connect Body:目标连接的刚体;
Break Force 给出一个力的限值,当关节受到的力超过这个,关节损坏;
Break Torque 给出一个力矩的极限,当关节受到力矩超过此值时关节损坏;
Enable collision 允许碰撞检测;
Enable Preprocess 允许进行预处理;
-
-
-
弹簧关节 Spring Joint
1: 将两个刚体束缚在一起, 相对位置保持不变,永远不会变化;
2: 弹簧关节属性
connect Body:目标连接的刚体;
Anchor 本体锚点,连接目标旋转时围绕的中心点;
Connect Anchor 连接目标的锚点,本体选择时围绕的中心点;
Axis 锚点和目标锚点的方向,指定了本体和连接目标的旋转方向;
Auto Configure Connected Anchor: 勾选时,仅给出锚点的坐标,系统将自动计算出目标锚点坐标;
Sprint 弹力;
Damper: 阻尼,物体移动受到阻碍的大小,越大物体越慢;
Min distance 弹簧两端最小距离
Max distance 弹簧两端最大距离
Break Force 给出一个力的限值,当关节受到的力超过这个,关节损坏;
Break Torque 给出一个力矩的极限,当关节受到力矩超过此值时关节损坏;
Enable collision 允许碰撞检测;
Enable Preprocess 允许进行预处理;
-
-
-
角色关节 Character Joint
1: 应用广泛的基本关节,角色关节配合Ragdoll使用,是一个扩展的球窝关节,实现布娃娃的效果
2: 角色关节属性
connect Body:目标连接的刚体;
Anchor 本体锚点,连接目标旋转时围绕的中心点;
Connect Anchor 关节的扭轴, 以橙色的gizmo圆锥表示;
Axis 锚点和目标锚点的方向,指定了本体和连接目标的旋转方向;
Auto Configure Connected Anchor: 勾选时,仅给出锚点的坐标,系统将自动计算出目标锚点坐标;
Twist Limit Spring: 扭曲弹簧限制,为关键制定弹簧限制;
Low/Hight Twlist Limit 扭轴下/上限,关节扭度不可超过此范围;
Swing 1/2 Limit 摆轴旋转限制1/2, 用绿/橙轴表示,设置为30 [-30, 30];
Limit 限制角度
Bounciness 对应限制中的反弹系数
Contact Distance: 对应限制中的接触距离
Enable Projection: 进行违反物理定律的关节投射;
Projection Distance/Angle:关节投射的距离/角度
Sprint 弹力;
Damper: 阻尼,物体移动受到阻碍的大小,越大物体越慢;
Target Postion: 目标位置,弹簧旋转的目标角度;
Use Moto 使用电机,规定关节肿是否使用电机;
TargetVelocity: 目标速率,对象试图达到的速度,会以此速度与目标速度进行加速和减速;
Force 此属性是达到目标速率的力;
Free Spine 规定了收控制对象的旋转是否会破坏,若启用,马达将永远不会破坏旋转,只会加速;
Use Limits规定了关节在旋转的时候是否受限;
Break Force 给出一个力的限值,当关节受到的力超过这个,关节损坏;
Break Torque 给出一个力矩的极限,当关节受到力矩超过此值时关节损坏;
-
-
-
可配置关节 Configurable Joint
www.ceeger.com/Components/class-ConfigurableJoint.html
- 蒙皮网格可以模拟出非常柔软的网格体,用于布料和角色的蒙皮功能;
蒙皮网格 + 布料组件能模拟出布料效果;
蒙皮网格 Skinned Mesh Renderer
一种网格渲染器
1: 蒙皮网格的重要属性:
Cast Shadows: 投影方式 包括: off, 单向(on), 双向(Two sided), 仅阴影;
Receive Shandows: 是否接受其他的对象对他进行投影;
Materias 对该对象制定材质;
UseLight Probes: 是否使用灯光探头;
Reflection Probes: 是否使用反射探头;
Anchor Override: 网格锚点,网格对象跟随锚点移动并进行物理模拟;
Lightmap Parameters: 光照烘培参数,指定使用光照的配置文件;
Quality: 影响任意一个顶点的骨头数量;
Update When OffScreen: 屏幕之外的部分是否进行物理模拟;
Mesh: 该渲染器制定的网格对象;
Root Bonus: 根骨头;
Bounds(Center)包围和中心坐标,不可修改,基于网格坐标系;
Bounds(Extends): 包围盒三个方向的长度,不可修改;
布料 Cloth组件
1: 布料的重要属性:
Strectching Stiffiness: 布料的韧度,(0, 1],表示可拉升的程度;
Bending Stiffiness: 布料的硬度(0, 1],表示布料可弯曲的程度;
Use Tetchers: 是否对布料进行约束;
Use Gravity: 是否使用重力;
Damping:布料运动的阻尼系数;
External Acceleration:外部加速度,给布料一个常力,模拟微风飘起的旗帜;
Random Acceleration: 随机加速度,给布料一个变力,模拟强风鼓动的旗帜;
World Velocity/Acceleration Scale: 世界坐标系下速度加速度缩放比例;
Friction: 布料相对与角色的摩擦力;
Collision Mass scale: 粒子碰撞时质量的增加;
Using continuous Collision:是否连续碰撞;
Use Virtual Particles: 为每一个三角形附加一个虚拟粒子,提高碰撞的稳定性;
Solver Frequency: 计算频率,每秒计算的次数;
Sleep Threshold: 休眠阈值;
Capsule Collders: 可与布料产生碰撞的胶囊碰撞器个数;
Sphere Colliders: 可与布料产生碰撞的球行碰撞器个数;
first/Secode: 两个球连接组成的胶囊碰撞器;
粒子系统 — Particle System组件
- 特性
1: 粒子系统主体;
2: 喷射(Emission);
3: 形态(shape);
4: 生命周期内的速度偏移(velocity over lifetime);
5: 生命周期内的限制速度(limit velocity over lifetime);
6: 生命周期内的受力偏移(Force velocity over lifetime);
7: 生命周期内的颜色(Color velocity over lifetime);
8:颜色随速度的变化(Color by Speed);
9: 生命周期内的大小(Size over lifetime);
10: 大小随速度变化(Size by speed);
11: 生命周期内的转速(Rotation over lifetime);
12: 角速度随速度变化(Rotation by Speed);
13: 外部作用力(External Forces)
14: 碰撞(Collision)
15: 子发射系统(Sub Eimitters);
16: 纹理层动画(Texture Sheet Animation);
17: 渲染器(Render); - 主体参数
1: Duration: 粒子喷射周期;
2: Looping: 是否循环喷射;
3: Prewarm: 预热(Loop状态下预产生下一周期的粒子);
4: StartDelay: 粒子喷射延迟,Prewarm无法延迟;
5: Start Lifetime: 粒子生命周期;
6: Start speed: 粒子喷射速度;
7: Start Rotation: 粒子大小;
8: Start Color: 粒子颜色;
9: Gravity Modifier: 相对与重力加速的的重力密度(缩放比);
10: Inherit Velocity: 新生粒子的继承速度;
11: Simulation Space: 粒子系统的模拟空间;
12: Play On Awake: 是否在加载的时候播放;
13: MaxParticles: 一周内发射的例子数,多与此数目停止发射; - 方法 (ParticleSystem)
1: Play();
2: Stop();
3: Pause();
4: isPaused;
5: isStopped;