3D游戏编程blog4
一、 基本操作演练· 下载Fantasy Skybox Free,构建自己的游戏场景
从unity assets store中下载所需要的资源
新建一个shader为skybox/6sides的天空盒并添加纹理,设置为skybox material,效果如下
新建Terrian,添加树木预制,草坪纹理等,创建自己的场景。
部分简易截图
· 写一个简单的总结,总结游戏对象的使用
空对象:是不显示却最常用的游戏对象,可用于放置场景控制脚本,生成该场景所需的游戏对象。
摄像机:用于控制游戏场景的视角与游戏对象的渲染。
天空盒:用于控制游戏界面中的天空背景。
光源:用于调节游戏界面中不同地方的明暗程度。
地形:用于创建陆地、山川、河流、小径等地理结构,打造用户的游戏场景。
音源:用于管理游戏过程中的背景音乐,达到想要的听觉效果。
3D 物体:是游戏中具体的可视化对象,具有一定的立体形态与材质纹理。
二、编程实践 牧师与魔鬼动作分离版
要求:设计一个裁判类,当游戏到达结束条件时,通知场景控制器游戏结束。
裁判类只需要将原有的controller中的check函数单独分出为一个judge类即可,代码如下:
using System.Collections;using System.Collections.Generic;using UnityEngine;using ModelController;public class Judge{ LandModel start; LandModel end; BoatModel boat; public Judge(LandModel start_, LandModel end_, BoatModel boat_) { start = start_; end = end_; boat = boat_; } public int Check() { int[] priest_num = new int { (start.GetRoleNum()), (end.GetRoleNum()) }; int[] devil_num = new int { (start.GetRoleNum()), (end.GetRoleNum()) }; if (priest_num + devil_num == 6) return 2; int[] boat_role_num = boat.GetRoleNumber(); if (boat.GetBoatSign() == 1) { priest_num += boat_role_num; devil_num += boat_role_num; } else { priest_num += boat_role_num; devil_num += boat_role_num; } if (priest_num > 0 && priest_num < devil_num) { return 1; } if (priest_num > 0 && priest_num < devil_num) { return 1; } return 0; } void Start() { } void Update() { }}
动作分离需要将move的Monobehavior单独分离出来,并且将其他代码进行微小修改。
具体效果和上次作业相同。
项目的代码链接:hw4/priest and demons 2.0 · 灬蔷薇绅士灬/3D - 码云 - 开源中国 (gitee.com)
页:
[1]