【问题标题】:Unity3d Create dice roll with predetermined resultUnity3d创建具有预定结果的骰子
【发布时间】:2017-02-05 19:08:36
【问题描述】:
我有一个预制件,它是一个骰子(骰子)。由于我的游戏是多人游戏,因此我会在玩家实际掷骰之前生成掷骰结果。然后我将该值发送到游戏中。我想采用该值并创建一个掷骰子,结果是预定值。解决此问题的最佳方法是什么?我想过把它作为一个动画来做(每个结果 1 个),但我不知道从哪里开始。我一直在寻找有关创建骰子动画的教程,但找不到任何东西。或者,这可以在代码中完成吗?如果是这样,任何关于方向的指针都会很棒。
谢谢
【问题讨论】:
标签:
c#
unity3d
unity5
unityscript
【解决方案1】:
我做过类似的事情,但它很棘手而且有点复杂。以下是我用来完成此操作的步骤。
1.首先,将骰子放在你想要的位置,让你想要的面朝上(+y轴) .
2.将它向后移动到您要掷骰子的位置。
在移动它时,为其添加一点旋转以使其看起来更逼真。
3。现在,在移动它的同时,编写另一个脚本,在List 中记录/存储骰子的位置/旋转+时间差。位置/旋转和时差可以放在一个简单的struct中,然后保存在一个List中。
4.最后,当玩家想要掷骰子时,只需编写一个播放函数,通过从List 分配位置/旋转并切换到下一个索引基于List中的时差。
提示:
A。在游戏加载时执行此操作,并针对骰子的每一面执行此操作,并将List 存储在一个数组中。然后,您可以使用随机数选择骰子面并播放存储的变换。
B。在执行#1和#2时,您可以移动禁用MeshRenderer,这样玩家就看不到发生了什么.
C。使用RigidBody 执行此操作,以便在将骰子扔到表面时看起来更逼真。 RigidBody 会变得复杂,但可以做到。
D。您可以通过从 # 的位置/旋转列表创建动画来替换 #3 和 #4 动画1 和 #2 在运行时。