Unity3D学习之Unity基础——3D数学

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


1. 前言

unity 3d数学,学习,unity,笔记
从这几部分学习

2 Mathf和Math基础

2.1 一般用于只计算一次的函数

unity 3d数学,学习,unity,笔记
都是用于提供数学计算的

Mathf是结构体,Math是类
Mathf是Math的第二次封装,更适合游戏开发

2.1.1 PI Π PI

unity 3d数学,学习,unity,笔记

2.1.2 取绝对值 Abs

unity 3d数学,学习,unity,笔记

2.1.3 向上取整 CeilToInt

unity 3d数学,学习,unity,笔记

2.1.4 向下取整 FloorToInt

unity 3d数学,学习,unity,笔记

2.1.5 钳制函数 Clamp

unity 3d数学,学习,unity,笔记
第一个参数,如果在第二个和第三个参数之间,就是合法的
如果小于第二个参数,则返回第二个参数
如果大于第三个参数,则返回第三个参数

2.1.6 获取最大值 Max

unity 3d数学,学习,unity,笔记

2.1.7 获取最小值 Min

unity 3d数学,学习,unity,笔记

2.1.8 一个数的n次幂 Pow

unity 3d数学,学习,unity,笔记

4的2次方,
2的3次方

2.1.9 四舍五入 RoundToInt

unity 3d数学,学习,unity,笔记

2.1.10 平方根 Sqrt

unity 3d数学,学习,unity,笔记
结果是2,4,8

2.1.11 判断是否是2的n次方 IsPowerOfTwo

unity 3d数学,学习,unity,笔记
true
true
false
true

2.1.12 判断正负数 Sign

正数是1,负数是-1
unity 3d数学,学习,unity,笔记

2.1.13 其他函数

有三角函数计算这部分会在后面专门开个部分讲

2.2 一般用于不停计算的函数

2.2.1 插值运算 Lerp

unity 3d数学,学习,unity,笔记

  1. 用法一
    unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
先快后慢
2)用法二

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

匀速运动

做跟随运动的时候,有两种方法,一种是先快后慢,一种是匀速运动

unity 3d数学,学习,unity,笔记
第二种
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

3 三角函数

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

3.1 弧度角度相互转换

unity 3d数学,学习,unity,笔记

3.2 三角函数

使用需要传入弧度值
unity 3d数学,学习,unity,笔记

3.3 反三角函数

通过三角函数得到的值,得到相应的弧度,就是上面这个函数里传入值

unity 3d数学,学习,unity,笔记

3.4 把一个物体按正弦曲线进行移动

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

3.5 坐标系

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
Camera组件里的视口坐标系
unity 3d数学,学习,unity,笔记

3.5.1 坐标转换

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

4 向量

unity 3d数学,学习,unity,笔记

4.1 向量模长和单位向量

4.1.1 向量

unity 3d数学,学习,unity,笔记

4.1.2 两点决定一个向量

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

4.1.3 零向量和复向量

unity 3d数学,学习,unity,笔记

4.1.4 向量的模长

unity 3d数学,学习,unity,笔记
如果这个向量不是两个点的向量,则是原点到这个点的距离

4.2 单位向量

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记v
unity 3d数学,学习,unity,笔记

4.3 向量加减乘除

4.3.1 加法

向量 + 向量 = 新向量
位置 + 向量 = 新位置
向量 + 位置 = 新位置

4.3.2 减法

位置 - 位置 = 向量
向量 - 向量 = 向量
位置 - 向量 = 位置
向量 - 位置 没有意义

4.3.3 乘法除法

向量 * / = 向量
向量 * / 正数 = 方向不变,放大缩小模长
向量 * / 正数 = 方向变反,放大缩小模长
向量 * 0,得到零向量

4.3.4 unity中计算

unity 3d数学,学习,unity,笔记

4.3.5 设置个相机跟随物体

摄像机一直在物体后方4米,向上偏7米的位置
unity 3d数学,学习,unity,笔记
把target拖入
这样位置是没问题,但是没有看向物体
unity 3d数学,学习,unity,笔记
加一句就行

4.4 向量点乘

unity 3d数学,学习,unity,笔记

4.4.1 使用Debug的画线

