网上有很多抽奖转盘的帖子,基本实现方法就不赘述了 。
在此说一下一个简便的 控制转盘落点的办法,即通过 计算 初速度 (随机一个加速度和多旋转的圈数)来控制这个转盘。
首先,转盘就使用一个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 ; //物体的减速度