Unity中按自定义轴进行自转——Rotate浅谈

阅读: 评论:0

Unity中按自定义轴进行自转——Rotate浅谈

Unity中按自定义轴进行自转——Rotate浅谈

Rotate浅谈

最近做了太多关于自转的事情了,这下刚好弄个脚本,把情况都给总结一下,自己还可以自己选择自己想要的旋转轴,美滋滋,嘻嘻,对于一些比较刁钻的角度的花就需要自己在脚本上自己输入一下啦
废话不多说,上代码·······
代码清晰易懂,没有写太多注释

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小时内删除。

标签:自定义   浅谈   Unity   Rotate
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23