使用Debug的画线方法
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

给两个物体画一条射线,将终点 换成变量,在ins里拖入
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

4.4.2 计算点乘

unity 3d数学,学习,unity,笔记

4.4.3 公式推导

如果有巡逻怪,他有个视野范围,此时需要计算角度,判断是否在这个视野范围内,需要一个计算公式
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
1) 计算出两物体的单位向量
2) 用反三角函数得出角度

unity 3d数学,学习,unity,笔记
dot中第一个是起点的单位向量,第二个是终点即起点到终点的向量的单位向量
算出的范围在 0- 180度之间
怎么算出他在左右方向,在后面讲

这个API在 unity中提供两个向量夹角的方法
Vector3.Angle
unity 3d数学,学习,unity,笔记

4.4.4 怪物视野范围

unity 3d数学,学习,unity,笔记
1)首先判断距离
2)再判断角度
unity 3d数学,学习,unity,笔记

也可以直接用API
unity 3d数学,学习,unity,笔记

4.5 向量叉乘

unity 3d数学,学习,unity,笔记

4.5.1 计算叉乘

unity 3d数学,学习,unity,笔记

4.5.2 几何意义

unity 3d数学,学习,unity,笔记
同时垂直于A向量和B向量
AXB向量垂直于A和B组成的平面
A X B = -( B X A )

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
使用函数时参数互换的话得到结果相反

4.5.3 完善索敌脚本

unity 3d数学,学习,unity,笔记

1)unity 3d数学,学习,unity,笔记
右后和左后同理
2)
unity 3d数学,学习,unity,笔记

4.6 插值运算

4.6.1 线性插值

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

5 四元数

首先讲欧拉角
把角度分成按X,Y,Z三个轴进行旋转
unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
所以为什么使用四元数
unity 3d数学,学习,unity,笔记

5.1 四元数是什么

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
Q = [cos(角度/2),sin(角度/2)n]

5.2 unity中的四元数

5.2.1 轴角对

unity 3d数学,学习,unity,笔记
第一种方法(一般不用)
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
第二种方法(简单记这个)
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

绕Vector3.right 旋转60度

5.2.2 四元数和欧拉角的转换

unity 3d数学,学习,unity,笔记

5.2.3 四元数相乘

四元素相乘代表旋转四元数
unity 3d数学,学习,unity,笔记
表示按面朝向旋转

5.3 四元数的常用方法

unity 3d数学,学习,unity,笔记

5.3.1 单位四元数

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
表示没有旋转

5.3.2 插值运算

unity 3d数学,学习,unity,笔记

一般使用Slerp
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
start要实时更新

unity 3d数学,学习,unity,笔记

5.3.3 向量指向转四元素

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

5.3.4 利用LookRotation实现LookAt方法

unity 3d数学,学习,unity,笔记

5.3.5 利用 Slper实现摄像机匀速或先快后慢看向目标

unity 3d数学,学习,unity,笔记

5.4 四元数计算

5.4.1 四元数相乘

代表两个旋转量的叠加,相当于旋转
unity 3d数学,学习,unity,笔记

5.4.2 四元数乘向量

unity 3d数学,学习,unity,笔记
返回一个新向量,获得旋转对应四元数的旋转向量

unity 3d数学,学习,unity,笔记
相当于获得了新的方向向量

5.4.3 模拟飞机游戏中发射不同类型子弹的方法

unity 3d数学,学习,unity,笔记

unity 3d数学,学习,unity,笔记

5.4.4 实现各类摄像机跟随效果

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记

画条线观测一下

unity 3d数学,学习,unity,笔记
unity 3d数学,学习,unity,笔记
实现了1,3

unity 3d数学,学习,unity,笔记

根据鼠标中间输入修改dis的值,从而修改摄像机离物体的距离
实现了2

unity 3d数学,学习,unity,笔记
实现4 .5文章来源地址https://www.toymoban.com/news/detail-828905.html

