- 最后登录
- 2022-10-8
- 注册时间
- 2010-12-6
- 阅读权限
- 100
- 积分
- 14150
- 纳金币
- 76544
- 精华
- 23
|
Part3 赛车的背后
什么是最重要的事情?
Start() - the Setup 5
SetupWheelColliders() 5
SetupWheelFrictionCurve() 6
SetupWheel() 6
SetupCenterOfMass() 7
SetupGears() 8
SetUpskidmarks() 8
Update() 9
GetInput() 9
CheckHandbrake() 10
StopHandbraking() 10
Check_If_Car_Is_Flipped() 11
FlipCar() 11
UpdateWheelGraphics() 11
UpdateGear() 13
FixedUpdate() - All your physics are belong
to me 13
UpdateDrag() 13
UpdateFriction() 15
CalculateEnginePower() 16
CalculateState() 17
ApplyThrottle() 18
ApplySteering() 20
EvaluateSpeedToTurn() 20
Real Physics Model 24
The included Prefabs 24
The included scripts 25
Part3 赛车的背后web3D纳金网www.narkii.com
教程已经介绍了如何依靠3D模型,脚本和内置成分去组装一个可工作的赛车,也看到了外部变量,以及如何通过它们去调整赛车的行为。
现在,是时候去深入了解一下汽车引擎里面的精密设备了--赛车脚本。
在Car.js上双击即可在代码编辑中打开该脚本。
这个脚本最初看起来有些吓人,超过500行的代码和注释,具有一堆的变量和函数。不过不用担心,这个脚本是结构化的,可以分解成小的函数,并具有见名知意的名称。因此,在注解的情况下代码很容易被理解,就如同在讲故事一样。
我们建议读者找到最佳的入口点,然后依次序阅读。一般情况下,入口点会是Start(), Update() 和 FixedUpdate() 函数。Web3D纳金网www.narkii.com
每一个"main"函数都将调用其他函数,所以,我们先查看Start()函数,可以看到第一个被调用的函数为SetupWheelColliders(),在代码中锁定该函数,分析它的作用,然后返回Start(),进入下一个函数SetupCenterOfMass()。通过分析代码,你可以大致了解代码真实作用,代码将使赛车工作起来。
下面我们将查看全部函数。我们不会解释每一行语句,但是我们将提供入口点,并介绍每个函数的要点,but we are providing an entry point and going through everything essential that takes place from the setup to what happens each frame所以言归正传,让我们开始吧。
什么是最重要的事情?
在Unity中工作,很多方面是很简单的,比如灵活的编辑器,拖曳式工作流程和所有内置的成分。设置赛车有一半的工作是可以很简单的完成的,Unity会优化引入的模型,我们只要简单的点几下就可以增加例如碰撞、渲染和物理学等成分。Web3D纳金网www.narkii.com
在我们的脚本中,大多数是控制以上这几个成分。用户将看到这些成分很多的计算,以决定赛车的行为。这是游戏中不可避免的部分:当你想做得复杂点,就不得不在过程中设置多一些逻辑判断。通过计算,将适当的数值反馈给成分。
如果你感到被代码所淹没了,不知道从哪开始,有一种方法可以采用,就是把注意力集中在以下项目上,并考虑还会有其他的什么内容会影响和支持这些项目:
Rigidbody 刚体
Wheel Colliders 车轮碰撞体
计算和做计算的顺序
考虑以下内容:
通过给我们的赛车模型添加Rigidbody刚体成分,这样就可以以物理方式去控制赛车。通过计算力量我们可以控制赛车向前,以及赛车慢慢停下来。
通过增加Wheel Colliders 车轮碰撞,我们可以控制赛车在哪里接触路面?
Start()设置Web3D纳金网www.narkii.com
此处我们将对赛车做必要的初始化工作。Start()函数只执行一次。Web3D纳金网www.narkii.com |
|