Unity3d 创建具有预定结果的骰子

Unity3d Create dice roll with predetermined result

我有一个预制件,它是一个骰子(dice)。由于我的游戏是多人游戏,因此我会在玩家实际掷骰子之前生成掷骰子的结果。然后我将该值发送给游戏。我想采用该值并创建一个骰子,结果是预定值。最好的方法是什么?我考虑过将此作为动画(每个结果 1 个)但我不知道从哪里开始。我一直在寻找有关创建骰子动画的教程,但找不到任何东西。或者,这可以用代码完成吗?如果是这样,任何关于方向的指示都会很棒。

谢谢

我做过类似的事情,但它很棘手而且有点复杂。这是我用来完成此操作的步骤。

1.首先,将骰子放在你想要的位置,你想要的结果面朝上(+y-axis).

2.将它向后移动到你想掷骰子的位置。 在移动它的同时,为其添加一点旋转,使其看起来更逼真。

3.现在,在移动它的同时,编写另一个脚本,records/stores position/rotation + [=10= 中骰子的时间差]. position/rotation和时间差可以简单的放一个struct然后保存在List.

4。最后,当玩家想要掷骰子时,只需编写一个播放函数,通过分配 positions/rotation 从 List 开始,根据 List.

的时间差切换到下一个索引

提示:

A。在游戏加载时执行此操作,并为骰子的 每个 面执行此操作并存储 List在一个数组中。然后,您可以使用随机数 select 骰子面并播放存储的变换。

B。当执行#1#2时,您可以移动禁用MeshRenderer 这样玩家就看不到发生了什么。

C。用 RigidBody 做这个,这样看起来特别逼真,当把骰子扔在一个表面上时。 RigidBody 变得复杂,但可以完成。

D。可以通过创建动画来替换#3#4来自 #1#2 的 position/rotation 列表 run-time.