找回密码
 立即注册
查看: 247|回复: 0

3D游戏编程blog4

[复制链接]
发表于 2022-11-8 19:19 | 显示全部楼层 |阅读模式
一、 基本操作演练

· 下载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[2] { (start.GetRoleNum())[0], (end.GetRoleNum())[0] };        int[] devil_num = new int[2] { (start.GetRoleNum())[1], (end.GetRoleNum())[1] };        if (priest_num[1] + devil_num[1] == 6)            return 2;        int[] boat_role_num = boat.GetRoleNumber();        if (boat.GetBoatSign() == 1)        {            priest_num[0] += boat_role_num[0];            devil_num[0] += boat_role_num[1];        }        else        {            priest_num[1] += boat_role_num[0];            devil_num[1] += boat_role_num[1];        }        if (priest_num[0] > 0 && priest_num[0] < devil_num[0])        {            return 1;        }        if (priest_num[1] > 0 && priest_num[1] < devil_num[1])        {            return 1;        }        return 0;    }    void Start()    {    }    void Update()    {    }}
动作分离需要将move的Monobehavior单独分离出来,并且将其他代码进行微小修改。
具体效果和上次作业相同。
项目的代码链接:hw4/priest and demons 2.0 · 灬蔷薇绅士灬/3D - 码云 - 开源中国 (gitee.com)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-6-30 06:05 , Processed in 0.113567 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表