Unity3D 脚本3(旋转)

这篇具有很好参考价值的文章主要介绍了Unity3D 脚本3(旋转)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、物体的旋转

给物体调转一个旋转角度。

1、Quaternion四元组(x,y,z,w)

transfrom.rotation()=... 不方便操作,官方不建议用

2、Euler Angle 欧拉角

transfrom.eulerAngles = new Vector(0,45,0);

transfrom.LocalE ulerAngles = new Vector(0,45,0);

void Start(){
    transfrom.localEulerAngles = new Vector(0,45,0);
}

这样就可以让物体旋转45度。

在Update 中修改角度持续旋转

Vector3 angles = transfrom.localEulerAngles;

anlges.y +=0.5f;

transfrom.localEulerAngles = angles;

优化,使之匀速旋转

float rotateSpeed = 30;

void Update(){
    Vector3 angle = transfrom.localEulerAngles;
    angle.y +=0.5f;
    transfrom.localEulerAngles = angle;
}

匀速旋转:

void Update(){
    float rotateSpeed = 30;
    Vector3 angle = transfrom.localEulerAngles;
    angle.y +=rotateSpeed * Time.deltaTime;
    transfrom.localEulerAngles = angle;
}

二、相对旋转

Rotate():旋转一个相对角度

transfrom.Rotate(dx,dy,dz,space)

void Update(){
    float rotateSpeed = 30;
    float speed = rotateSpeed * Time.deltaTime;
    this.transfrom.Rotate(0,speed,0,Space.Self);
}

三、自转与公转

自转:绕着自身轴旋转

公转:围绕另一个物体旋转

当父物体旋转时,带动子物体一并旋转。

例:卫星围绕地球转

viod Update(){
    float rotateSpeed = 60;
    float speed = rotateSpeed * Time.deltaTime;
    Transfrom parent = this.transfrom.parent;
    parent.Rotate(0,speed,0,Space.Self);
}

找到需要进行公转的物体的父物体,让父物体旋转。

Unity3D 脚本3(旋转)

使地球绕着地球的y轴旋转,使地球初始位置设为0(和地月系统的位置相同),而卫星绕着a1这个物体做公转,使a1旋转可以带动卫星旋转。由于地球和卫星所绕的旋转点不同,所以其角速度可以分别调节。

四、官方文档

unity.cn

-手册 manual

-Script API

Unity User Manual 2021.3 (LTS) - Unity 手册

unity 在安装的时候也有一份英文文档

地址:Uhub\2021.3.18f1c1\Editor\Data\Documentation\en文章来源地址https://www.toymoban.com/news/detail-415288.html

到了这里,关于Unity3D 脚本3(旋转)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity3d---物体加点击事件

    目录 1.给需要点击点物体加collider 2.层级面板加EventSystem 3. 相机加Physics Raycaster 4.物体单独响应点击事件 5.控制脚本实现各物体的点击事件 6.点击ui时屏蔽 物体点击事件 1.给需要点击点物体加collider   2.层级面板加EventSystem   3. 相机加Physics Raycaster 2d 3d按需添加   4.物体单独响

    2024年02月09日
    浏览(125)
  • Unity3D实现给3D物体添加文本标签

    本教程将向您展示如何通过编写脚本来实现在Unity3D中给3D物体添加文本标签的通用方法。了解如何创建文本标签预制体,并通过编写脚本将其添加到3D物体上,以提供更多信息或标识物体。

    2024年02月04日
    浏览(179)
  • Unity3D-场景中3D物体添加点击事件

    Unity3D - 场景中3D物体添加鼠标点击事件 鼠标点击3D物体触发,Unity从本质上来说有两种:一种是通过事件(event)触发,一种是通过射线(ray)判断穿过的物体触发。这两种触发的原理是不同的,不论哪种触发都必须满足触发的要求才可以,既然原理不同,触发的要求也不一样

    2024年02月08日
    浏览(87)
  • unity3d---移动、缩放、旋转

    目录 1.示意图 2.触屏移动与缩放+键盘移动、旋转与缩放+鼠标移动旋转与缩放 1.示意图   2.触屏移动与缩放+键盘移动、旋转与缩放+鼠标移动旋转与缩放

    2024年02月06日
    浏览(62)
  • 【Unity3D】缩放、平移、旋转场景

    1 前言         场景缩放、平移、旋转有两种实现方案,一种是对场景中所有物体进行同步变换,另一种方案是对相机的位置和姿态进行变换。         对于方案一,如果所有物体都在同一个根对象下(其子对象或孙子对象),那么只需要对根对象施加变换就可以实现场景变

    2023年04月22日
    浏览(57)
  • Unity3D_物体抛物线运动

    参考:Unity 贝塞尔曲线实现抛物线运动,投掷功能实现  用到了DOTween插件, 回想起之前不知道这个插件还在用协程和SmoothDamp做运动控制的自己仿佛是个哈批 路径绘制使用的LineRenderer

    2024年02月13日
    浏览(69)
  • 多层Unity3D物体模型穿透问题处理

    如图,当我们想要在同一个界面中展示两层或以上3D物体时,有时会因为第一层物体材质上的 shader 渲染深度被破坏或其它原因导致第一层的物体穿透到第二层界面上来了。 在 Scene 视图中这三个橙色球体原本是在第二层黄色背景之下的: 但是在 Game 视图中我们发现那三个橙色

    2024年02月02日
    浏览(68)
  • Unity3D物体自动躲避障碍物

            2017.4.4f1         物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。 通过发射虚拟胶囊体来检测碰撞api bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)  points参数如图所示,

    2023年04月24日
    浏览(68)
  • unity3D 鼠标滚轮实现物体的大小缩放

    鼠标滚轮响应函数是Input.GetAxis(\\\"Mouse ScrollWheel\\\"),函数返回值类型是float,向前滚是返回正数,向后滚是返回负数,且鼠标滚轮滑动单次函数返回值为0.1 利用返回值修改模型transform.localscale,实现模型缩放 鼠标滚轮一直向后滚,会看见模型逐渐变小,当变到很小到消失的时候,

    2024年02月08日
    浏览(81)
  • Unity3d中关于物体穿透模型和物体移动的一些问题

    第一:可能是没有设置刚体和碰撞体; 第二种:一般是由于被穿透物体太过于薄弱,根本没有检测到碰撞的问题,这种情况可以把物体加厚。但偶尔是不能解决问题的,因为这种情况下是由于物体移动的速度过快导致的。 第三;关于物体自己动的问题,那是物体移动脚本和物

    2024年02月11日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包