Unity(第八部)Vector3的三维向量和旋转(坐标和缩放也简单讲了一下)

news2025/7/15 11:58:08

对了,Unity的生命周期自行百度吧;我这边整理的都不是很满意

Vector 是结构体
Vector2是指里面有两个变量
Vector3是指里面有三个变量
Vector4是指里面有四个变量

Vector3常用的变量就是x y z,所以,它可以代表坐标、旋转、缩放、三维向量

创建结构体

 //向量
Vector3 v= new Vector3(1, 1, 1);
 //坐标
Vector3 v= new Vector3(1, 1, 1);
 //旋转
Vector3 v= new Vector3(45, 90, 1);
 //缩放
Vector3 v= new Vector3(1, 1, 0.5f); 

v=Vector3.zero;//快速创建结构体,Vector3.zero 是一个预定义的常量,用于表示一个在三维空间中所有坐标都为零的向量

v=Vector3.one;//快速创建结构体,Vector3.zero 是一个预定义的常量,不过它的所有分量都被设置为 1

当然预定义的常量有很多;可以自行了解;

修改结构体

v.x=0;//v.x = 0; 修改了 v 的 x 分量的值为 0。 

向量的计算:

在这里插入图片描述

Vector3 v = new Vector3(0, 0, 0); 
v = Vector3.right;//等于Vector3(1, 0, 0)
Vector3 v2 = Vector3.forward;//等于Vector3(0, 0, 1)
Debug.Log(Vector3.Angle(v,v2));//计算两个向量夹角   90度
Debug.Log(Vector3.Distance(v,v2));//计算两个点距离  1.414214
Debug.Log(Vector3.Dot(v,v2));//计算点乘  0
Debug.Log(Vector3.Cross(v,v2));//计算叉乘 (0.00,-1.00,0.00) 
Debug.Log(Vector3.Lerp(Vector3.zero,Vector3.one,0.5f));//插值插值就是在两个向量里面做了比例计算;(0.5,0.5,0.5)
Debug.Log(Vector3.Lerp(Vector3.zero,Vector3.one,0.8f));//插值 结果是0.8,0.8,0.8
Debug.Log(v.mangnitude);//模,结果是1
Debug.Log(v.normalized);//单位向量 结果是(1.00,0.00,0.00)

旋转

旋转方式有两种(欧拉角,四元数)欧拉角和四元数是描述三维空间中物体旋转的两种常用方法。

欧拉角是通过指定三个角度(绕x轴、y轴和z轴的旋转角度)来描述物体的旋转。这种方法在三维图形学和游戏开发中非常常见。可能会造成万向节死锁
四元数是一种复数类型,可以用来表示三维空间中的旋转。四元数由四个实数组成,可以通过将欧拉角转换为四元数来描述物体的旋转。这种方法在三维动画和游戏开发中也有广泛的应用。不会造成万向节死锁

欧拉角旋转

Vector3 v = new Vector3(0, 30, 0);  

四元数旋转

1、使用给定的x,y、z、w分量构造新的四元数
Quaternion quaternion = new Quaternion(float x, foat y, foat z, foat w);

Quaternion quaternion = new Quaternion();

2、使用欧拉角转四元数

Vector3 rotate = new Vector3(0, 30, 0);//定义欧拉角
Quaternion quaternion = Quaternion.identity;//定义空的四元数
quaternion = Quaternion.Euler(rotate);//欧拉角转四元数
rotate = quaternion .eulerAngles;//四元数转为欧拉角

3、可以通过游戏角色看向的方向获取,目前还不会使用

quaternion = Quaternion.LookRotation(new Vector3(0,0, 0)); 

打印调试

Debug.Log();//正常输出

Debug.LogWarning();//警告

Drbug.LogError();//错误

绘制一条线

Debug.DrawLine(v1,v2,Color.blue)

绘制射线 v1是起点

Debug.DrawRay(v1,v2,Color.blue)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1478719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 学习笔记(Day5)

