旋转跳跃,我闭着眼(Unity基础2-6)

旋转跳跃,我闭着眼(Unity基础2-6)

首页体育竞技翻转跳跃3D更新时间:2024-05-11

周末对于现在的我来说是一个很奇特的时间段,因为按我妈的话来说我就是个无业游民,周末不周末的对于我来说没有区别。

所以我现在每天都想着,要不有一天给自己放个假不写文章吧。但是我内心深处总有个声音:“你这个年龄连工作都还没找到,你怎么好意思偷懒睡觉的​?”

我总是在善与恶之间徘徊,机智的我选择了一个类似于抛硬币的方式。

如果我今天的第一把游戏赢了,那就再奖励自己一把游戏。如果​今天的第一把游戏输了,那就打到赢为止。

于是我现在​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