Unity:Vector3 刚体 碰撞器 物理材质 碰撞检测 关节 Skinned Mesh Renderer , Cloth ,粒子系统

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模式;

  • 刚体变量
    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;
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值