直接将代码挂载到需要旋转的物体上,按上下左右键旋转即可;
using UnityEngine;
using System.Collections;
public class SpinObject : MonoBehaviour
{
public GameObject go;
public void Start()
{
go = new GameObject();//创建父物体
go.transform.position= transform.position;//将父物体位置与被旋转物体位置
transform.SetParent(go.transform);//将需要旋转的物体设置为其子物体
}
//旋转则直接对父物体其进行旋转操作
void Update()
{
if (Input.GetKey(KeyCode.UpArrow))
{
//向上转
go.transform.Rotate(Vector3.right * Time.deltaTime * 30);
RotateRefresh();//刷新旋转起始位置
}
if (Input.GetKey(KeyCode.DownArrow)) {
//向下转
go.transform.Rotate(Vector3.left * Time.deltaTime * 30);
RotateRefresh();//刷新旋转起始位置
}
if (Input.GetKey(KeyCode.LeftArrow))
{
//向左转
go.transform.Rotate(Vector3.up * Time.deltaTime * 30);
RotateRefresh();//刷新旋转起始位置
}
if (Input.GetKey(KeyCode.RightArrow)){
//向右转
go.transform.Rotate(Vector3.down * Time.deltaTime * 30);
RotateRefresh();//刷新旋转起始位置
}
}
//刷新旋转起始位置方法(将起始位置重新设置)
void RotateRefresh() {
transform.SetParent(go.transform.parent);//将需要旋转的物体拿出父物体
go.transform.eulerAngles = Vector3.zero;//将父物体旋转值归零
transform.SetParent(go.transform);//再将需要旋转的物体放入父物体
}
}