自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 重新开始C++--进一步了解指针

指向指针的指针: int i = 10; int* p = &i; //p指向一个int型的数 int** p1 = &p; //p1指向一个int型的指针;指向指针的引用:引用本身不是一个对象,所以不能定义指向引用的指针。但是指针本身是一个对象,所以存在对指针的引用。 int i = 10; int* p = &i; int*& r = p; //r是一个对指针p的引用 int j = 20; std::cout <&lt.

2020-11-03 10:34:25 140

原创 重新开始C++--初识引用与指针

引用相当于为对象另起了一个名字。#include<iostream>int main(){ int i = 10; int& j = i; //引用 int c = i; i = 5; std::cout << j << " " << c << std::endl; return 0;}由于j和i都指向同一个对象,因此i的值被改变,那么同样j的值也就改变了。输出:...

2020-10-29 20:09:18 170

原创 重新开始C++--类型选择建议

整型通常选择int:short太小,而long和int一般有一样的尺寸,数值超过了int则选择long long。执行浮点运算通常选double:float精度不够,而计算double所花的代价和float相差无几,某些机器上甚至更快。而long double的精度通常没有必要。数值不可能为负的时候选用无符号类型。...

2020-10-26 11:47:45 130

原创 简单讲委托中的Lambda

Lambda表达式即匿名函数,也就是没有函数名的函数,也可以表示闭包。与委托相配合,即可以将函数直接传入。 void Start () { string[] values = { "x", "y", "z" }; var actions = new List<Action>(); foreach (string value in values) { actions.Add(() => Debug.LogErr

2020-10-21 15:01:22 124

原创 简单讲可选参数和命名实参

如果某个操作需要多个值,而且有些值在每次调用时又往往是相同的,这时通常可以使用可选参数。 void Start () { OptionalParameters(1); OptionalParameters(1, 2); OptionalParameters(1, 2, 3); } void OptionalParameters(int x, int y = 20, int z = 30) { Debug.Log(x); Debug.Log(y); Debug.L

2020-10-15 20:27:54 225 2

原创 简单讲精简对象的初始化

public class Person { public string name; public int age; public Person() { } public Person(string name) { this.name = name; }}对于这样一个类,我们通常的初始化方法大概有一下几种:Person ps1 = new Person();ps1.name = "Ray";ps1.age = 18;Person ps2 = new Person(".

2020-09-29 15:30:16 344

原创 简单讲迭代器

https://blog.csdn.net/qq_27467821/article/details/98381395有转载很详细的讲解。今天主要讲一下观察迭代器的工作流程,先来看代码: void Start () { IEnumerable<int> iterable = CreateEnumerable(); IEnumerator<int> iterator = iterable.GetEnumerator(); Debug.Log("Start t.

2020-09-28 17:03:43 75

原创 简单讲可空类型

这个问题的起因源于C#当中,值类型无法直接设为null。原因:对于引用类型来说,其值是一个引用。而值类型的变量的值是它本身真实的数据。Nullable<T>:属性有HasValue和Value。如果存在一个非可空的值,Value就是这个值。反之则会抛出一个Exception。HasValue是一个Boolean属性,它表示是否存在一个真正的值。C#的语法糖:Nullable<byte>可以直接写作byte?。实例:我们申明一个可空变...

2020-09-24 14:39:25 197

原创 简单讲泛型

void Start(){ List<string> list = new List<string>(); list = MakeList<string>("Hello","there"); //或者MakeList("Hello","there")}List<T> MakeList<T>(T first, T Second){ List<T> list = new List<T>(); .

2020-09-22 16:41:38 93

原创 简单讲委托回调

delegate void myDelegate(string str);void Start(){ DoSomeShit("dododo", OutPut);}void Output(string str){ Print(str);}void DoSomeShit(string str, myDelegate callback){ Print("before callback~"); if (callback){ callback(s.

2020-09-22 14:58:39 145

原创 关于排序

冒泡排序O(n^2)原理:左右元素依次比较,将最大的放在右边,最后沉底,然后除了最后一个元素之外再进行上述步骤。最好的情况是直接是正序的,则可以在交换处加个标记,没交换的情况直接跳出。这样的复杂度就为O(n)。直接插入排序 O(n^2)原理:在逻辑上可以将数组分为两部分,前部分有序,后部分无序,从后一部分的数组中依次取出数字与前面有序部分从后往前依次比较,插入到合适的位置,直到后面部分没有元素为止。快速排序 O(nlogn)原理:先从元素中选择一个数作为基准,然后将整个...

2020-09-09 14:43:55 109

转载 Unity行为树AI

https://blog.csdn.net/s10141303/article/details/89249609

2020-01-13 14:57:38 303

转载 Lua--table.sort使用分析

Lua–table.sort使用分析在Lua中我们经常需要对table进行排序,官方也提供了排序的基本的函数。由于LuaTable的强大和灵活性,使用Table函数的时候我们需要严格注意各种坑点和注意事项 。table.sort基本使用菜鸟教程Luahttp://www.runoob.com/lua/lua-tables.html常见的坑点https://www.cnblog...

2019-11-25 15:36:19 252

原创 观察者模式 ---- C#

//保存所有的观察者对象的引用 并可以增加和删除观察者abstract class HandleObserver{ public IList<Observer> observers = new List<Observer>(); public void AddObserver(Observer observer) { obse...

2019-08-21 17:48:07 87

原创 观察者模式 ---- lua

DataWatcher ={ value, --数据 onValueChangeEvent, --回调时参数old value onKeyValueChangeEvent, --回调时参数key old value}function DataWatcher:New(value) local t = { value, ...

2019-08-21 16:00:17 321

原创 事件回调系统 ---- lua

Event ={}function Event:New() local e = {} setmetatable(e, Event) e.events = {} return eendfunction Event:Add(fun) if fun then self.events[fun] = fun end ...

2019-08-21 15:46:17 421

转载 C# 迭代器

https://blog.csdn.net/u013477973/article/details/65635737

2019-08-03 21:34:46 97

原创 Unity面试注意

C#(GC,装拆箱,ref/out,容器,迭代器),Lua(元表,面向对象),算法,数据结构,递归渲染(流程),性能优化。

2019-08-02 22:30:02 172

转载 Unity 性能优化归纳

1、SimpleLOD :除了同样拥有Mesh Baker所具有的Mesh合并、Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持。该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改。http://download.csdn.net/download/jasonczy/10178526一、...

2019-08-02 10:58:56 986

转载 对象池

对象池是Unity中经常会用到的一种减少内存开销的服务,可用于减少大量的对象创建和销毁带来的内存开销。using System.Collections;using System.Collections.Generic;using UnityEngine;public class ObjectsPool : MonoBehaviour { private static Objects...

2019-08-02 10:36:51 123

转载 关于Unity中的资源管理,你可能遇到这些问题

https://blog.uwa4d.com/archives/QA_ResourceManagement.html关键字AssetBundle资源制作 纹理\网格\材质\Shader\音频\动画Lightmap一、AssetBundle 相关Q1:Unity中的SerializedFile是怎么产生的?请问用Unload(false)可以清除吗?因为读取了Bundle里面的...

2019-07-26 12:06:22 1420

原创 Unity Shader 从未入门到已放弃(二十一)--高级 Bloom效果

Bloom.cs:private void OnRenderImage(RenderTexture source, RenderTexture destination) { if (material != null) { material.SetFloat("_LuminanceThreshold", luminanceThre...

2019-07-09 13:49:08 1135

原创 Unity TCP

大概流程:创建套接字 绑定套接字到ip和端口 侦听连接 接收连接 与客户端收发数据 返回等待另一连接 断开连接using System;using System.Collections;using System.Collections.Generic;using System.Net.Sockets;using System.Text;using System....

2019-07-05 17:11:00 631

原创 简单的寻路

一个矩阵,1为路,0为障碍,2为终点,4为查找的路。定义一个二维数组保存地图int[,] gPath = new int[6, 6]{ {0 , 0, 0, 0, 1, 1}, {1, 1, 0, 0, 1, 0}, {0 , 1, 1, 1, 1, 0}, {0 , 0, 1, 0, 1, 2}, {0 , 0, 1, 0, 1, 0}, ...

2019-07-04 17:30:27 183

原创 Unity Shader 从未入门到已放弃(二十)--高级 高斯模糊

高斯滤波高斯模糊使用了卷积计算,它使用的卷积核叫高斯核。高斯核的维数越高,模糊程度越大。实现首先创建cs脚本,利用两个临时缓存在迭代之间进行交替。private void OnRenderImage(RenderTexture source, RenderTexture destination) { if (material != null) ...

2019-07-04 11:10:03 326

原创 图集与DrawCall分析

之前总是想当然的认为,将N个纹理打包成一个图集,那么这个图集只会产生一个DrawCall,如果不打就产生N个DrawCall,后来才发现这并不是决定DrawCall的唯一因素,它还和层级关系有关······这里就会提到渲染的顺序问题,在渲染时默认会按照深度去渲染,也就是会先渲染离摄像机远的物体,后渲染离摄像机近的物体。例如你按顺序渲染三个物体A、B、C,A和C使用相同的材质1,B使用材质2,这...

2019-07-04 10:00:33 1016

原创 Unity Shader 从未入门到已放弃(十九)--高级 边缘检测

卷积常见的边缘检测算子边是如何形成的:如果相邻像素之间存在明显差别的颜色、亮度、纹理等属性,我们会认为他们之间存在一条边界。这种相邻像素之间的差值可以用梯度来表示,边缘处的梯度值通常较大。我们需要对每个像素进行一次卷积计算,得到两个方向上的梯度值,再计算得到整体梯度值:实现首先还是需要OnRenderImage函数来进行真正的特效处理:[Range(0.0f, 1...

2019-07-02 14:27:42 478

原创 Unity Shader 从未入门到已放弃(十八)--高级 亮度、饱和度、对比度

调整亮度、饱和度和对比度屏幕后处理效果:指在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列的操作,实现各种屏幕特效。因此首先需要得到渲染后的屏幕图像,Unity提供了一个方便的接口——OnRenderImage。但在进行屏幕后处理之前,我们需要检测一切条件是否满足,例如当前平台是否支持渲染纹理和屏幕特效,是否支持当前使用的UnityShader等。因此先创建一个基类用于检测条件:...

2019-07-02 11:02:19 319

原创 Unity Shader 从未入门到已放弃(十七)--中级 顶点动画

2D水流其原理通常是使用正弦函数来模拟水流的波动效果。Shader "myShader/Water"{ Properties { _MainTex("Main Tex", 2D) = "white" {} _Color("Color Tint", Color) = (1, 1, 1, 1) _Magnitude("Distortion Magnitude", Float...

2019-07-01 11:31:22 214

原创 Unity Shader 从未入门到已放弃(十六)--中级 纹理动画

纹理动画 序列帧在各种资源都比较局限的平台上,我们往往会使用纹理动画来代替复杂的粒子系统。我们需要一张包含关键帧图像的图像。Shader "myShader/ImageSequenceAnimation"{ Properties { _Color("Color Tint",Color) = (1,1,1,1) _MainTex ("Main Tex", 2D) = "w...

2019-06-29 15:10:52 130

原创 Unity Shader 从未入门到已放弃(十五)--中级

简单的程序纹理程序纹理是指那些由计算机生成的图像,我们通常使用一些特定的算法来创建个性化的图案或者非常真实的自然元素。使用的shader是之前用到过得一个纹理光照计算,然后创建一个cs代码,并赋给立方体来生成纹理:using System.Collections;using System.Collections.Generic;using UnityEngine;[Execu...

2019-06-29 11:45:00 278

原创 Unity Shader 从未入门到已放弃(十四)--中级

玻璃效果当我们在shader中定义了一个GrabPass后,unity会把当前屏幕的图像绘制在一张纹理中,以便我们在后续的pass中可以访问它。我们可以使用GrabPass来对物体后面的图像进行更复杂的处理,但需要额外小心物体的渲染队列设置。尽管代码不包含混合指令,但仍需要把渲染队列设置成透明队列。Shader "myShader/GlassRefraction"{ Properti...

2019-06-29 10:26:51 150

原创 Unity Shader 从未入门到已放弃(十三)--中级

镜子效果使用一个摄像机,使得它显示的图像是镜子图像,但需要它显示的图像用于渲染纹理,因此需要一个rendertexture来接收其图像。显示时需要在水平方向上翻转。Shader "myshader/Mirror"{ Properties { _MainTex("Main Tex", 2D) = "White"{} } SubShader { Tags{"Render...

2019-06-27 11:39:16 115

原创 Unity Shader 从未入门到已放弃(十二)--中级

菲涅尔反射菲涅尔反射描述了一种光学现象,即当光线照射到物体表面上时,一部分发生反射,一部分进入物体内部,发生折射或者散射。被反射的光和入射光之间存在一定的比例关系,这个关系可以通过菲涅尔等式进行计算。Shader "myShader/Fresnel"{ Properties { _Color("Color Tint", Color) = (1,1,1,1) _Fresn...

2019-06-27 10:39:00 138

原创 Unity Shader 从未入门到已放弃(十一)--中级

反射Shader "myShader/Reflection"{ Properties { _Color("Color Tint", Color) = (1,1,1,1) _ReflectColor("Reflection Color",Color) = (1,1,1,1) _ReflectAmount("Reflect Amount", Range(0,1)) = 1 ...

2019-06-26 16:30:40 104

原创 Unity Shader 从未入门到已放弃(十)--中级

更复杂的光照(二)使用Blinn-Phong模型Shader "My/Bumped Specular" { Properties{ _Color("Color Tint", Color) = (1, 1, 1, 1) _MainTex("Main Tex", 2D) = "white" {} _BumpMap("Normal Map", 2D) = "bump" {} ...

2019-06-20 09:47:20 236

原创 Unity Shader 从未入门到已放弃(九)--中级

更复杂的光照(一)一个融合了光源、阴影和光照等得标准光照着色器,使用了Phong模型。Shader "My/BumpedDiffuse" { Properties { _Color("Color Tint", Color) = (1,1,1,1) _MainTex("Main Tex", 2D) = "White" {} _BumpMap("Normal Map", 2D)...

2019-06-19 16:39:07 133

原创 Unity Shader 从未入门到已放弃(八)--初级

双面渲染的透明效果在之前实现的透明效果中,都无法观察到正方体的内部以及背面情况。这是因为默认情况下引擎剔除了物体背面的渲染图元。如果我们想得到双面的渲染效果,可以使用Cull指令来控制需要剔除哪个面的图元。透明度测试的双面渲染只需要在之前的Pass中,添加上Cull Off,直接关闭剔除功能。得到如图效果:透明度混合的双面渲染因为透明度混合关闭了深度写入,所以会更复杂一...

2019-06-18 10:23:56 147

原创 Unity Shader 从未入门到已放弃(七)--初级

透明效果渲染顺序Unity为了解决渲染顺序的问题提供了渲染队列这一解决方案。我们可以使用SubShader的Queue标签来决定我们的模型将归于哪个渲染队列。透明度测试AlphaTest,透明度混合Transparent。透明度测试 SubShader{ Tags{"Queue" = "AlphaTest" "IgnoreProjector" = "True" "R...

2019-06-17 11:26:33 171

原创 Unity Shader 从未入门到已放弃(六)--总结

基础知识总结篇数学函数相关normalize(<Vector v>): 归一化向量,返回一个和参数方向相同但长度为1的向量。dot(<Vector v1>,<Vector v2>):向量点积,返回一个标量,用于求出一个向量到在另一个向量上的投影值、判断两个向量是否垂直、以及两个向量间加载的余弦值(使用两个归一化向量做点积)。cross(<...

2019-06-15 10:57:11 582

Easy Movie Texture Video Texture Errr.rar

用于制作视频

2020-03-16

UGUI-superScrollView.rar

该资源为SuperScrollView,内包含多个ScrollView的Demo,各种例子,保证能用

2019-07-12

unity内嵌网页3.4版本

可以直接在unity内部调起网页,无需外部打开,导入后可以直接使用,使用方便

2019-06-12

Unity无限翻页插件

支持无限翻页,横向竖向都可以,方便可以直接使用,参数均可动态设置

2019-06-12

DateforUnity.rar

Unity打开package导入后可以直接使用的一个日期插件,亲测可以直接使用

2019-06-12

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

TA关注的人

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