U3D钟UGUI的抽奖转盘的简单做法(允许控制)

网上有很多抽奖转盘的帖子,基本实现方法就不赘述了 。

在此说一下一个简便的 控制转盘落点的办法,即通过 计算 初速度 (随机一个加速度和多旋转的圈数)来控制这个转盘。


首先,转盘就使用一个image图片给出。

通过skinTrans.FindChild ()方法找到此转盘。

后给出一个控制转盘结果的算法,如下:

可以通过数学知识知道,当转盘停下时,有:

路程 = 初速度*时间+加速度*时间*时间/2 (即物理公式x = vt+½at²)

0 = 速度 - 加速度*时间  (即物理公式  0 =v -at)

可得结果:t =根号(2x/a)    v =根号(2ax)     即 速度 =根号(2*加速度*路程)

由此我们可以传入 待停区域角度(即路程x) ,加速度(即a) 来获得 最终需要的初速度。


特别的,我们在重写updata() 时, 要注意两个操控物体的式子:

XXX.transform.Rotate (0, 0,Convert.ToSingle(Time.deltaTime * Speed)); //物体旋转

Speed = Speed - Delta*Time.deltaTime ; //物体的减速度 

你可能感兴趣的:(unity3D,抽奖转盘)