- 博客(38)
- 收藏
- 关注
原创 自动化打包
Jenkins之Windows msi按照过程中Invalid Logon_Ox80070533_MyFreeIT的博客-优快云博客shell : C:\\Program" "Files\\Unity\\Hub\\Editor\\2019.4.24f1c1\\Editor\\Unity.exe -batchmode -quit -executeMethod Framework.Editor.Build.JenkinsBuild -logFile $WORKSPACE\\teama\\slg\\B
2021-07-21 18:10:20
275
2
原创 unity 广告统计接入踩坑记录,appsflyer、ironsource、facebook、友盟等等
unity18 19现有的很方便的sdk接入自动依赖下载,其中也有一些坑一一记录下来公司老项目sdk接入实在是乱的不行,由于现在开发休闲游戏,每个项目都要使用sdk,于是就自己接了一套以便后续使用。安卓友盟导入就可以用facebook需要点Facebook->设置app idIronsource -> admob 需要在manifest里面添加id,官网文档有ironsource导入后,点IronSource->Integration Manager->选择需要的
2020-11-30 10:49:34
2619
4
原创 UGUI实现不规则形状图片触发
效果如下有两种比较主流的实现方式,一种是根据图片像素的alpha值来判断是否触发响应,还有一种是自己框选一个多边体,判断点击位置是否在多变体内。第一种像素使用限制颇多,但是也有一定的使用场景,https://www.cnblogs.com/msxh/p/9283266.html,这里马三详细说了使用方法和限制我在这里实现的是第二种计算的方式P点是鼠标位置,ABCD是多边形的点,如果图上对每个点计算叉乘的方向都是一致,那我们可以得出P点在多边形内部,有一定的叉乘知识应该可以推出来。叉乘可以
2020-06-08 18:00:26
634
原创 Unity使用shader实现高性能小地图
这是结果图和对应的网格图,网格图把上面多于的字体和路径删了,只留下背景地图和小图标,只使用了一张image就可以实现地图和多个小图标在写之前查了好多小地图的写法,这里有三种在地图下面铺一张图片,每个需要显示的角色身下再来一张icon的image,正交相机从上面照着角色。好处是不用控制相机的位置和icon的位置,npc monster脚下自带,主角移动到周围就自动显示,但是需要新加相机,每个需要显示icon的物体都要新加一张图片。 ugui原生图片,通过计算移动地图的位置和生成icon,上面加一
2020-05-29 17:27:16
2060
7
原创 泛型,委托,闭包
32、总是优先考虑泛型例如实现自己的List类33、避免在泛型类型中声明静态成员如果不想要不同类型共享相同是属性,就别定义静态成员34、为泛型参数设定约束为泛型添加约束后,可以使用约束相应的功能 例如new() 或者 :Person(某个自定义的类)35、使用default为泛型变量指定初始值if(){ return xx;}else...
2019-08-06 10:56:49
1144
转载 使用 Visual Studio 2017 编译 Lua 源码
转载保留版权:晨旭的博客»《使用 Visual Studio 2017 编译 Lua 源码》本文链接地址:https://www.chenxublog.com/2018/12/04/use-visual-studio-2017-compile-lua-source-code.html首先去官网下载源码:https://www.lua.org接着打开vs,如果...
2019-07-15 17:08:30
1120
1
转载 Lua中表取长度深度解析
作者:糊涂小蜗牛链接:https://www.jianshu.com/p/1e8ab8fe55e4来源:简书取长度使用到的函数 /* ** Try to find a boundary in table 't'. A 'boundary' is an integer index ** such that t[i] is non-nil and t[i+1] is...
2019-07-15 17:02:11
2261
1
转载 Lua之table新增整数键值
作者:糊涂小蜗牛链接:https://www.jianshu.com/p/42d7d0b82708来源:简书lua表分为数组和散列表部分,数组部分从 1 开始作为第一个索引,散列表部分要求键值不能为 nil。因为表包括散列表和数组两部分数据,所以一个以正整数作为键值的数据写入lua表时不确定是写入了数组还是散列表中。接下来讨论这部分的操作原理。虽然正整数作为键值的数据写入lua表时不确定...
2019-07-15 17:01:50
1770
2
翻译 DirectX、Direct3D、OpenGL的区别(DX、D3D、OpenGL)
翻译自:https://www.extremetech.com/computing/54604-top-tip-what-are-opengl-direct3d-directx-etc首先一点澄清:DX包含D3D,D3D是DX的主要图形处理部分,OpenGl从某方面来说是一个API。一个游戏开发者,或者任何图形学程序员,都能选择是否去使用DX或者OpenGl的API。如果他们想要能完...
2019-04-15 12:46:26
10731
1
原创 用C#实现一个简易的软件光栅化渲染器和第一人称相机
主要参考博客:https://blog.youkuaiyun.com/aceyan0718/article/details/51659381文本能力有限,没错,下面的话基本也是抄的。。这是一个用C#+winform实现的软件光栅化渲染器,今天拿出来与大家分享一下,希望能起到抛砖引玉的作用,给新人一点启发(结构比较简单,注释比较详细^_^)(新人+1,也给我很多启发),也欢迎司机们拍砖指点和交流~...
2019-03-17 10:34:14
1092
原创 转置矩阵,矩阵的行列式,伴随矩阵,逆矩阵的概念及C#求解
转置矩阵 定义 性质 ,矩阵的转置矩阵的行列式等于这个矩阵的行列式。 ,注意因子反转的次序。以此可推出方块矩阵A是可逆矩阵,当且仅当AT是可逆矩阵,在这种情况下有 (A−1)T= (AT)−1。 两个纵列向量a和b的点积可计算为 ,转置是自身逆运算。 即称该矩阵为正交矩阵,因为...
2019-03-05 15:29:01
11941
原创 矩阵和矢量的叉乘推导和简单实用
矩阵的叉乘二维矩阵假设a(a1,a2) b(b1,b2)aXb = a1b2 - a2b1 几何意义就是 aXb是a b组成的平行四边形的面积接下来来证明S(a,b) = ab*Sin<a,b> = b X a = a2b1 - a1b2Sin<a,b> = Sin(α - β) = SinαCosβ - CosαSinβ =* -* =...
2019-02-26 12:55:36
25213
1
原创 矩阵和矢量的点乘推导及其简单应用
矩阵点乘 A中第一行乘B中第一列的和为结果第一行和第一列的值 1*0+1*1=1 1*2+1*1=3 1*3+1*2=5 2*0+0*1=0 2*2+0*1=4 2*3+0*2=6矢量点乘float Dot =v1.magnitude * v2.magnitude * Mathf.Cos(ang * Mathf.Deg...
2019-02-25 19:39:04
2986
原创 .net Enum Flags特性
/// <summary>/// 当添加了[flags]属性,编辑器会认为一个位代表一个枚举/// 所以当出来 0x0000 0011 的时候,会变成前两个枚举的值/// </summary>[Flags]enum Weekdays{ /// <summary> /// 为了更方便看出来枚举的位运算,才这样写 /// 正常可...
2019-01-21 15:52:05
441
原创 Unity Scroll View在使用布局的情况下自动更改大小,layout group,content size fitter,layout element
问题:很多时候我们需要在一个scroll view里面,content的大小随内容的大小变换,同时content还要使用layout group来使下面保持一定的规格排列,比如上面的vertical layout group,再同时,还需要下面的子物体的大小随自己的子内容来动态改变例如聊天框 便捷任务框之前我想只用这两种方式来解决,后来发现,使用layout group之后...
2018-09-20 11:20:09
11714
7
原创 Unity 跳转到应用商店评价app,跳转到Facebook某个界面,判断手机是否安装某个APP
private void OnGUI() { if (GUI.Button(new Rect(500, 500, 300, 150), "谷歌商店")) { openAPPinMarket(Application.identifier); } if (GUI.Button(new Rect(...
2018-09-12 16:26:24
3604
原创 Unity 动态 NavMesh 导航AI
如果对基础NavMesh不了解的同学,这一篇文章基础讲的很详细,虽然有点早,不过放到现在也很实用http://liweizhaolili.blog.163.com/blog/static/16230744201271161310135/ 实现动态NavMesh有两种方法,一种使用unity自带的 NavMeshObstacle,正是下面我要讲的,还有一种是Unity5.6之后官方出的一...
2018-09-06 23:19:42
4473
4
原创 Unity,将控制台输出的warning、error、log显示到游戏界面中,以便打包出来测试使用
前几天项目要上线,打包出来的放到安卓手机上出现了bug,但是在编辑器里面却没有报错,所以我们主程就写出来了这一个功能来调试bug,我觉得很好用,所以拿出来分享一下主要就是一个回调函数Application.logMessageReceived Application.logMessageReceived += HandleLog; gameObject.AddCompon...
2018-09-01 21:43:03
5909
1
原创 .net 解析string字符串驻留,恒等性
static void Main(string[] args){ string s1 = "abc"; string s2 = "abc"; Console.WriteLine(ReferenceEquals(s1,s2)); string s3 = "a"; string s4 = "bc"; string s5 = s3 + s4; ...
2018-08-13 18:38:53
648
原创 .net---解析const和readonly,class和struct,接口和抽象类,is和as,覆写和重改,深浅拷贝,静态和非静态
const和readonly区别:1.const必须在定义时初始化,readonly则可以在构造函数里面初始化,也就是说const是编译时常量,readonly是运行时常量,所以const更高效,而readonly更灵活,在应用上推荐使用static readonly来代替const,以平衡const在灵活性上的不足,同时客服编译器优化const性能时,所带来的程序集引用不一致的问题2...
2018-08-13 13:37:45
358
原创 .net -- 方法表new,override
class Number{ public static int i = 123; public virtual void ShowInfo() { Console.WriteLine("Base Class ----"); } public virtual void ShowNumber() { ...
2018-08-12 22:02:36
211
转载 .net源码分析 – List<T>
原博客地址:http://www.cnblogs.com/brookshi/p/5353021.html通过分析源码可以更好理解List<T>的工作方式,帮助我们写出更稳定的代码。List<T>源码地址:https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Col...
2018-08-12 16:41:21
740
1
转载 .net源码分析 -- Dictionary
原文地址:https://www.cnblogs.com/brookshi/p/5402820.html想简单了解可以看这一篇:http://developer.51cto.com/art/201507/485988.htm简单总结字典的生成按照质数表来分配对应的 buckets 和 entries大小,按照key的hascode取正对buckets.length取余,求出对应buck...
2018-08-12 16:13:19
1147
转载 【学习笔记】c#中的IComparable和IComparer
原文地址:https://www.cnblogs.com/pizzabig/p/5341088.html仅仅为了自己查看方便。 在c#中自定义类型实现比较和排序需要自定义类实现IComparable接口,需要实现一个名为CompareTo的方法,返回值为int唯一参数为object。 1.创建一个员工类包含Id Name Salary三个属性 继承自IComparable接口并...
2018-08-04 00:28:33
483
原创 C++ 运算符重载
这个一个简单的运算符重载,写在类里面,同样也可以写在类外面,不过不推荐class Test{public: friend Test& operator+(Test& a, Test &b); Test(int a, int b) { this->a = a; this->b = b; } //写在类里面 Test& operato...
2018-06-25 21:01:12
172
转载 【转】c++多态性——vptr和vtable
多态性 (polymorphism) 是面向对象编程的基本特征之一。而在 C++ 中,多态性通过虚函数 (virtual function) 来实现。我们来看一段简单的代码:#include <iostream>using namespace std;class Base{ int a;public: virtual void fun1() { cout << ...
2018-06-25 20:28:38
212
原创 C/C++一般链表和通用链表解析
第一种传统链表struct List{ char *data; List *Next;};在自己里面包含next引用 ,下面是创建和遍历List& CreateNode( char *data,List *next){ List *node = (List *)malloc(sizeof(List)); int len = strlen(data) + 1; node-&g...
2018-06-23 10:58:27
3112
原创 C/C++中的深拷贝浅拷贝问题
出现深拷贝浅拷贝问题的原因先提前说明: 一个类或结构体中有指针,由于一个类或者结构体拷贝另外一个类或者结构体,使用了 Peroson p1 = p2; 或者 p1 = p2; 使用了系统默认的拷贝构造函数和等号操作符,这两个方法是使用的值拷贝,将两个对象的指针都指向了一块空间,一个对象释放空间后,另外一个对象再次释放,会导致程序崩掉看不懂没关系,接下来我用几个例子来解释class Perso...
2018-06-23 10:07:40
713
原创 C语言多维数组,结构体解析
首先讲解一个误区int a[5] = {0};printf("a : %d\n", a);printf("&a : %d\n", &a);printf("a+1 :%d\n", a + 1);printf("&a+1 :%d\n", &a + 1);我们都知道a代表数组的首地址,&a也是数组的地址,所以它们输出的结果是一样的,那么为什么a+
2018-06-22 20:54:10
5338
原创 C语言内存四区
常量区一般是算在全局静态区,常量区的内容是不能更改的,举个例子所以一定要注意这个问题,否则很容易会让程序挂掉全局静态区全局变量和所有的静态变量都在这个区内,很好理解栈区一般我们定义的变量,只要不是malloc 或者 new 出来的都在栈区,栈区的容量很小,如果在栈区存的东西过多会导致栈溢出堆区c语言使用的是malloc ,calloc,relloc 切记:使用完后要即使free 否则会造成内存...
2018-06-22 14:20:44
182
原创 C语言指针详解
指针变量类似于 int *p; char *p 或者自定义类型的 Person *p; Struct *p这些都是基本的指针变量,不管什么类型的指针变量都是一个存地址的变量,所以它们的大小都是四个字节还有一种void *p 类型,类似于 js 或者 c# 的 var 可以传入任何类型变量的地址,也可以转换成任何类型变量的地址,这个在后面会很有用常量指针,指针常量首先明白:指针和指针指向的内...
2018-06-22 11:10:12
208
原创 C语言 通过指针强转巧用指针类型不匹配
这张图片是我之前博客说的大小端对齐,用此来查看数据在内存的显示。如果我们使用char 的指针来指向 int 类型int a = 0x12345678;char *p1 = (char *)&a;printf("%x\n", *p1);printf("%x\n", *(p1 + 1));printf("%x\n", *(p1 + 2));printf("%x\n", *(p1 + ...
2018-06-21 16:45:18
1387
4
原创 C语言 空指针和野指针
int *p1 = NULL;//空指针int *p2;//野指针指向空的指针是空指针,指向一块未知区域的指针是野指针例如 int *p = 0x123456; 这就是一个野指针,我们并不知道这个地址存的是什么内容注意下面的例子void freePoint(int *&p){ free(p); //注意 释放指针后, 一定要将指针指向NULL //否则p指向的空间是未知...
2018-06-21 16:21:32
2032
原创 C string api函数解析
Title -------字符串是内存中连续的char空间 以"\0" 结尾 1.strlen 求字符串长度,真实长度,返回值是 size_t 此类型的unsigned int2.strcatr 将两个字符串合并放入第一个参数里面,如果第一个字符串不足以放入两个字符串则会发生溢出报错3.strncat 可以限定追加...
2018-06-21 16:12:03
593
原创 C/C++ 大端小端对齐
内存存储是按照byte来存储的 int占4个字节 上面的十六进制12345678 在arm/intel处理器里面是小端对齐,意思是先存入的放在后面但是unix服务器的cpu 则是大端对齐 先存的放在前面 ...
2018-06-21 16:03:19
572
原创 C语言剖析各个数据类型的范围,整数溢出及转换
基础为上一篇博客的的原码反码补码------------首先附上各个数据类型的大小:类型前还可以加上long , short 等修饰符先不讨论用char来举例子:一篇大神对char范围分析的博客整数溢出计算一个整数的时候超过整数能够容纳的最大单位后,整数会溢出,溢出的结果是高位舍弃short 的最大为 0xffff 如果在加1原来abc 为 1111 1111 1111 1111 加1后成了 1...
2018-06-21 15:57:32
760
原创 C语言基础内存区,原码反码补码
C内存: 栈:局部变量、函数形参 由编译器管理(函数结束,内存释放) 堆: malloc 开辟空间 free 释放空间 由程序员管理 全局区/静态存储区: 全局变量和静态变量 编译器管理: 程序结束,内存释放 常量区:存储常量 编译器管理 代码区:存放编写的代码 编译器管理一般全局静态区和常量区都是放在一起的----------bit 比特byte 字节 = ...
2018-06-21 15:09:23
330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人