「写在前面」 本文为尚硅谷禹神 Vue3 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. Vue3 学习笔记(Day1) 2. Vue3 学习笔记(Day2&…

云桥通+IDC数据中心:SDWAN企业组网实现高效连接案例

一、需求和背景 云桥通曾服务的一家大型跨国企业C公司,C公司多个数据中心分布在全球各地。为了实现数据共享和协作,数据中心之间需要建立稳定高效的网络连接。然而,传统的MPLS专线网络存在昂贵的成本和漫长的开通周期,无法满足企…

点云检测网络PointPillar

1. 提出PointPillar的目的 在此之前对于不规则的稀疏的点云的做法普遍分为两派: 一是把点云数据量化到一个个Voxel里,常见的有VoxelNet和SECOND , 但是这种做法比较普遍的问题是由于voxel大部分是空集所以会浪费算力(SECOND利用稀疏卷积解决了它) ,但是…

本地大模型运行框架Ollama

什么是 Ollama ? Ollama 是一个简明易用的本地大模型运行框架。能在本地启动并运行 Llama 2、Mistral、Gemma 及其他大语言模型。 和老苏之前介绍的 LocalAI 比较类似,但是加载模型更容易,感觉上比较像 docker,也采用了 tags 来区…

Eureka 入门教程

Eureka 介绍 1. 注册中心概述 什么是注册中心? 给客户端提供可供调用的服务列表,客户端在进行远程调用(RPC)时,根据服务列表选择服务提供方的服务地址进行服务调用 注册中心的核心功能 注册:服务提供者上…

androidjetpack应用指南,超通俗解析

前言 每年的3、4月份是各大企业为明年拓展业务大量吸纳人才的关键时期,招聘需求集中、空缺岗位多,用人单位也习惯在初秋进行大规模招聘。 金九银十,招聘旺季,也是一个求职旺季。 不打无准备的仗,在这种关键时期&…

文件上传之后再次打开,文件依然存在

目录 1.上传说明 2.问题1 3.问题2 4.其他问题 1.上传说明 文件上传使用了单独的组件,使用对话框内嵌套上传组件的方式,在主画面中点击导入按钮,弹出对话框。 2.问题1 问题: ①上传文件后,点击遮罩层取消或者点击…

Maven下载、安装、配置教程

maven是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。 通常我们靠手动下载jar包引入项目中是非常浪费时间的,我们可以通过maven工具帮我们导入jar包提高开发效率。 第一步:下载Mave…

【QT+QGIS跨平台编译】之五十五:【QGIS_CORE跨平台编译】—【qgsmeshcalcparser.cpp生成】

文章目录 一、Bison二、生成来源三、构建过程一、Bison GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR (1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR (1) 或规范 LR (1) 解析表。一旦您熟练使用 Bison,您可以使用…

C++设计模式——抽象工厂模式

文章目录 抽象工厂模式的主要组成部分抽象工厂模式的一个典型例子抽象工厂模式用于其他场景抽象工厂模式与其他设计模式结合使用 C 中的抽象工厂模式是一种创建型设计模式,它主要用于处理对象家族的创建,这些对象之间可能存在一定的关联关系或属于相同的…

springboot227旅游管理系统

springboot旅游管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

C++ deque详解以及容器适配器

目录 1.容器适配器 2.deque的使用 2.1deque的介绍 2.2deque的缺陷 2.3deque作为stack和queue的可行性 2.4 deque类的使用 2.4.1deque的构造函数 2.4.2deque容量操作 2.4.3deque赋值,插入 1.容器适配器 适配器是一种设计模式(设计模式是一套被人…

STL常见容器(stack、queue容器)---C++

STL常见容器目录: 4.stack容器4.1 stack 基本概念4.2 stack 常用接口 5.queue容器5.1 queue常用接口5.2 queue常用接口 4.stack容器 4.1 stack 基本概念 概念: stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口. 注意…

重推请求之curl和fiddler

在实际的项目中会有出现问题,想重现的场景,比较重新调用一个服务,那么如何进行快速的重推请求呢,记录下来,方便备查。 主要有curl和fiddler两种方式,下面详细说。 方式一、curl 命令 curl 是一个利用URL规…

MySQL:索引有哪些(清晰明了)

一提到索引,可能就会想到B树索引、Hash索引、聚簇索引、主键索引、唯一索引、联合索引等等,但这些名词并不能混为一谈,他们有重复的部分,是从不同方面给索引取的名字。 从数据结构上来讲:B树索引、Hash索引、Full-text…

Spring注解之处理常见的 HTTP 请求

5 种常见的请求类型: GET :请求从服务器获取特定资源。举个例子:GET /users(获取所有学生)POST :在服务器上创建一个新的资源。举个例子:POST /users(创建学生)PUT :更新…

总结成果,擘画蓝图 | 易我科技召开2023年度总结暨2024年规划大会

2024年2月1日下午,易我科技举行了2023年度总结暨2024年规划大会。 01 首先,易我科技总经理万建华对2023年度整体工作进行了总结,对取得的经营成果给予了充分肯定。 ▲ 万总公布2023年经营成果 在肯定成绩的同时,也必须正视存在…

Leetcode : 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 思路:遍历数组元素,判定为0,则采用erase从数组删除&…

P沟道与N沟道MOSFET的基本概念

N沟道与P沟道MOSFET基本原理与区别 学习MOSFET时的简单笔记作为个人总结,仅供学习参考,实际电路设计请直接略过!!! 文章目录 N沟道与P沟道MOSFET基本原理与区别前言一、MOSFET ?二、N沟道MOS管原理三、P沟…

TCP/UDP模型:2024/2/29

作业1&#xff1a;TCP模型 服务器端&#xff1a; #include <myhead.h> #define SER_IP "192.168.199.129" #define SER_PORT 8899int main(int argc, const char *argv[]) {//1.创建用于连接的套接字文件int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){per…