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.hqwc.cn/news/497053.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL常见容器(list容器)---C++

STL常见容器目录: 6.list容器6.1 list基本概念6.2 list构造函数6.3 list 赋值和交换6.4 list 大小操作6.5 list 插入和删除6.6 list 数据存取6.7 list 反转和排序6.8自定义排序案例 6.list容器 6.1 list基本概念 功能: 将数据进行链式存储; …

密码学系列(四)——对称密码2

一、RC4 RC4(Rivest Cipher 4)是一种对称流密码算法,由Ron Rivest于1987年设计。它以其简单性和高速性而闻名,并广泛应用于网络通信和安全协议中。下面是对RC4的详细介绍: 密钥长度: RC4的密钥长度可变&am…

【网络那些事】

【云计算】 云计算:把计算资源放在某个地方,并通过互联网暴露出来,让用户可以按需使用计算资源的方式,就是所谓的云计算 云计算的三种服务: 云平台专业名词 日常叫法 亚马逊云叫法 云服务器 ECS (Elas…

SQL注入漏洞解析-less-8(布尔盲注)

我们来看一下第八关 当我们进行尝试时,他只有You are in...........或者没有显示。 他只有对和错显示,那我们只能用对或者错误来猜他这个数据库 ?id1%27%20and%20ascii(substr(database(),1,1))>114-- ?id1%27%20and%20ascii(substr(database(),1,…

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯,遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项?3.7.1 当数据结构定义的是数…

技术资讯:CSS滚动条样式修改,最新方式!

大家好,我是大澈! 本文约800字,整篇阅读大约需要1分钟。 感谢关注微信公众号:“程序员大澈”,免费领取"面试礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单!…

【查漏补缺你的Vue基础】Vue数据监听深度解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

RK3568 android11 调试陀螺仪模块 MPU-6500

一,MPU6500功能介绍 1.简介 MPU6500是一款由TDK生产的运动/惯性传感器,属于惯性测量设备(IMU)的一种。MPU6500集成了3轴加速度计、3轴陀螺仪和一个板载数字运动处理器(DMP),能够提供6轴的运动…

小狐狸chat2.7.2免授权修复版可用版

小狐狸chat2.7.2免授权修复版可用版 在网络上面找了好几个版本不能使用,今天发布这个仔细测试正常使用 主要功能:独立版无限多开支持分销会员充值自己APP打包小程序万能创作MJ绘图多个国内接口 国外很火的ChatGPT,这是一种基于人工智能技术…

【前端素材】推荐优质在线家具电商Bazu平台模板(附源码)

一、需求分析 1、系统定义 家具电商平台是指专门销售家具产品的在线电子商务平台。这些平台专注于家具类商品的销售和服务,为消费者提供方便快捷的购买体验。 2、功能需求 家具电商平台是指专门销售家具产品的在线电子商务平台。这些平台专注于家具类商品的销售…

28. 找出字符串中第一个匹配项的下标(力扣LeetCode)

文章目录 28. 找出字符串中第一个匹配项的下标题目描述暴力KMP算法 28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。…

如何实现双向循环链表

博主主页:17_Kevin-CSDN博客 收录专栏:《数据结构》 引言 双向带头循环链表是一种常见的数据结构,它具有双向遍历的特性,并且在表头和表尾之间形成一个循环。本文将深入探讨双向带头循环链表的结构、操作和应用场景,帮…