3D游戏编程——期末考试
今天是2021年1月4号,进行了3D游戏的最后一次考试,说实话有惊无险……希望后续选这门课的同学考试前一定多温习一下,不要像我一样好几周前就把作业给做了结果一上手手生!起码考试前一天要打开Unity温习一下基本的操作,哪怕是创建一个物品,贴一贴图之类的。下面一起来回顾一下这一次惊险的考试历程。
第一题
题目描述
请在场景放置一个Plane和两个Cube,要求如下:
- 两个
Cube一大一小,小Cube是大Cube的0.4倍大小,相对于大Cube的位置为Vector3(2,0,0); - 大
Cube的颜色为红色,小Cube的颜色为红色
解答
这一道题纯属热身题目,这里不再赘述,我们GameObject->3D Object,选择Cube和Plane,放到场景上即可。然后我们在Assets右键,Create->Material,设置上红色和黄色,然后拖到对应的方块上即可。
这一道题做完后的效果如下:

第二题
题目描述
为两个Cube添加运动,要求是:
- 大
Cube以速度20.0绕自身y轴旋转 - 小
Cube以速度25.5绕大Cube旋转
解答
为大Cube绑定如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RedCube : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Rotate(new Vector3(0, 20.0f * Time.deltaTime,0));
}
}
为小Cube绑定如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class YellowCube : MonoBehaviour
{
public Transform RedCube;
// Start is called before the first frame update
void Start()
{
RedCube.position = new Vector3(0,2,0); //这里填写你的大红方块的位置
}
// Update is called once per frame
void Update()
{
transform.RotateAround(RedCube.position, Vector3.up, 25.5f * Time.deltaTime);
}
}
同时记得将你的大方块拖给其中的变量RedCube

拖好后运行效果如下

第三题
题目描述
创建一个按钮,按钮的显示文字为Rotate,点击这个按钮时,能够使得黄色方块停止绕红色方块公转,再次点击时能够重新让黄色方块开始公转。
解答
这一道题当然可以创建一个UIButton控件来解决,不过我们可以利用OnGUI来更快地解决这一道题目,这也是之前作业中让我们思考的两种方法的区别,显然现在是考试中,用OnGUI能更快地帮我们解题。我们重写黄色方块的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class YellowCube : MonoBehaviour
{
public bool status;
public Transform RedCube;
// Start is called before the first frame update
void Start()
{
status = false;
RedCube.position = new Vector3(0,2,0); //这里填写你的大红方块的位置
}
// Update is called once per frame
void Update()
{
if (status) {
transform.RotateAround(RedCube.position, Vector3.up, 25.5f * Time.deltaTime);
}
}
void OnGUI() {
if (GUI.Button(new Rect(500,300,100,50), "Rotate")) {
status = !status;
}
}
}
代码逻辑很简单,就是用一个变量status来控制黄色方块的旋转,当按钮被点击的时候status取反即可。做好后效果如下:

第四题
题目描述
创建第二个摄像机拍摄场景的侧面,要求运行项目的时候这个摄像机呈现的画面出现在右下角。
解答
我们新创建一个摄像机,设置属性如下:

注意检查你的MainCamera的Depth属性是不是-1哦!完后点击运行按钮,场景如下图所示:

本次考试到此结束,此时你可以举手让助教进行检查,然后潇洒地离开考场了。(不过本人并没有,因为在多摄像机最后这一道题上没有认真看课件博客卡了好久,的确如老师所说,有同学20分钟就做完了,我右边的朋友就是其中之一)。
总的来说考试的时候别慌,就和平时做作业一样,其实这次考试很快的,完全不用担心考试做不出来。
一学期的游戏课就这么结束啦!这一学期跟着老师和同学在课上做游戏,玩游戏,以及课上出现的种种游戏奇怪行为,例如天空喷球、僵尸行走,也给我们带来了很多欢声笑语,最让人遗忘不了的还是老师上课的笑容!庆幸当初能来到软工,一起和大家上这一门游戏课,也算是不枉自己玩了这十几年的游戏带来的手感。这也是大三的第一场考试告一段落了,预祝我们剩下的考试依然顺利!

浙公网安备 33010602011771号