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

对了,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.mfbz.cn/a/417757.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言数据结构基础—单链表相关数据结构题目6道

上一篇博客中,我们大致的讲解了单链表相关的各种接口。接下来我们通过例题来运用类似的思想,达到学以致用的目的。 1.移除链表元素 203. 移除链表元素 - 力扣(LeetCode) 没有说明头结点是什么,默认就是第一个元素&am…

智能汽车软硬件产品CES展示汽车技术新亮点

智能汽车是汽车产业发展的新趋势,是未来汽车发展的必然方向。智能汽车是指搭载了先进的传感器、控制器、执行器等部件,并融合了人工智能、自动驾驶等技术,能够实现部分或完全自动驾驶、智能网联等功能的汽车。 近年来,智能汽车技…

ensp模拟单臂路由实现不同两个网段主机访问

拓扑结构图如下 1.pc机配置略过 2.交换机配置 三个接口,两个连接pc,连接方式access,一个连接路由器 连接方式trunk sy #进入系统 视图模式 undo info-center enable #关闭信息 vlan batch 10 20#批量创建vlan int g 0/0/2#进入2端口 p…

Java图书管理系统---命令行

项目列表 Book包 Book类内包含book的基本属性 BookList类初始化图书列表并且提供图书的属性方法 User包 Administrator类 common类 operator包 功能接口 新增图书功能 借阅图书功能 删除图书功能 显示图书功能 查找图书功能 归还图书功能 结束释放资源功能 运行…

MySQL进阶:大厂高频面试——各类SQL语句性能调优经验

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:MySQL进阶:强推,冲大厂必精通!MySQL索引底层(BTree)、性能分析、使用…

批量获取图片(下)

1.问题分析 我们观察下之前获得的图片,可以发现图片的清晰度不够。 放大之后比较模糊,这样的图叫做缩略图,那该如何获得高清海报图片呢? 为了找到高清图片,我们需要对网页结构进行分析,找到高清图对应的链…

C#,动态规划(DP)金矿问题(Gold Mine Problem)的算法与源代码

1 金矿问题(Gold Mine Problem) 给定一个N*M尺寸的金矿,每个点都有一个非负数表示当前点所含的黄金数目,最开始矿工位于第一列,但是可以位于任意行。矿工只能向右,右上,右下三个方向移动。问该…

Eureka 入门教程

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

CY8C42(1.PSoC4 Pioneer Kit开箱及基本使用)

1.开箱 最近了解到赛普拉斯有一种芯片,属于PSoC系列,与传统MCU不同,有点类似跨界芯片,于是就买来玩玩了,老实说用完还是很特别的,因为我没有用过FPGA,不确定是不是FPGA的开发流程(有…

【性能测试】loadrunner12.55--知识准备

1.0. 前言 ​ 在性能测试中,牵扯到了许多比较杂的知识点,这里将给大家说一下,loadrunner性能测试前需要做的一些准备,本节中我们将先从性能测试的一些术语入手,再到HTTP的一些知识,最后导我们loadrunner12…

linux文件及文件内容查找命令总结

在linux环境下,我们经常要查找一个文件或者文件的内容,但搜索的命令有很多,这些命令都有什么区别,应该怎么选择和使用呢? 下面总结了一些常见的文件查找、内容查找的命令,收藏起来备用吧。 文件查找 where…

虚拟机中window7界面太小解决办法

1.在虚拟机中的桌面的空白处右击,然后点击屏幕分辨率 2.根据自己电脑屏幕的大小来选择对应分辨率

java之servlet

动态的web资源开发技术 不同的用户,或者携带不同的参数,访问服务器 服务器添加判断层,实现访问不同的web资源

c++数据结构算法复习基础-- 2 -- 线性表-单链表-常用操作接口-复杂度分析

1、链表 特点 每一个节点都是在堆内存上独立new出来的, 节点内存不连续优点 内存利用率高,不需要大块连续内存 插入和删除节点不需要移动其它节点,时间复杂度O(1)。 不需要专门进行扩容操作缺点 内存占用量大,每一个节点多出存…

LeetCode238题:除自身以外数组的乘积(python3)

代码思路: 当前位置的结果就是它左部分的乘积再乘以它右部分的乘积,因此需要进行两次遍历,第一次遍历求左部分乘积,第二次遍历求右部分的乘积,再将最后的计算结果一起求出来。 class Solution:def productExceptSelf(…

【力扣 - 杨辉三角】

题目描述 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] 提示: 1 < numRows < 30 方法一&#xff1a;数学 思路…

【免费】两阶段鲁棒优化matlab实现——CCG和benders

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序采用matlab复现经典论文《Solving two-stage robust optimization problems using a column-and-constraint generation method》算例&#xff0c;实现了C&CG和benders算法两部分内容&#xff0c;通过…

93. 递归实现组合型枚举 刷题笔记

与我前面发的递归实现那一题有点相似 可以看看 94. 递归实现排列型枚举 刷题笔记-CSDN博客 思路 用u记录 选到哪一个位置 一旦选完 就输出 该题 要求升序 我们在选数时加入一个条件 大于上一个选择的数即可 依旧是从小到大搜到符合条件的每一个数 代码 #include<…

安防视频监控EasyCVR平台使用GB28181协议接入时,如何正确配置端口?

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…

多线程万字详解

进程和线程是计算机程序执行的两个重要概念。 1.进程&#xff1a; 进程是操作系统分配资源的基本单位&#xff0c;每个进程都有自己独立的地址空间&#xff0c;每启动一个进程&#xff0c;系统就会为它分配内存。进程间通信比较复杂&#xff0c;需要用到IPC&#xff08;InterP…
最新文章