骰子旋转

发布时间 2023-05-20 13:36:50作者: 柳心碎月
1、设置TweenRotation组件的动画曲线
public class DiceMa : MonoBehaviour
{
public TweenRotation rotate;
 
void Start ()
{
rotate.SetOnFinished(RollOnFinish); //设置骰子完成事件
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.K))
{
int step = (int)Random.Range(1, 7);
Debug.LogError("step == " + step);
OnRotateAnim(step);
}
}
private void OnRotateAnim(int point)
{
rotate.from = transform.eulerAngles;
Vector3 addrotate = new Vector3(3600f, 360f, 360f);
switch (point)
{
case 1:
Vector3 one = new Vector3(0, 180, Random.Range(0f, 180f));
rotate.to = one + addrotate;
break;
case 2:
Vector3 two = new Vector3(Random.Range(0f, 90f), 90f, 90f);
rotate.to = two + addrotate;
break;
case 3:
Vector3 three = new Vector3(Random.Range(0f, 90f), -90f, 0f);
rotate.to = three + addrotate;
break;
case 4:
Vector3 four = new Vector3(Random.Range(0f, 90f), 90f, 0f);
rotate.to = four + addrotate;
break;
case 5:
Vector3 five = new Vector3(Random.Range(0f, 90f), 90f, -90f);
rotate.to = five + addrotate;
break;
case 6:
Vector3 six = new Vector3(0f, 0f, Random.Range(0f, 180f));
rotate.to = six + addrotate;
break;
default:
break;
}
rotate.ResetToBeginning();
rotate.PlayForward();
}
// 骰子动画完成
void RollOnFinish()
{
Debug.LogError("2222222222222 ");
}
}