您的位置:首页 > 移动开发 > Unity3D

unity3d实现菜单旋转效果

2013-03-24 23:42 846 查看
模仿jj游戏大厅的菜单旋转效果,写的有点复杂,如果有什么更好的实现方法,欢迎指出。

附工程下载。不懂得怎么加附件,只能转到圣典上下载
工程下载

using UnityEngine;
using System.Collections;

public class SpinTest : MonoBehaviour
{
private Vector3 currentMousePos;
private int moveDistance;
private Vector3 spinMenuRotation;
private int menuSpinSpreed;
private SpinDirection direction = SpinDirection.None;
public GameObject spinMenu;

enum SpinDirection
{
None,
Left,
Right,
}
// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
currentMousePos = Input.mousePosition;
}

if (Input.GetMouseButton(0))
{
if ((int)(currentMousePos.x - Input.mousePosition.x) != 0)
{
moveDistance = (int)(currentMousePos.x - Input.mousePosition.x);
if (moveDistance < 0)
{
direction = SpinDirection.Left;
}
else
{
direction = SpinDirection.Right;
}

currentMousePos = Input.mousePosition;
}
else
{
moveDistance = 0;
}
}

menuSpinSpreed = moveDistance;

if (moveDistance != 0)
{
spinMenu.transform.eulerAngles = spinMenu.transform.eulerAngles + Vector3.up * moveDistance * Time.deltaTime;
}

if (Input.GetMouseButtonUp(0))
{
currentMousePos = Vector3.zero;
moveDistance = 0;
}

if (direction == SpinDirection.Left)
{
spinMenuRotation = spinMenu.transform.eulerAngles;
spinMenuRotation.y -= 1.0f;
spinMenu.transform.eulerAngles = spinMenuRotation;
}
else if (direction == SpinDirection.Right)
{
spinMenuRotation = spinMenu.transform.eulerAngles;
spinMenuRotation.y += 1.0f;
spinMenu.transform.eulerAngles = spinMenuRotation;
}

if ((int)(spinMenuRotation.y) % 60 == 0)
{
direction = SpinDirection.None;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: