自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法思想和例题讲解

贪婪的商人总是想获得最大的利润,每一次交易都想获得最大利润,而不为长远考虑。定义贪婪算法:总是做出在当前最好的选择。而不是从整体上考虑,它所做出的仅仅是在局部上的最优解。所以贪婪算法必须保证无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。步骤把求解的问题分成若干个子问题;对每一子问题求解,得到子问题的局部最优解;把子问题的解局部最优解合成原来解问题的一个解。例...

2019-12-17 13:54:07 397

原创 设计模式基本概述

设计模式的概念设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。我们可以将设计模式理解为我们经常使用的数学公式,对于求解一类问题,我们套用这个数学公式,就可以求出正确答案。为什么要使用设计模式...

2019-12-15 11:05:23 180

原创 动态规划的经典案例讲解

不懂动态规划定义或者思想的可以看这->动态规划思想动态规划主要解决两类问题:1.最优子结构性质的问题(即它的最优解可以从其子问题的最优解来有效地构建)2.相互重叠的子问题那么就围绕这两类问题,看一些经典的动态规划的案例!案例一:爬楼梯问题(最优子结构性质问题)那如何应用动态规划的思想求第N阶台阶的可能呢?1.首先拆分问题:第N阶台阶可能是从第N-1台阶上去的,也可能是从第N-2...

2019-12-10 16:43:48 482

原创 动态规划思想和例题讲解

定义动态规划(英语:Dynamic programming,简称 DP),通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。其思想非常简单,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。步骤1.拆分问题2.找到子问题之间的关系(类似写出推导公式)3.保留子问题的最优解例题看完定义和步骤后,基本不理解,然后根据题来理解:题目:最大子序和解法1:暴力法...

2019-12-10 15:38:11 275

原创 回溯算法经典例题讲解

Unity 文档的查看方式

2019-12-09 11:17:35 307

原创 回溯算法思想和例题讲解

定义回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “回溯” 返回,尝试别的路径。回溯算法类似于我们面对岔路口时,不知如何选择,我们可以一条路一条的路的走,如果走到死路,则返回到岔路口,继续走下一条路,直至到达我们的目的地。例题——生成括号问题先上代码:public static List<String> gener...

2019-12-08 17:38:20 347

原创 分治和动态规划的区别和联系

transform.parent

2019-12-08 17:37:46 1200

原创 单例模式的使用

单例模式的使用单例模式的使用

2019-11-29 10:41:31 80

原创 Unity Arpg学习

Unity Arpg学习123

2019-11-27 10:37:25 561

原创 C#.委托加泛型方法的使用

C#.委托加泛型方法的使用C#.委托加泛型方法的使用

2019-11-18 17:36:08 197

原创 七大面向对象设计原则及其举例

2.transform.up和Vector.up的比较

2019-11-08 16:40:33 1255

原创 C# Socket网络编程 服务器和客户端

服务器端://1.创建socket (1)本地的网络(2)采用流形式(3)使用Tcp协议Socket tcpSever =new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//2.绑定IP地址和端口号 10.128.55.3IPAddress ipAddress=new IPAd...

2019-10-30 19:42:11 291

原创 下载Resharp后 代码出现绿色蓝色波浪线等警告

下载Reshaper之后,发现很多代码下面会出现警告的波浪线,绿线蓝线波浪线等警告,对于一个有强迫症的程序猿来说,这样的代码看着太恶心了!所以研究了一下,找到了解决的方法。之所以出现波浪线的问题,是因为我们编写的代码不符合编辑器的要求,但是我们的代码是没有错误的,注意是错误。所以我们要更改配置器的一些配置,以满足符合我们的编码习惯。##1.打开ReSharper下的Manage Options...

2019-10-30 19:30:50 2906 1

原创 C# StringBuilder

在Java中,我们可以使用stringbuffer来应对频繁更改字符串的问题,在C#中,同样也有StringBuilder,两者的功能十分类似。StringBuilder的创建StringBuilder sb = new StringBuilder("xxx");//使用构造器进行创建StringBuilder sb1=new StringBuilder(20);//创建一个空的String...

2019-10-22 17:49:24 260

原创 C#string常用方法总结

//CompareTo比较方法string s = "b";Console.WriteLine(s.CompareTo("a"));Console.WriteLine(s.CompareTo("b"));Console.WriteLine(s.CompareTo("c"));//结果为int 类型 以s为基础,字母顺序在s前面的为1,后面的为-1,相等为0./*10-1*/...

2019-10-22 17:20:17 207

原创 C#泛型类和泛型方法

