作业与练习"/>
3D游戏编程与设计——游戏对象与图形基础章节作业与练习
3D游戏编程与设计——游戏对象与图形基础章节作业与练习
- 3D游戏编程与设计——游戏对象与图形基础章节作业与练习
- 自学资源
- 作业内容
- 1、基本操作演练【建议做】
- 天空盒的制作:
- 地图的制作:
- 整体效果:
- 2、编程实践
- 项目要求:
- 项目结构:
- 代码详解:
- Actions:
- ISSActionCallback.cs
- SSAction.cs
- SSActionManager.cs
- CCMoveToAction.cs
- CCSequenceAction.cs
- CCActionManager.cs
- Controllers:
- JudgeController.cs
- FirstController.cs
- 项目源代码与视频链接
- 运行效果:
- 3、材料与渲染联系【可选】
- Albedo Color and Transparency
- Reverb Zones
自学资源
- 结构类型
结构类型(“structure type”或“struct type”)是一种可封装数据和相关功能的值类型 。
由于结构类型具有值语义,因此建议定义不可变的 结构类型。
示例:
public struct Coords
{public Coords(double x, double y){X = x;Y = y;}public double X { get; }public double Y { get; }public override string ToString() => $"({X}, {Y})";
}
- 可以使用 readonly 修饰符来声明结构类型不可变
- readonly 结构的所有数据成员都必须是只读的
- 不能声明无参数构造函数。
- 不能在声明实例字段或属性时对它们进行初始化。
- 结构类型的构造函数必须初始化该类型的所有实例字段。
- 结构类型不能从其他类或结构类型继承,也不能作为类的基础类型。 但是,结构类型可以实现接口。
- 不能在结构类型中声明终结器。
- 可以在结构类型的声明中使用 ref 修饰符。 ref 结构类型的实例在堆栈上分配,并且不能转义到托管堆。
- 枚举类型
枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。
enum Season
{Spring,Summer,Autumn,Winter
}
默认情况下,枚举成员的关联常数值为类型 int;它们从零开始,并按定义文本顺序递增 1。 可以显式指定任何其他整数数值类型作为枚举类型的基础类型。
enum ErrorCode : ushort
{None = 0,Unknown = 1,ConnectionLost = 100,OutlierReading = 200
}
- 不能在枚举类型的定义内定义方法。若要向枚举类型添加功能,请创建扩展方法。
- 对于任何枚举类型,枚举类型与其基础整型类型之间存在显式转换。
- const关键字
使用 const 关键字来声明某个常量字段或常量局部变量。 常量字段和常量局部变量不是变量并且不能修改。
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
作业内容
1、基本操作演练【建议做】
- 下载 Fantasy Skybox FREE, 构建自己的游戏场景
主要分为天空盒与地图的制作。
天空盒的制作:
创建一个文件夹为SkyBox,创建一个Material,将Shader改为Skybox/6 Sided或Cubemap并选择刚刚下载的素材中的某一个素材为原料。
然后将该SkyBox拖入到Window-Rendering-Lighting-Environment-Skybox Material
中。
地图的制作:
在对象栏右击->3D Object->Terrain,新建一个地图对象。
使用Terrain的各项工具绘制地图, 包括造山,造草,添加细节等等。
将下载来的素材中的树和草等细节添加到图层中:
整体效果:
更多推荐
3D游戏编程与设计——游戏对象与图形基础章节作业与练习
发布评论