最近做了太多关于自转的事情了,这下刚好弄个脚本,把情况都给总结一下,自己还可以自己选择自己想要的旋转轴,美滋滋,嘻嘻,对于一些比较刁钻的角度的花就需要自己在脚本上自己输入一下啦
废话不多说,上代码·······
代码清晰易懂,没有写太多注释
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum TypeAxis
{
x, y, z, outer, Middle,Inside,Custom
}
///
/// 根据哪个轴自转
///
public class RotateSelf : MonoBehaviour {
private Quaternion RotatePos;
public float SpeedStart;
public float SpeedBack;
public TypeAxis TA = TypeAxis.x;
public int X, Y, Z;
public bool SelfRotate = true;
void Awake()
{
RotatePos = transform.localRotation;
}
// Update is called once per frame
void FixedUpdate () {if (SelfRotate == true){switch (TA){case TypeAxis.x:transform.Rotate(new Vector3(1, 0, 0) * Time.deltaTime * SpeedStart);break;case TypeAxis.y:transform.Rotate(new Vector3(0, 1, 0) * Time.deltaTime * SpeedStart);break;case TypeAxis.z:transform.Rotate(new Vector3(0, 0, 1) * Time.deltaTime * SpeedStart);break;case TypeAxis.outer:transform.Rotate(new Vector3(-1, -1, -1) * Time.deltaTime * SpeedStart);break;case TypeAxis.Middle:transform.Rotate(new Vector3(-1, -1, 1) * Time.deltaTime * SpeedStart);break;case TypeAxis.Inside:transform.Rotate(new Vector3(1, 1, 1) * Time.deltaTime * SpeedStart);break;case TypeAxis.Custom:transform.Rotate(new Vector3(X, Y, Z) * Time.deltaTime * SpeedStart);break;default:break;}}else{Quaternion NewAngle = transform.localRotation ;Quaternion p = Quaternion.Lerp(NewAngle, RotatePos,Time.deltaTime * SpeedBack);transform.localRotation = p;}}
}
本文发布于:2024-02-02 09:43:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170683820542961.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |