Unity学习日志-API

embedded/2024/10/22 6:09:38/

Untiy基本API

    • 角度
    • 旋转
      • 自转
      • 相对于某一个轴 转多少度
      • 相对于某一个点转
      • 练习

角度

this.transform.rotation(四元数)

界面上的xyz(相对于世界坐标)

this.transform.eulerAngles;

相对于父对象

this.transform.localEulerAngles;

设置角度和设置位置一样,不能单独设置xzy,要一起设置

如果我们希望改变的 角度 是面板上显示的内容 那一点是改变 相对父对象的角度

this.transform.localEulerAngles = new Vector(10,10,10);
this.transform.localEulerAngles = new Vector(10,10,10);

旋转

自转

第一个参数 相当于 是旋转的角度 每一帧

第二个参数 默认不填 就是相对于自己坐标系 进行的旋转

void Update(){//绕着Y轴转,相对于自己的坐标系this.transform.Rotate(new Vector3(0, 10,0) * Time.daltaTime);//绕着世界坐标的Y轴转this.transform.Rotate(new Vector3(0, 10,0) * Time.daltaTime,Space.World);
}

相对于某一个轴 转多少度

参数一:是相对哪个轴进行转动

参数二:是转动的 角度 是多少

参数三:默认不填 就是相对于自己的坐标系 进行旋转
// 如果填 可以填写相对于 世界坐标系进行旋转

void Update(){//绕着自己的x轴正方向旋转,10*Time.deltaTime是角度this.transform.Rotate(Vector3.right, 10*Time.deltaTime);//绕着世界坐标的x轴正方向this.transform.Rotate(Vector3.right, 10*Time.deltaTime,Space.World);
}

相对于某一个点转

参数一:相当于哪一个点 转圈圈
参数二:相对于那一个点的 哪一个轴转圈圈
参数三:转的度数 旋转速度 * 时间

void Update(){//绕过过原点的x轴正方向转this.transform.RotateAround(Vector3.zero, Vector3.right, 10*Time.deltaTime);
}

练习

通过head.localEulerAngles得到的角度 不会出现负数的情况
虽然界面上显示出了负数 但是 通过代码获取 始终 只能得到0~360之间的数

#region 练习题二
//炮台左右来回旋转
head.Rotate(Vector3.up, headRotateSpeed * Time.deltaTime);
//炮管上下来回旋转
pkPos.Rotate(Vector3.right, pkPosRotateSpeed * Time.deltaTime);
//通过head.localEulerAngles得到的角度 不会出现负数的情况 
//虽然界面上显示出了负数 但是 通过代码获取 始终 只能得到0~360之间的数//只能是0到360 那就只有特殊判断了
if (!(head.localEulerAngles.y >= 315 && head.localEulerAngles.y <= 360) &&head.localEulerAngles.y >= 45 && headRotateSpeed > 0)headRotateSpeed = -headRotateSpeed;
else if (!(head.localEulerAngles.y <= 45 && head.localEulerAngles.y >= 0) &&head.localEulerAngles.y <= 315 && headRotateSpeed < 0)headRotateSpeed = -headRotateSpeed;//只能是0到360 那就只有特殊判断了
if (!(pkPos.localEulerAngles.x >= 350 && pkPos.localEulerAngles.x <= 360) &&pkPos.localEulerAngles.x >= 10 && pkPosRotateSpeed > 0)pkPosRotateSpeed = -pkPosRotateSpeed;
else if (!(pkPos.localEulerAngles.x <= 10 && pkPos.localEulerAngles.x >= 0) &&pkPos.localEulerAngles.x <= 350 && pkPosRotateSpeed < 0)pkPosRotateSpeed = -pkPosRotateSpeed;
#endregion

http://www.ppmy.cn/embedded/129490.html

相关文章

Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation

https://pnp-diffusion.github.iohttps://openaccess.thecvf.com/content/CVPR2023/papers/Tumanyan_Plug-and-Play_Diffusion_Features_for_Text-Driven_Image-to-Image_Translation_CVPR_2023_paper.pdf 问题引入 针对的还是图片编辑的问题&#xff0c;但是更多的偏向于tex…

repo 命令大全详解(第十七篇 repo smartsync)

repo smartsync 命令用于智能同步指定的项目&#xff0c;结合了多种更新策略。 参数分类及解释 基本命令 repo smartsync&#xff1a;用于智能同步项目。 1. 帮助和基本选项 -h, --help 显示帮助信息并退出。示例&#xff1a;repo smartsync --help 2. 作业管理 -j JOBS,…

STM32中的RAM和ROM分别是什么

RAM&#xff08;Random Access Memory&#xff0c;随机存取存储器&#xff09;和ROM&#xff08;Read-Only Memory&#xff0c;只读存储器&#xff09;是计算机系统中的两种常见存储器类型&#xff0c;它们各自有不同的功能和用途。 1. RAM&#xff08;内存&#xff09; 定义…

Python案例 | 使用K-means 聚类算法提取图像中的颜色

假如我们需要提取下图中的颜色&#xff0c;可以通过使用 K-means 聚类算法对图像进行颜色聚类分析&#xff0c;并生成一个基于聚类中心(即最具代表性的颜色)的RGB值和调色板。 # 通过使用 K-means 聚类算法对图像进行颜色聚类分析&#xff0c;并生成一个基于聚类中心(即最具代…

在Ubuntu上安装指定版本Docker

在Ubuntu上安装指定版本Docker 1. 删除原有docker sudo apt-get remove docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /etc/docker sudo rm /etc/systemd/system/docker.service sudo rm /etc/systemd/system/docker.socket2. 更新现有的…

Python主流框架Django,ORM框架

数据模型的增删改查 一、 框架基本介绍 O是object&#xff0c;也就类对象的意思&#xff0c;R是relation&#xff0c;翻译成中文是关系&#xff0c;也就是关系数据库中数据表的意思&#xff0c;M是mapping&#xff0c;是映射的意思。在ORM框架中&#xff0c;它帮我们把类和数据…

HTML_文本标签

概念&#xff1a; 1、用于包裹&#xff1a;词汇、短语等。 2、通常写在排版标签里面。 3、排版标签更宏观(大段的文字)&#xff0c;文本标签更微观(词汇、短语)。 4、文本标签通常都是行内元素。 常用的文本标签 标签名 全称 标签语义em Emphasized 加重(文本)。要着重阅…

基于springboot+微信小程序校园自助打印管理系统(打印1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于springboot微信小程序校园自助打印管理系统实现了管理员、店长和用户。管理员实现了用户管理、店长管理、打印店管理、打印服务管理、服务类型管理、预约打印管理和系统管理。店长实现…