Unity3D——打飞碟游戏(2)

本文介绍了如何在Unity3D中利用刚体组件实现打飞碟游戏。通过向刚体施加力,让游戏对象模拟真实世界中的运动,而不是通过手动设置位置。讨论了刚体的变量、加力方法以及旋转方式,并详细讲解了游戏规则、飞碟的运动逻辑以及判断飞碟“落地”的方法。同时,提到了制作天空盒的过程及在游戏中遇到的挑战和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次的打飞碟游戏是利用Transform来实现飞碟的位移,以此模仿物体运动的轨迹。事实上,如果游戏对象是一个刚体,就可以按照现实世界中物体运动那样,给它一个力,然后让它“自由发挥”,不需要我们在脚本里Update每一帧手动写对象的位置。

关于刚体的学习

游戏对象添加Rigidbody组件后即具备物理属性,也就是说“成为了”刚体。

刚体变量

类型 变量 备注
Vector3 velocity 速度向量
Vector3 angularVelocity 角速度向量
float drag 阻力
float angularDrag 角阻力
float mass 物体的质量
bool useGravity 是否受重力影响
bool isKnematic 是否开启空气动力学

向刚体施加力

给具有刚体的gameobject施加力,常用的方法是void Rigidbody.AddForce();
具体有四个重载:

  • void Rigidbody.AddForce(vector3 Force);
  • void Rigidbody.AddForce(Vector3 Force,ForceMode mode);
  • void Rigidbody.AddForce(float x,float y,float z);
  • void Rigidbody.AddForce(float x,float y,float z,ForceMode mode)

其中,ForceMode有四种形式

  • ForceMode.Force:给物体添加一个持续的力并使用其质量
  • ForceMode.Acceleration:给物体添加一个持续的加速度,但是忽略其质量(采用默认质量1,忽略设置的质量)
  • ForceMode.Impulse:给物体添加一个瞬间的力并使用其质量
  • ForceMode.VelocityChange:给物体添加一个瞬间的加速度,但是忽略其质量

还可以在物体表面施加力:利用AddForceAtPosi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值