到了这里,关于Unity3D学习之Unity基础——3D数学的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity3D学习之数据持久化——XML

    最终达到的效果 树形结构 属性通过空格隔开 属性名 = 引导包裹的内容 这两个代表的东西是一样的 可以在菜鸟上使用xml验证器 xml验证器 在Resources文件夹创建一个xml文件 把文件再复制到streamingAsserts 3.2.1 通过Resources文件进行读取 3.2.2 通过xml文件进行加载 获取根节点 遍历同名

    2024年01月23日
    浏览(45)
  • unity3D基础操作之01--unity3d窗口界面介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 1、Scene场景编辑窗口; 2、Game游戏运行窗口; 3、Hierarchy场景物体列表窗口; 4、Project项目资源列表窗口; 5、Inspector属性编辑列表窗口; 6、其他常调节窗口 在屏幕左上方为场景编辑窗口Scene,在场景编

    2024年02月06日
    浏览(80)
  • Unity3D学习之UI系统——用NGUI制作游戏登陆界面

    会省略一些东西,可以看我的NGUI的博客 设置UI分辨率自适应 设置Root 的层级 和摄像机渲染的层级为UI 主摄像机不渲染UI 一般都是美术给一个示意图,然后按示意图上拼面板 3.1.1 制作图集 制作两个新图集 3.1.2 拖面板 检查DrawCall 3.1.3 面板基类 创建面板基类, 首先设置成单例

    2024年02月19日
    浏览(75)
  • Unity读书系列《Unity3D游戏开发》——基础知识

    本篇对应标题书籍的第一章基础知识,也就是unity的基本常识和工作流的说明。 Unity目前用于创建2D和3D游戏、模拟应用程序、可视化体验以及其他虚拟现实(VR)和增强现实(AR)应用,游戏工业两开花。 Unity初版是在2005年发布的,开始时用unity3.X、4.X这样的名称进行版本更新

    2024年01月18日
    浏览(90)
  • Unity3D学习笔记——物理引擎

    1简介 刚体可以为游戏对象赋予物理特性,是游戏对象在物理系统的控制下接受推力和扭力,从而实现现实世界的物理学现象。 2属性 1简介 碰撞器是物理组件的一类,他与刚体一起促使碰撞发生 碰撞体是简单形状,如方块、球形或者胶囊形,在 Unity 3D 中每当一个 GameObjects

    2023年04月12日
    浏览(51)
  • 【瑞模网】Unity3D基础:贴图与材质球

    一、贴图与材质球 材质(Material):物体的质地,物体看起来是什么做的 贴图(Texture):普通的材质图片 贴图 + 着色器(Shader) = 材质球 所谓着色器(Shader)实际上就是一小段程序

    2023年04月12日
    浏览(69)
  • Unity3D粒子系统之基础属性介绍(一)

    下文将介绍如何用Unity3D的粒子系统。 (1)Duration:粒子的发射周期 图中的5.00表示在5秒后会进入下一个粒子的发射周期。如果勾选Looping,则5秒后也就是第一个周期结束时粒子会停止发射。Prewarm是预热系统,只有在勾选Looping后才有效,开始播放粒子是已经发射了一段时间的

    2024年02月03日
    浏览(43)
  • 【unity3D】TileMap基础知识(详细版)

    💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity的TileMap基础知识 window—2D—Tile Palettee 选择工具(Select Tool) 选择想要使用的瓦片,可以点击选择或拖拽多选选择, 快捷键S 。 移动工具(Move Tool) 可以选择并移动瓦片位

    2024年02月06日
    浏览(51)
  • Unity3D学习记录02——PloyBrush场景搭建

    首先在Window-Package Manager里面搜索Poly Brush,下载后将URP的Shader样例导入  导入后Asset文件夹下会有Sample的文件夹,在菜单栏 Tools-PolyBrush-PolyBrush Window 打开窗口 这个窗口最上面的五个,第一个是用来调整地形高低的,第二个是进行柔化场景的,第三个是调整颜色的, 第四个可以

    2024年02月08日
    浏览(60)
  • Unity3D学习笔记8——GPU实例化(3)

    在前两篇文章《Unity3D学习笔记6——GPU实例化(1)》《Unity3D学习笔记6——GPU实例化(2)》分别介绍了通过简单的顶点着色器+片元着色器,以及通过表面着色器实现GPU实例化的过程。而在Unity的官方文档Creating shaders that support GPU instancing里,也提供了一个GPU实例化的案例,这里就详

    2023年04月22日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包