我刚开始使用Unity / C#,但之前我已经完成了一些编程。我创造了一个非常基本的原型;一个具有相同深度的平台的场景,而我的“玩家”是一个球体对象。它在运行时通过自定义播放器控制器脚本进行实例化,我实现了重力,加速度,“滚动效果”(使用eulerAngles在z轴上旋转球体)和使用Rays / RayCast在平台上进行碰撞检测玩家物理对象附加到玩家。
在球体上使用RigidBody,当球员向右/向左移动并让Unity处理它的滚动/移动时,向球施加扭矩会更好吗?有没有理由不使用RigidBody? (或者我只是浪费了一个晚上?:))
答案 0 :(得分:1)
实际上,Unity3D的优势在于IDE允许您轻松实现所有这些因素,而不仅仅是'在场景中放置一个RigidBody和一个标准脚本。 Unity3D负责重力和加速等所有事情。你最好使用内置的scrips和元素,并改变你想要看到不同的因素。
即使如此,您手动编程也很好。它为您提供了一个很好的3D编程实践。但Unity3D已经照顾好了,所以它可能是一个浪费的夜晚,我害怕。
另外,当你有一个带有玩家移动脚本和刚体的对象时,脚本中的所有公共变量都可以在编辑器中看到。这意味着您可以轻松更改重力或速度等内容。
我为实现您的目标所做的是添加您描述的所有对象,将PlayerMovement脚本附加到您的球体,将RigidBody附加到所有对象,将飞机设置到固定位置(防止它们在重力作用下掉落,或者当你将重力设置为0时,防止它们在你的玩家与它们发生碰撞时飞走,从而给予它们强制推力),并编辑你所做的事情。喜欢在编辑器或脚本本身看到不同的东西。
作为滚动物理的补充(我可能最初理解错误的问题),你仍然会更好地添加一个Rigidbody(滚动完成并实现所以看起来很自然),然后给对象使用AddForce在某个方向上的力量。
答案 1 :(得分:0)
如果您正在使用平台和滚球制作游戏,我建议您在Unity资源商店看看“滚球”。
您可以在此处找到创建者网站http://www.lemodev.com/products/roll-the-ball.php的链接,您可以在其中找到下载链接
该产品包含控球游戏所需的所有内容,例如:
玩家控制, 声音经理, 硬币/点经理, 跳跃助推器, 速度助推器, 传送点, 音乐, 3D交互菜单, 纹理 字体, 所有这些都可以很容易地改变以适合你的游戏。
控制:你用鼠标控制相机并用WSAD或者移动球 箭头键。
球的运动受物理控制。
要获胜,收集所有硬币并到达门口。 包装中有6个预制水平。