- 博客(67)
- 收藏
- 关注
原创 [其它问题]加速github clone速度
只需要将 www.github.com/后面为代码库 改为www.github.com.cnpmjs.org/后面为代码库地址 就可以实现一键式加速。
2020-12-22 23:13:19
229
原创 [图形学]法线变换矩阵推导
在顶点着色器中,对顶点从模型空间转换到世界空间的矩阵用M来表示的话,那对法线是否也能同样进行转换呢?答案要看你的M里面涉及了怎样的平移、旋转和缩放。思考过程我们先要知道顶点是否和法线是同一类(同一类的才能进行相同的转换)。而很明显,顶点代表的是一个点,在齐次坐标系下(x,y,z,1),法线代表的是方向,在齐次坐标系下(x,y,z,0)。两者不是同一类。如果你问为什么点是1,方向是0,先补补知识…尝试一下呢?如果对点和方向同时进行平移,点经过平移后变成了一个新的点,这个新的点具有了不.
2020-10-31 23:53:05
1129
原创 UGUI 显隐效率问题
好早以前就在网上看到过对于UI的显示和隐藏最好使用CanvasGroup组件来控制会比较好,一直没有做过测试,这次来补下坑,顺便学了点性能分析Profiler工具。首先创建一个BasePanel脚本,通过CanvasGroup组件来实现UI面板的显示(OnEnter)和隐藏(OnExit)。这里的BasePanel相当于是UIPanel的基类了,这里我只是抽出了一部分,等以后有空了把简易的UI管理类也一起讲了[RequireComponent(typeof(CanvasGroup))]publ.
2020-10-07 23:26:12
453
原创 [C#] interface接口学习
学习链接:Untiy Learn一. 什么是interfaceinterface即接口,接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同“是什么”部分,派生类定义了语法合同“怎么做”部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。派生类则要对成员进行定义。接口提供了派生类应遵循的标准结构。简单举个例子来说(瞎说),接口就像是老板,继承接口的类就像是老板底下的员工。比如游戏老板只需要提出:"我想做个RPG游戏,策划人员给我去写策划案,程序人员之后写个d.
2020-06-25 22:24:52
405
原创 Unity 2019 射线检测失效
之前在做毕设的一个FPS游戏时,遇到了使用射线检测失效的情况,特此记录以下。前因在FPS游戏中,对于子弹的发射主要通过两种方式来实现。一种可以通过实例化子弹的GameObject对其施加物理效果从而达到发射的目的。在玩过的绝地求生中,可以清楚看到子弹的发射轨迹,这里应该就是使用的这种方法。但是使用碰撞检测的问题就是如果一方速度过快撞击到另一碰撞体会有直接穿透的可能性存在(面试题),还有就是性能的消耗比较大。而另一种则是射线检测,通过发射出一条射线来模拟子弹的运动轨迹,这种方法相较于前者而言更节省.
2020-05-10 00:13:52
4210
原创 Unity连接Mysql数据库流程
最近做毕设需要用到Mysql数据库来配合Unity完成一些数据库上的操作,也遇到不少坑,特此来总结一下。一.系统环境Win10操作系统Unity版本:Unity 2019.2.14f1Mysql版本:mysql-5.7.28-winx64Mysql Workbench 8.0 CEVisual Studio 2019对于Mysql文件可以到Mysql官网中自行下载我这里提供...
2020-03-28 01:02:46
3854
3
原创 [其他问题]github官网访问不了
找到C:Windows/System32/drivers/etc下的hosts文件 打开后在末尾添加如下:192.30.253.112 github.com192.30.253.119 gist.github.com151.101.100.133 assets-cdn.github.com151.101.100.133 raw.githubusercontent.com151.101.1...
2020-03-04 16:40:03
3560
1
原创 [python] 字符串基础
学习资源来源于Python官网教程 https://docs.python.org/zh-cn/3.8/tutorial/introduction.html#strings字符串在python中 可以使用单引号(’…’) 或者 双引号("…")来表示字符串m1 = "Hello World" m2 = 'Hello World' print(m1) # 输出结果为 Hello Wor...
2019-12-13 12:27:19
156
原创 [随笔] 重归博客
距离上次发博客已经有4个多月了…主要原因是中间经历了很长时间的校招阶段, 多数是在复习巩固和刷题,也最终在秋招找到了自己满意的工作(*厂游戏研发工程师!)。之后也入了很长时间的坑在wow(放松放松…这都是借口…),最近终于觉悟了,要开始学习了!由于之后工作会涉及到Python,再加上之前并未接触学习过,所以近期会针对python的一些基础知识进行学习巩固!特此为证!当然Unity有关的学习也...
2019-12-12 22:07:52
159
原创 Unity UGUI中使用scroll rect和content size fitter问题
最近成为了底层拼图仔,对一些Unity中UGUI遇到的问题进行一下总结。 以下内容均在Unity2017.4中实现一. 搭建一个xx列表许多UI中都可能需要实现可上下拖拽的列表功能,比如手机QQ中的聊天列表以及浏览器的上下拖拽显示内容列表。脑中有了大致的实现效果,便可以搭建起来了。所以我们先初步要实现一个列表的效果就是:假设列表中每个信息都是一个item,每接收到一个item,则会在...
2019-08-23 16:23:53
5431
翻译 [翻译] 求生之路AI系统讲稿
之前在某网站上无意间看到关于求生之路(L4D)的AI系统讲稿ppt,所以特地去研究阅读了一下,看了第一遍后感觉也是懵懵懂懂的(英文真的令人头疼),算是大概了解了下流程,所以决定写一篇文章,好好记录一下具体讲了些啥。当然由于本人知识存储或者英文翻译带来的理解不同可能会造成曲解,也请见谅!讲稿可以从我的学习资料中找到。一. 四个方面具体讲解之前,先介绍一下求生之路这款游戏。求生之路是Va...
2019-08-01 21:31:03
2765
2
原创 Unity 简易AssetBundle打包方法(二)
时隔半年又回来填坑了…没看过的小伙伴可以先看一下AssetBundle (一)。这次主要是对上次的一些细节补充和扩展。一. AssetBundle打包先回顾一下打包流程吧using UnityEditor;using System.IO;public class CreateAssetBundles{ [MenuItem("Assets/Build AssetBundles")...
2019-07-31 18:44:37
1421
原创 Unity UGUI源码解析(二) InputModule
一. 引言上一节我们在讲EventSystem类中的某些函数细节的时候,经常会讨论到xxxInputModule这个输入模块,今天就来仔细讲一下xxxInputModule到底做了些什么。附上UGUI源码二. BaseInputModule在具体介绍输入模块之前,我们先要知道输入模块的结构构成是如何的。输入事件捕获模块由四个类构成:BaseInputModule、 PointerIn...
2019-07-20 16:51:50
4915
1
原创 [算法] 面试常见算法题 (不断更新)
目录翻转字符串里的单词反转链表LeetCode 151. 翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不...
2019-07-16 20:37:35
8032
原创 Unity UGUI源码解析(一) EventSystem
一.引言当我们在Unity中创建一个Canvas时,编辑器会默认给我们创建一个EventSystem,其上有两个组件EventSystem 和 StandaloneInputModule如下图那EventSystem到底是用来干什么的呢?我们找到UGUI底层的源码来一探究竟!UGUI源码二.EventSystem作用EventSystem在UGUI源码中属于事件逻辑处理模块。所有UI事...
2019-07-15 18:49:37
3140
原创 [Lua] metatable学习
如果说table这种数据结构是Lua的利剑,那么metatable就是Lua的强盾了。metatable可以辅助table完成许多难以实现的功能。一.什么是metatablemetatable根据其英文翻译就是元表的意思。metatable允许我们改变table的行为,每个行为关联了对应的元方法。其中就有两个很重要的函数来处理元表:setmetatable(table,metatab...
2019-07-06 20:40:44
1329
原创 [Lua] Table知识点学习
差不多将近一个半月没更新博客了…之前一直忙着期末考试复习,没啥额外的学习输出。最近开始实习了,公司里的游戏项目大半都是用Lua写的,之前也没有学过lua语言,所以就对lua的一些知识概念点进行一个复习总结,今天先讲讲table吧。学习资源均来自网上,看的最多的就是菜鸟教程上的。一.什么是Tabletable 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。L...
2019-07-02 23:41:07
315
原创 Unity 灯光与渲染 (一)
最近翻自己记录的笔记的时候,发现之前学的Unity 灯光lighting设置渲染一块没有总结过,因此特地将笔记内容整理至博客中。一.常见光源Light一说到Unity中的Light,大家能回忆起有哪些光源呢?Directional light、Spot light、Point light 和Area light。那么接下来先对每个Light类型进行简单介绍。(1).Direction...
2019-05-20 08:31:06
11530
3
原创 [设计模式]C# 单例模式
之前面试的时候被要求手写单例模式,还要对各种适用场景进行区分使用,虽然看了书,但是没做过总结,这次就记录下来吧。单例模式单例模式:保证一个类只有一个实例被创建,并且提供一个全局访问点。代码实现(1)public sealed class Singleton { private static Singleton instance = null; ...
2019-05-05 18:31:07
243
原创 Unity复杂的旋转-欧拉角和四元数
学了那么久 其实对Unity的欧拉角和四元数并没有很深刻的认识…所以就此开篇稍微介绍一下我们首先知道的是,在Unity中有两种方式表示旋转。一种是欧拉角,还有一种就是四元数,那其中的区别有哪些呢?我们先分别介绍一下。一.欧拉角欧拉角最容易表示,用三个变量X,Y,Z可以直观的表示绕着某个轴的旋转角度。在Unity里就是Transform组件的Rotation里的X Y Z三个变量代表...
2019-05-04 21:55:40
3843
3
原创 Leetcode 142.环形链表II (面试题)
没做过的小伙伴可以先去了解一下Leetcode 141题Leetcode141环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二...
2019-04-26 23:15:10
228
原创 [OpenGL] 二.在窗口中创建一个三角形
学习自LearnOpenGL知识点1.图形渲染管线:简要说明就是先将3D事物的坐标转换为2D的屏幕坐标,再把2D坐标转换为实际的有颜色的像素2.着色器:图形渲染关键可以被划分为几个阶段,每个阶段将会把前一个阶段的输出作为输入。在GPU上为每一个阶段运行各自的着色器,从而快速处理你的数据。3.顶点缓冲对象(Vertex Buffer Objects,VBO):管理显存中顶点...
2019-04-26 21:17:54
427
原创 Leetcode 129.求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ \2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节...
2019-04-25 22:31:04
196
原创 Leetcode 148.排序链表
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路:利用归并的思想,递归地将当前链表分为两段,然后merge,分两段的方法是...
2019-04-25 11:58:51
111
原创 [数据结构]-并查集
并查集并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。常用在判断无项图中连通性问题。主要操作1.初始化把每个点所在集合初始化为-1。通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。vector<int> v;UnionFindSet(int n){ v.resize(n,-1);}2...
2019-04-24 21:25:35
141
原创 [C++]sizeof各种情况详细分析+内存补齐机制
sizeof操作符的作用是返回一个对象或类型名的长度,返回值的类型为size_t,长度的单位是字节。sizeof表达式的结果是编译时常量。测试环境:win10 64位 dev c++先上几个基本数据类型short a;int b;float c;long d;double e;long long f;cout<<sizeof(a)<<endl;//...
2019-04-17 10:27:26
554
原创 [c++]常量指针和指针常量区别
#include<bits/stdc++.h>using namespace std;int main(){ int a=10; int b=20; int e=40; const int* d=&b;//常量指针 cout<<"d:"<<d<<" "<<*d<<" "<<b<<...
2019-04-15 18:27:56
857
2
原创 [C++]static和const区别
static的整理总结已经在static总结中写过,没看过的可以先去看一下。这里主要针对static和const在类中定义和调用的时候区别进行总结代码如下,已加上注释:#include<bits/stdc++.h>using namespace std;class testClass{ public: static int _datai;//不能在类内初始化 ...
2019-04-15 17:13:13
1971
原创 Leetcode 983.最低票价
在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅行。 例如,...
2019-04-14 22:21:56
651
转载 [数据结构]-堆
总结整理自 数据结构与算法之美什么是堆堆是一种特殊的树,只要满足这两点,就是一个堆。堆是一个完全二叉树;堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。第一点:完全二叉树要求,除了最后一层,其他层的节点个数都是满的,且最后一层的节点都靠左排列。第二点:对于每个节点的值都大于等于子树中每个节点值的堆,我们叫作大顶堆。对于每个节点的值都小于等于子树中每个节点...
2019-04-13 22:58:35
196
原创 Leetcode 698. 划分为k个相等的子集
给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。示例 1:输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。注意:1 <= k <= len(nums) <= 160 < ...
2019-04-12 19:53:03
550
原创 [OpenGL] 一.简易上手创建第一个Window窗口
学习于LearnOpenGl 开了个学习图形学的新坑!首先要提前准备好两个文件glew-2.1.0-win32.zip、glfw-3.2.1.bin.WIN32.zip文件已放于github请自行下载一.配置头文件在VS中创建一个新的C++ Windows 控制台应用程序 ,然后打开"解决方案资源管理器",如图创建的项目右键"属性"进去后,记得先把"配置"和"平台"改为"所有配置"...
2019-04-11 22:32:13
347
原创 [算法]-选择排序
选择排序思想:1.设定一个k值初始为02.从下标k+1起,遍历数组a,找到数组中最小的数的下标j3.交换a[k]和a[j]的值4.k自增15.重复2~4步骤 直到k值为数组a长度-1代码如下:#include<bits/stdc++.h>using namespace std;void chooseSort(vector<int> &a...
2019-04-11 12:52:59
163
原创 [数据结构]-散列表(哈希表)
复习自《数据结构-邓俊辉版》散列表散列表(hashtable)是散列方法的底层基础,逻辑上由一系列可存放词条((或其引用)的单元组成,故这些单元也称作桶(bucket)或桶单元;与之对应地,各桶单元也应按其逻辑次序在物理上连续排列。因此,这种线性的底层结构用向量来实现再自然不过。为简化实现并进一步提高效率,往往直接使用数组,此时的散列表亦称作桶数组。若桶数组的容量为R,则其中合法秩的区间[...
2019-04-10 17:09:06
1467
原创 [算法]-括号匹配深度
思路:由于输入的是合法的括号序列,运用栈的思想,每次进入一个左括号,一个暂存量一定是+1的,每当进入一个右括号,就得和之前的左括号进行抵消,于是这个暂存量就-1了,最大深度通过max函数求得暂存量和当前深度的最大值即可。通俗的来说就是遍历字符串 记录最大’连续’左括号数量,遇到右括号要相应消去一个左括号数量 ,由于题目输入是合法的 所以最大’连续’左括号数量就是这个序列的深度。#includ...
2019-04-09 20:00:09
1032
原创 [算法]-硬币兑换
思路:根据题意,我们要优先选择尽可能多的硬币种类,其次在种类相同的情况下,所选择的硬币数也要越多越好,所以当我们满足种类最多的情况下应该优先选取面值为1的硬币。这就是一个贪心的策略选择问题了.我们可以先作几个例子试试假设当n为1的时候,我们只能选取面值为1的硬币 1枚。当n为2的时候,我们可以选择面值为1的硬币 2枚或者面值为2的硬币 1枚,由于题意,我们肯定取前者当n为3的时候,因为种...
2019-04-09 19:01:09
2144
原创 [C++]静态持续变量static
复习自《C++ Primer Plus(第六版)中文版》1.静态持续变量(p309)和C语言一样,C++也为静态存储持续性变量提供了三种链接性:外部链接性(可在其他文件中访问)、内部链接性(只能在当前文件中访问)和无链接性(只能在当前函数或代码块中访问)。这三种链接性都在整个程序执行期间存在,与自动变量相比,它们的寿命更长。由于静态变量的数目在程序运行期间是不变的,因此程序不需要使用...
2019-03-25 10:57:04
711
原创 【C#】Socket网络编程(TCP)
本篇主要围绕Socket网络编程基于TCP协议TCP协议TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。讲到TCP就顺带把三次握手和四次挥手也一起复习了吧…三次握手TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错...
2019-03-20 15:53:15
668
1
原创 [Unity-Shader]标准光照模型-漫反射(diffuse)
学习资料来自《Shader入门精要》漫反射漫反射光照是用于对那些被物体表面随机散射到各个方向的辐射度进行建模的。在漫反射中,视角的位置是不重要的,因为反射是完全随机的,因此可以认为在任何反射方向上的分布都是一样的。但是入射光线的角度很重要。漫反射光照符合兰伯特定律:反射光线的强度与表面法线和光源方向之间夹角的余弦值成正比。因此,漫反射部分计算如下:Cdiffuse=Clight⋅m...
2019-03-18 18:53:30
1357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人