自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 关于Unity的A*巡逻算法

A*巡逻算法:根据估量代价,起点估量代价和终点估量代价来寻路,如果遇到障碍物的话,即便代价再小也不会去寻路。(估量代价:可以理解为从某一点到终点所用的距离)先排序,排序出来最小的估量代价。从最小的估量代价为起点再计算估量代价。以起点作为中心发散的不再计算。当过中心格子的放到列表里面,不参与综合估量代价计算发现者机制,一个格子被发现回溯机制起点估量代价【G】+终点估量代价【H】=综合估量代价【F】...

2022-01-06 09:34:39 2086

原创 c#设计模式之观察者模式

很多观察者想要观察被观察者的状态,因此委托⼀个通知者去观察,观察到变化后,通知给所有参与的观察者class Program{ static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteOb...

2021-10-14 17:37:56 111

原创 c#设计模式之外观模式

别有洞天。外观模式使⽤⼀个类作为外观去接触客户,内部管理各个⼦系统。class Program{ static void Main(string[] args) { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); Console.Read(); }}class SubSystemOne{ public void MethodOne() { Console.WriteLine(" ⼦系统...

2021-10-14 17:29:24 114

原创 设计模式之装饰模式

装饰类是抽象组件类的⼦类,继承并扩展它。通过构造传输具体组件⼦类,进⾏装饰操作,可以是装饰字段,也可以是装饰⽅法using System;using System.Collections.Generic;using System.Text;namespace 装饰模式{ class Program { static void Main(string[] args) { ConcreteComponent c = new ConcreteComponent(); Concret...

2021-10-13 20:04:33 94

原创 设计模式之策略模式

类似简单工厂模式上下⽂类通过构造传⼊具体的策略对象,实现具体策略算法,从⽽返回不同的策略结果abstract class CashSuper{ public abstract double acceptCash(double money);}class CashNormal : CashSuper{ public override double acceptCash(double money) { return money; }}class CashRebate : C...

2021-10-13 16:58:14 66

原创 简单工厂模式

简单⼯⼚类通过不同参数,返回不同的功能对象,通过返回的对象执⾏相应的操作using System;using System.Collections.Generic;using System.Text;namespace OperationLibrary{ /// <summary> /// 运算类 /// </summary> public class Operation { private double _numberA = 0; private d..

2021-10-13 16:45:45 56

原创 设计模式之开闭原则

开闭原则(OCP:Open Closed Principle)【总则】 在⾯向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是 对于修改是封闭的”,这意味着⼀个实体是允许在不改变它的源代码的前提下变更它的⾏为。该特性在产品化 的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的⽤以确保产 品使⽤质量的过程。遵循这种原则的代码在扩展时并不发⽣改变,因此⽆需上述的过程。定义对扩展开放,对修改关闭扩展:添加新代码(类)修

2021-10-12 21:27:46 54

原创 接口隔离原则

客户端不应该依赖它不需要的接⼝。⼀个类对另⼀个类的依赖应该建⽴在最⼩的接⼝上。定义: 使⽤多个专⻔的接⼝⽐使⽤单⼀的总接⼝要好,但也不建议⼀个接⼝只对应⼀个⽅法。⼀个类对另外⼀个类的依赖性应当是建⽴在最⼩的接⼝上的。⼀个接⼝代表⼀个⻆⾊,不应当将不同的⻆⾊都交给⼀个接⼝。没有关系的接⼝合并在⼀起,形成⼀个 臃肿的⼤接⼝,这是对⻆⾊和接⼝的污染。接⼝的正确定义 既不能⼤⽽全,也建议不能⼀个接⼝⼀个⽅法 应该按照功能的密不可分来定义接⼝ 应该是动态的,随业务变化⽽变化,设计的时候要留好提前量

2021-10-12 21:08:14 68

原创 依赖倒置原则

程序要依赖抽象接口,不要依赖具体的实现,简单的说就是对抽象进行编程不要对实现进⾏编程,这样就降低了客户与实现模块间的耦合定义 ⾼层模块不应该依赖于低层模块,两者应该依赖抽象,⽽不是依赖细节。⾼层:⽅法调⽤⽅底层:被调⽤⽅ ⾯向抽象编程 属性、字段、⽅法参数、返回值,⼀切都尽量使⽤抽象【类/接⼝】 抽象不变,⾼层就不变抽象⼀般是稳定的,低层的扩展变化不会影响到⾼层,低层就可以横向的⾃由扩展,架构稳定 80%的设计模式跟抽象有关抽象的好处⼀个⽅法可以满⾜不同类型的参数传⼊ ⽀持动态扩展,

2021-10-12 21:05:02 63

原创 c#设计原则(迪米特法则)

定义:一个对象应该对其他对象保持最少的了解,只与直接朋友进行通信类与类的关系纵向:继承关系横向:聚合、组合、关联、依赖⾼内聚、低耦合降低耦合度的方法降低耦合度的⽅法1. 少使⽤类的继承,多⽤接⼝隐藏实现的细节。2. 模块的功能化分尽可能的单⼀,道理也很简单,功能单⼀的模块供其它模块调⽤的机会就少。(其实这是⾼内 聚的⼀种说法,⾼内聚低耦合⼀般同时出现)。3. 遵循⼀个定义只在⼀个地⽅出现。4. 少使⽤全局变量。5. 类属性和⽅法的声明少⽤public,多⽤pr

2021-10-12 17:54:26 154

原创 c#设计原则(里氏替换原则)

主张使用抽象和多态将设计中的静态结构改为动态结构定义任何使用基类的地方可以安全地去使用其子类父类有的子类必须有(强继承)如果父类中出现了子类不该有的方法,那么应该立刻断开关联创建新的父类,包含子类应该拥有的方法子类必须有自己的行为和特征父类中有的方法,子类中不要用New关键字隐藏父类方法如果子类希望可以重写父类中的方法,父类用abstract或者virtual...

2021-10-12 17:39:51 71

原创 c#设计原则(一)

单一职责原则一个模块只负责一件事一个类只负责一件事一个方法只负责一件事如何遵守单一职责原则定义抽象父类或者父类的虚方法子类继承后重写,不同的实现单一职责的不同层面1.方法为单位一个方法只负责一件事2.类为单位一个类只负责一件事不属于该类的内容,创建新的类去封装3.模块为单位一个模块只负责一件事不属于该项目的内容,交由属于的模块去负责实例:不同动物的叫声处理,喊叫⽅法中多个分⽀,还是不同类不同喊叫⽅法using UnityEngine;

2021-10-12 17:10:04 113

原创 对于抽象的再学习与总结

什么是抽象?百度百科这样解释:抽取共同的,本质的特征。这里应该使用了面向对象的思想。注意:抽象类不能被实例化。继承抽象类的话,抽象类中的抽象方法必须被重写抽象类可以包含非抽象方法继承的子类没有实现所有的抽象方法,这个类就是抽象类只有抽象类才可以有抽象方法只有abstract,没有方法体,只是定义...

2021-10-12 16:51:18 73

原创 Unity实现简单的背包

手打

2021-10-11 21:53:03 874

原创 Unity排行榜功能(使用MVC框架)

要求:实现如图所示UI界面,按下某一按键实现排行榜的更新

2021-10-11 13:40:50 2569 2

原创 Unity协程

using System.Collections;using System.Collections.Generic;using UnityEngine;public class CoroutineTest : MonoBehaviour{ //1s/3s/5s 分别去做某一件事 float timer = 1; float timer3 = 3; /* * 1.什么是协程? * 协程是一段在主线程中执行的代码逻辑 * 协程在每帧结束.

2021-10-10 20:39:35 848

原创 实现摇杆功能

搭建UI创建两个UI->Image创建一个Cube

2021-10-10 20:14:14 129

原创 通过鼠标实现拖拽功能

Unity中的几个接口IPointerEnterHandler,IPointerDownHandler,IPointerUpHandlerIPointerClickHandlerIPointerExitHandler,IDragHandlerpublic void OnDrag(PointerEventData eventData) { Debug.Log("鼠标拖拽"+eventData.position); Debug.Log("UI坐标" + tr

2021-10-10 15:59:36 293

原创 通过Slider来控制方块的旋转速度

搭建UI界面编写代码using System.Collections;using System.Collections.Generic;using UnityEngine;public class L9Slider : MonoBehaviour{ public Transform cubeTF; private float speed = 20; void Start() { } public void Slide

2021-10-10 15:44:26 404

原创 技能冷却功能实现

搭建UI界面

2021-10-10 15:28:18 327

原创 关于Unity血条的实现

要求:实现按下某一按键血条块与血量数值增加或者减少

2021-10-10 13:22:09 2067

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除