周末对于现在的我来说是一个很奇特的时间段,因为按我妈的话来说我就是个无业游民,周末不周末的对于我来说没有区别。
所以我现在每天都想着,要不有一天给自己放个假不写文章吧。但是我内心深处总有个声音:“你这个年龄连工作都还没找到,你怎么好意思偷懒睡觉的?”
我总是在善与恶之间徘徊,机智的我选择了一个类似于抛硬币的方式。
如果我今天的第一把游戏赢了,那就再奖励自己一把游戏。如果今天的第一把游戏输了,那就打到赢为止。
于是我现在8点才开始写文章。
上篇unity的笔记中提到了关于unity的位置(vector3的运用和计算)
在这篇笔记中补充说明一下在unity中方向的描述(旋转),以及在进行代码运算中可能出现的问题。
一、旋转角度(P21)
首先创建一个空对象和一个脚本命名为“test”,记得将脚本拖拽到对象后双击点开脚本。
1-1.欧拉角(旋转):欧拉角简单来说就是从0度到360度
在unity中的默认角度X Y Z都是为欧拉角表示的,例如让一个物体沿着X轴旋转50度。
但是在系统中提供的很多角度往往都不是欧拉角。
1-2.四元数(系统的另一种角度表达方式):是一种四维空间的高阶复数,有着较高的效率。
听起来四元数好像很复杂,但是在unity中四元数和欧拉角之间是可以进行转换的。
1-3.欧拉角的表示方式(Vector3),为了避免忘记Vector3是什么
Vector3三维向量:表示3D的向量和点。包含位置、方向(朝向)、欧拉角的信息
Vector3 rotate = new Vector3(0,30,0);
这行代码的意思就是x和z不转,沿Y轴转30度。
1-4.四元数的表达方式(提供四个数值)
第一种:下方的x,y,z,w不代表角度或轴
Quaternion quaternion= new Quaternion(float x, float y, float z, float w)
第二种:初始化方式
Quaternion quaternion= Quaternion.identity;
这里的意思是创建了一个四元数,但是无旋转的,相当于欧拉角中的(0,0,0)
第三种:通过欧拉角创建四元数
quaternion = Quaternion.Euler(0,0,0);
或者是(在之前的代码中有设定旋转rotate)
quaternion = Quaternion.Euler(rotate);
第四种:看向一个物体
quaternion = Quaternion.LookRotation(new Vector3(0,0,0));
这里代表了“我”看向了一个坐标为(0,0,0)的位置,这个“我”可以是一个对象(物体),物体在看向某个位置的时候是需要旋转的。
1-5.通过四元数转为欧拉角
rotate = quaternion.eulerAngles;{
二、常用的调试方法(P22)
学编程总是要学会调试的,之前提到了C#中最简单的输出一个信息用Debug.Log类似于python中的print。
在之后做游戏还是会运用到其他的东西,所以今天的笔记中会讲到一部分。
简单回顾下Debug.Log,就是简单地输出一个信息。
2-1.普通信息:多数情况下是我们在开发过程中使用Debug.Log()语句输出的,辅助我们进行代码测试使用的。
控制台右上角分别有三个选项,第一个对话框是隐藏/显示所有的普通信息
2-2.警告信息:这种也不算是真正的错误,先直接“Clear”清除即可,不影响程序的正常运行,新人可以不用顾虑这些错误信息。
可以看到第二次以警告的方式输出
2-3.错误信息:这种是正儿八经的错误(红色图标),这类的错误必须解决,否则这个项目就会出现运行错误。
一般这种错误情况会给予详细的错误提示:(例子)
图片来源:http://www.mkcode.net/html/unity_blog/problem/13.html
2-4.绘制线(调试方法,只有开发者可以看到)一个是起点,一个是终点
Debug.DrawLine(Vector3.zero,Vector3.one);
如果线的颜色太白了看不清可以进行颜色上的修改:
Debug.DrawLine(Vector3.zero,Vector3.one,Color.blue);
2-5.绘制射线(依然是两个结构体)第一个是起点,第二个是射线(向量)
Debug.DrawRay(Vector3.zero,Vector3.up,Color.red):
在这里的射线换句话来说是一个起点,一个向量。实际上是线段,长度为向量的模,方向和向量一致。
为了让学生更好理解,讲师稍微更改了一下例子(他真的,我哭死)
绘制线:Debug.DrawLine(new Vector3(1,0,0), new Vector3.(1,1,0) ,Color.blue);
在这个绘制线的代码中两个点,一个是X向右偏移了一位(正数),另一个是X向右偏移了一位,然后Y向上偏移了一位)
接下来将同样的参数放到射线中
绘制射线:Debug.DrawRay(new Vector3(1,0,0), new Vector3.(1,1,0) ,Color.red);
在这里可以看出即便参数是一样的,但是两个线看着完全不一样。
对于线而言给出两个点,将两个点(1,0,0)和(1,1,0)连接在一起绘制成线段。
对于射线而言,从(1,0,0)为起点沿着(1,1,0)这个向量的方向画出一条长度为(1,1,0)模长的射线。
不知道大伙听明白了没
今天的知识就学到这里,现阶段的知识点听着可能有点懵,但是等到后续进行实际的操作和运用之后就更好懂了!
今天的我又完成了学习的任务,必须得好好奖励自己一把酣畅淋漓的胜利,不够酣畅的我都睡不着觉。
大伙下篇笔记见,拜了个拜。
原教程链接:https://www.bilibili.com/video/BV1gQ4y1e7SS?p=22&vd_source=24f33eddf5587fb40e947798abce6715
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved