0

我刚开始使用 Unity/C#,但我之前做过一些编程。我创建了一个非常基本的原型;具有相同深度的一些平台的场景,我的“玩家”是一个球体对象。它在运行时由自定义播放器控制器脚本实例化,我已经实现了重力、加速度、“滚动效果”(使用 eulerAngles 在 z 轴上旋转球体)以及使用 Rays/RayCast 与平台的碰撞检测,在附加到玩家的玩家物理对象。

如果只在球体上使用刚体,当玩家向右/向左移动时向球施加扭矩并让 Unity 处理它的滚动/移动,我会更好吗?有什么理由不使用 RigidBody 吗?(或者我只是浪费了一个晚上?:))

4

2 回答 2

1

实际上,Unity3D 的优势在于 IDE 允许您通过“仅”在场景中放置 RigidBody 和标准脚本来轻松实现所有这些因素。Unity3D 负责处理所有这些事情,例如重力和加速度。您最好使用内置的脚本和元素并更改您希望看到不同的因素。

即便如此,您手动编写所有程序也很好。它为您提供了一个很好的 3D 编程练习。但是 Unity3D 已经解决了这个问题,所以我担心这可能是一个浪费的晚上。

另外,当您有一个带有玩家移动脚本和刚体的对象时,脚本中的所有公共变量在编辑器中都是可见的。这意味着您可以轻松更改重力或速度等内容。

为了实现您所做的,我所做的是添加您描述的所有对象,将 PlayerMovement 脚本附加到您的球体,将 RigidBody 附加到所有对象,将平面设置到固定位置(以防止它们因重力而掉落,或者,当您将重力设置为 0 时,以防止他们在您的玩家与他们发生碰撞时飞走,从而给他们一个力推),并在编辑器或脚本本身中编辑您希望看到的不同内容。

作为滚动物理的补充(我最初可能把这个问题理解错了),你最好还是添加一个刚体(滚动已经完成并实现,所以看起来很自然),并在某个方向上给物体一个力,通过使用AddForce

于 2013-08-12T11:51:32.927 回答
0

如果您正在使用平台和滚动球制作游戏,我建议您在 Unity Asset Store 中查看“Roll The Ball”。

在这里,您有一个指向创建者网站http://www.lemodev.com/products/roll-the-ball.php的链接,您可以在其中找到下载链接

该产品包括控球游戏所需的所有东西,例如:

播放器控制、声音管理器、硬币/点管理器、跳跃助推器、速度助推器、传送器、音乐、3D 交互菜单、纹理字体,所有这些都可以轻松更改以适合您的游戏。

控制:您可以使用鼠标控制相机,并使用 WSAD 或箭头键移动球。

球的运动由物理控制。

要获胜,请收集所有硬币并到达门口。包中有 6 个预制级别。

于 2013-08-13T00:07:05.863 回答