泛型可以理解为广泛的类型,或者不确定的类型,也就是说允许我们编写一个可以与任何数据类型同时运行,且不报错的方法或者类。泛型类泛型类是指这个类的某些字段的类型是不确定的,只有在构造的时候才能确定下的类。泛型类示例class Program { static void Main(string[] args) { MyClass&l...

2019-10-21 20:31:47 1028

原创 C#List列表

当我们使用了很多类型相同的数据的时候,我们通常使用数组来对这些数据进行存储,但是这样有一个缺点,就是数组的大小是固定的,如果我们大小可变的数组,那么我们就需要List列表了,同时列表可以很方便进行的添加数据,删除数据等操作!列表的创建List<int> aList=new List<int>();//第一种创建方式var bList=new List<int&g...

2019-10-20 13:22:58 641

原创 C# 接口Interface

定义C#中的接口和我们日常生活中使用的硬件接口的概念其实类似,日常生活中接口的形状决定了能插入这个接口的物体的形状,所以C#中接口决定了实现该接口的类或者结构在形式上保持一致!声明的实例interface IMyInterface{ void Method();}这是一个接口的简单实例,下面有一些注意事项:1.接口使用 interface 关键字声明,它的声明和类比较类似。...

2019-10-20 12:10:16 274 1

原创 C# 派生类的构造函数

我们需要经常使用构造函数,因为构造函数在类的对象声明的时候就可以完成对变量进行初始化。同时我们也使用派生类继承基类的一些字段和方法。那么在派生类的构造函数的执行顺序是什么样的呢?示例class Program{ static void Main(string[] args) { Son son=new Son(); }}c...

2019-10-19 20:20:43 320

原创 C# 密封类和密封方法的定义和使用

在我们的日常写代码中,类通常是允许被继承的,这样就会导致一个问题,所有的类都可以被其它类继承,导致来回继承,使代码的层次结构非常混乱,所以C#提供给我们了:密封。密封类密封类就是为了限制类的可继承,如果某个类是密封类,则这个类是不能被继承的,所以这个类也没有子类。访问修饰符 sealed class 类名{ //具体的成员}通过 sealed 关键字对类进行密封。同时方法密封...

2019-10-19 12:47:56 636

原创 C# 抽象类和抽象方法的定义和使用

C# 允许把类和函数声明为abstract,分别称为抽象类和抽象方法。抽象函数就是只有函数的定义没有函数体的函数:public abstract void Attack();//抽象函数如果一个类中含有抽象的函数,那么这个类必定是抽象的,也就是说必定是抽象类: abstract class AttackBase { public void AttackName()...

2019-10-19 12:25:51 1175

原创 C# 虚方法

class Program { static void Main(string[] args) { People people=new People();//People 没有基类,只能调用自己的Sex()方法 people.Sex(); Boy boy=new Boy(); ...

2019-10-18 19:19:14 148

原创 C# 继承的定义和基本使用

继承继承是面向对象编程的重要表现,继承就是以一个类为基础,其它类在此类的基础上进行开发,这个类称为基类,其它类称为派生类。这样可以使代码的结构更加合理,更易于维护和更新,增加代码的可重用性。实例我们定义一个“人”类,其中包括:姓名字段,年龄字段和一个方法。定义一个男孩类,继承自“人”类定义一个女孩类,继承自“人”类class People{ private string n...

2019-10-18 18:48:09 700

原创 C# 属性的定义和基础使用

属性的结构:修饰符 类型 属性的名字{ set{ //set代码 } get{ //get代码 }}属性的结构注意事项:1.定义属性需要属性的名字和类型。2.属性包含get块和set块,每种块最多有一个,一个属性里面不允许出现两个相同的块,同时一个属性中,必须要有get块或se块中的一个。3.简写的属性:public int Myint { s...

2019-10-16 13:46:39 1067

原创 C# 构造函数的定义和基本使用

构造函数 Constructor主要负责在类的对象声明的时候完成对变量的初始化。如何初始化呢?怎么体现它的优势呢?看下面两组代码:1.未使用构造函数class Program { static void Main(string[] args) { MyClass my=new MyClass(); my....

2019-10-15 19:34:02 564 2

原创 C# 异常处理 try catch finally

先上代码:class Program { static void Main(string[] args) { int[] num = {1, 2, 3, 4, 5}; try { int my = num[5]; } ...

2019-10-15 17:52:50 198 1

原创 C# params参数数组 和数组参数比较

params 参数数组,可变参数 class Program { static int Sum1(int[] array) //数组参数 { int sum = 0; for (int i = 0; i < array.Length; i++) { ...

2019-10-15 17:38:25 744

原创 C# 结构函数的基本使用

在日常写代码的过程中,可能会遇到以下的问题:往往调用结构体中的属性的时候,因为属性较多,比较繁琐。```csharp```csharp```csharp struct Name { public string FirstName; public string LastName; } class Program { ...

2019-10-14 18:21:58 463

原创 C# 结构体的定义和基本使用

平常使用中,我们经常需要定义多个变量,变量的类型也可能不同,这就需要我们定义很多的变量,比较繁琐。比如需要定义场景中两个游戏物体的位置: //物体一 float GameObjectx=1; float GameObjecty=2; float GameObjectz=3; //物体二 float GameObject1x = 1; float G...

2019-10-14 12:54:11 3068

原创 C#枚举类型的定义和基本的使用

C#枚举类型算是一个比较基本的类型了。整理一下。定义枚举类型是具有一组命名常量的独特的值类型。例1:enum GameState{ Start, Failed, Success, Pause}例2:public enum Color:byte{ Red, Green, Blue}这里以例1为例,声明了一个GameS...

2019-10-14 12:16:08 5835 1

原创 C#基础知识点,查漏补缺

1.简单的快捷键Home键 光标跳转到此行代码的开头End键 光标跳转到此行代码的末尾PageUp PageDown滑动条移动2.C#标识符:字母和下划线可以放在任何的位置,数字不能放在首位,@只能放在首位(标识符中不能有.)3.一般情况下 变量的首字母不大写,其余单词的首字母大写方法和类的首字母大写,其余单词的首字母大写4.格式化字符串:用分号隔开的数字 string.For...

2019-10-13 14:14:07 173

原创 Unity 导入模型资源后,贴图丢失,并报错Unsupported DDS file

今天在导入模型的时候遇到了这个问题:导入模型后,发现里面的贴图文件都无法识别,将模型拖入游戏中,理所当然贴图丢失了。同时还报错:Unsupported DDS file意思就是不支持DDS文件。解决方法1.点击无法识别的贴图文件,并右键Show in Explorer。2.将贴图文件的.dds的后缀更改为.png3.回到Unity, Unity 就会自动帮我们重新加载贴图,可以识...

2019-10-10 18:44:55 4900 4

原创 Vuforia ARcamera的相关属性和配置详解

ARcamera的主要功能1.调用设备的摄像机2.各种Behavior的接口注:Default …Error Hander 此脚本负责错误调试。Vuforia属性World Center Mode:世界中心模式(如图中的4种)SPECIFIC_TARGET 指定物体作为世界坐标的中心FIRST_TARGET 第一个目标物体作为世界坐标的中心CAMERA ...

2019-10-09 13:58:48 2562

原创 Unity 自定义Android返回键或开启默认的Android返回键

当Unity项目在手机上运行时,如果没有对Android返回键进行设置,点击手机的返回键是没有效果的,这显然不符合我们的使用习惯,我们可以自定义返回键的操作或者开启默认的Android返回键。1.void Update(){ if (Input.GetKeyDown(KeyCode.Escape)) { //具体的操作,例如弹出退出界面 }}...

2019-10-06 17:26:39 974

原创 Unity Touch类的基本方法和手指追踪Demo

Touch类phase共有5个状态,分别是:Began 开始状态Moved 移动状态Stationary 不动状态Ended 结束状态Canceled 取消状态手指追踪Demo步骤如下:1.新建Sphere,并Reset;2.添加Trail Render效果组件3.为TrailRender组件添加材质。4.将Sphere设置为预制体5.将...

2019-10-06 14:43:18 989

原创 Unity 屏幕自适应的三种方法(UI控件/Canvas/摄像机视口)总结

经常会用到Unity 自适应的问题,今天来总结以下三点。1.UI控件自适应UI控件(Button,Image等)的自适应是用的最多的,通常通过锚点的设定,来完成UI控件的适应。根据UI控件需要锁定的不同位置,设置锚点的位置。2.Canvas自适应不同的设备,分辨率不同,这时候Canvas需要根据不同的分辨率缩放,需要设置Canvas组件上的Canvas Scale脚本 的UI Scale...

2019-10-06 12:15:01 13420 2

原创 C# 委托基础和使用

1.什么是委托?如果要把方法当作参数来传递,就需要用到委托,或者说委托是一个类型,这个类型可以赋值一个方法的引用。2.声明委托在声明委托之前,我们需要定义委托。委托的定义语句需要定义方法的参数和返回类型,并且使用delegate关键字定义。delegate void My(int x);声明了一个名为My的委托,这个委托可以指向带有一个int类型参数,并且返回类型为空的方法,其它类型的...

2019-10-04 13:33:05 105

原创 Unity 寻找子物体的几种方式比较

经常遇到寻找子物体的问题,寻找子物体有很多种方法,今天就来整理一下:所有的方法都以图下的物体列表进行比较,同时将脚本挂载在父物体上。1.GetComponentsInChildren()这个是获取所有子物体(包括父物体)的方法。Transform[] myTransforms = GetComponentsInChildren<Transform>();foreach (v...

2019-09-28 14:15:43 15925

空空如也

空空如也

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

TA关注的人

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