- 博客(9)
- 收藏
- 关注
原创 使用UnityTestFramework做数值测试
unity测试框架基于UNUnit库构建,提供了测试用例编写、运行和结果分析功能。单元测试框架适用于测试游戏罗杰、工具代码和模块系统、确保代码的稳定性和可维护性。在“项目”窗口中,找到包含要包含在引用程序集中的脚本的文件夹。在文件夹中创建程序集引用(菜单:Assets > Create > Scripting > Assembly Definition Reference)。给资产命名。Unity 会重新编译项目中的脚本以创建新的程序集。完成后,您可以编辑新程序集定义引用的属性。
2026-04-01 23:05:06
357
原创 设计模式—状态模式
当一个对象的行为依赖于它的状态时,我们可以把这些状态封装成独立的类。当切换状态时,程序自动切换到对应的逻辑状态,而不是写一堆if/else。首先定义状态的通用接口:进入、更新、退出、输入处理。实现状态接口,根据状态的不同实现具体的行为。以游戏角色的不同状态为例。游戏角色拥有以下状态。
2025-10-26 14:52:59
210
原创 设计模式—观察者模式
就例如:你(观察者)订阅了UP主(被观察者),UP主更新视频时,平台会直接把更新提醒推送给你,你不用反复打开UP主主页查看。是一种行为设计模式,允许你定义一种订阅机制,可在对象(被观察者 Subject)状态发生变化时,能够自动通知依赖它的对象(观察者 Observer)。Console.WriteLine($"Publisher 发布消息: {content}");Console.WriteLine($"{_name} 收到消息: {message}");
2025-10-21 17:04:18
311
原创 设计模式-命令模式
3.具体命令 (Concrete Commands)**会实现各种类型的请求,具体命令自身并不完成工作,而是会将调用委派给一个业务逻辑对象。简单理解就是:你点外卖(调用者 = 你),外卖的订单(命令对象),餐厅(接收者 = 真正执行的人)你不需要餐厅怎么做菜,只需发送一个订单,餐厅就会执行。是一种行为设计模式,本质是将“**请求”或“操作”**封装成一个独立对象,从而可以用不同的请求对客户进行参数化,支持请求的排队、记录日志、撤销等操作。假设我们有一个遥控器(调用者),它可以控制灯(接收者)的开关。
2025-09-29 09:51:18
783
原创 C#封装(面向对象四大特性)
将_name和_age字段声明为private,这样它们只能在person类内部访问,外部无法直接访问。这实现了数据的隐藏。如果我们希望外部能够获取这些信息,但不能随意修改(或者修改时有一定的验证),那么我们可以使用属性(是将数据(属性)和行为(方法)捆绑在一起,并隐藏对象的内部实现细节,仅对外提供可控的访问接口。提供了公共方法DisplayPersonDetails是对外提供访问接口。
2025-09-28 14:47:35
188
原创 C#面向对象之多态
重写的方法会根据对象的实际类型(即引用指向的对象类型)来决定调用哪个方法,这就是多态的核心。编译时多态(静态多态):通过方法重载(Method Overloding) 和 运算符重载(Operator Overloading)来实现。运行时多态(动态多态):通过继承和接口实现,以及方法重写(Method Overriding)来实现。在C#中,多态主要体现在两种形式:编译时多态(静态多态)和运行时多态(动态多态)方法重载是指在同一个类中,多个方法具有相同的名称,但参数的数量或类型不同。
2025-09-16 22:03:24
258
原创 c#面向对象之抽象
让使用者不用关心对象的内部实现,只需要知道它能做什么。方法不用关心传进来的到底是圆还是矩形,只要是实现了。是隐藏系统的实现细节,向只向外部提供必要的功能接口。
2025-09-16 15:08:37
109
原创 C#封装学习笔记
在ExecuteRectangle类中,通过创建Rectangle类的实例,然后调用其共有方法,来执行操作。这样,主程序无法直接访问和修改矩形的长度和宽度,而是通过类提供的共有接口来进行操作,实现了封装。在以上的实例中length和width被声明为public,所以可以被函数Main()使用Rectangle类的实例r访问。成员函数Display()也被声明public,所以也能被Main()使用Ractangle类的实例r访问。public访问修饰符允许一个类将其成员变量和成员暴露给其他的函数和对象。
2025-05-12 23:03:13
324
原创 第一人称角色移动笔记1
一、准备工作publicTransform;_xRotation;_yRotation;CursorlockStateCursorvisiblefalse;//获取鼠标输入floatmouseX =InputGetAxis"Mouse X") *TimedeltaTimesensX;floatmouseY =InputGetAxis"Mouse Y") *
2025-04-06 17:05:31
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