学习日志[自我监督与复习用]

2021/8/24
正式开始学习,写下此日志进行监督和回忆知识点的提醒

今日学习了unity2D的内容有:
1.左上角的五种基本操作
2.新建Tilemap(瓦片地图)-分类- 1.长方形-2.六边形-3.菱形
3.平铺调色板,用于编辑素材
4.添加角色,用sprite,添加刚体,添加碰撞盒
5.瓦片地图的碰撞盒在瓦片地图那一栏
6.通过GetAxis来书写移动控制逻辑,获得unity组件的方法是声明公开变量后再unity内拖入相关组件,input下的输入编辑器,锁定刚体角度(避免旋转)
7.添加转向和跳跃逻辑,分别用GetAxisRaw和GetButtonDown,左右转向
是将localScale.x改为-1
8.新建动画剪辑,为角色添加动画控制器,并为动画间提供过渡,通过动画器的参数判断动画状态

2021/8/25
力扣每日一题-学习了C语言的哈希表相关知识
unity2D:
1.添加了跳跃动画
2.学习了对瓦片地图的碰撞事件-IsTouchingLayers()
3.减少公开变量的使用,通过GetComponent()获取组件,在start()中完成私有变量的初始化,在private 前加上 [SerializeField]来方便Debug,方括号必须加上哟

2021/8/26
鸽了一天…

2021/8/27
力扣每日一题-做了一道简单的算法题,虽然自己做的也是对的,但是看到别人的算法比我更优,而且因为最近一直在用lua导致了写c一直缓不过来,得多练练了

2021/8/28
力扣每日一题-使用了前天学习到的C语言哈希表的知识做出了一道中等难度的题目,就是内存占用较高就是了…以及一直有个例子超时,最后发现是频繁的使用了realloc分配内存空间导致,

2021/8/29
力扣每日一题-复习了java中的map的使用和数组与字符串的一些操作,知道了回溯算法,明天就去看文章学一下

2021/9/9
前面隔了很多天,有些天是玩去了,有些天是准备开学,有些天是做题了但是都是些简单题目没有写的必要我想,这学期把学委的职务辞掉后应该就能多有点空余时间了,这学期开始正式系统的学习数据结构,还是很激动的,唯一对不起的是我的unity…

2021/9/12
开启了力扣的20天算法入门题库,复习了二分查找法
以及,我九个小时连续肝的学习项目,因为unity的闪退与我自己的大意没有保存而付之东流…原地裂开好吧.不过也算长一智了,去找了unity的自动保存的文章,唉
最近学习了unity2d中的两点间巡逻敌人逻辑的书写,为player加入了受击僵直(通过时间来判断,是比赛时用的笨方法),新建物理材质和UI的入门,UI要注意适配屏幕通过改变那个参考位置来固定.虽然感觉代码耦合很大,但还是先把基础学好再考虑优化吧

2021/9/15
居然空了这么多天。。。
今天把unity闪退后没保存的东西补完了,也就是说复习了一遍物理材质的使用,简单UI和敌人逻辑的实现,动画效果的过渡,碰撞图层矩阵和标签的使用等等
力扣做题方面,学到了双指针的一些有意思的用法,一些题目可以通过反转部分数组在和剩下的数组组成两个新数组,然后通过双指针(同时比较这两个数组,赋值判断指针移动)来进行排序.这种方法的时间复杂度是O(n)
同时也复习了选择排序,冒泡排序,带有判断的冒泡排序,快速排序几种排序方法

2021/9/16
移动零,一道经典的双指针题目
*学习了快慢指针(用于链表,判断环形链表,寻找单链表中心或倒数第n位元素…),左右指针(常用在数组翻转,二分查找,还有画面滚动,这个我还没太明白,大概就是记录滚轴左边和右边,然后逐渐向右移动,寻找满足条件的最大或者最小序列,例如寻找字符串中最大的不重复子串.

2021/9/18
*GetButtonDown应该放在update函数中执行而不是fixedUpdate,因为其每帧都会重置
*调试输出语句Debug.Log()
*GetAxisraw和GetAxis的区别

2021/9/23
热更新是一种无需停机的即时更新,通过下载资源包的形式来实现对一些小问题的修复.unity中的热更新主要是通过xlua完成,xlua是一个插件,通过lua调动项目中的C#语句来实现功能.xlua只针对手游中的热更新,端游有其他的方式.实际开发中一般采用xlua框架开发

2021/9/24
unity
*动画器中的any State指此动画在任何情况下都可能触发
*动画器中的过渡参数可以设置为tiger触发器,使用时即anim.SetTrigger(“参数名”);
*通过类名和获取组件的方式来调用其他脚本上的方法或属性,当然,函数和属性要公开
*动画事件(死亡动画播放完再销毁
*protected关键字,保护此变量仅仅可以在父子关系中被调用
*C#中的继承,与JAVA有点区别,在冒号后面跟父类
*工厂模式,善于用继承关系来实现一些功能相似的物体,如敌人
*virtual关键字,虚拟的,修饰此方法使得其可以在子类中被复写
*敌人死亡的特效应该额外建一个prefab,然后在敌人死亡之后destroy掉敌人然后在敌人死亡的位置播放死亡动画,这样死亡动画不会根据原先的运动而动也不会有判定框
*写继承时发现找不到父类,确定代码没问题时就直接复制代码删了重写试试,这是编辑器的问题吧淦
*audio listener 听声音的耳朵,放在摄像机上

数据结构
*顺序栈,结构体含栈顶指针top,栈底指针base,和栈的容量Size.top == base为空,非空栈top指向在最顶上元素的下一空位.通过top++(–)来实现指针的移动

2021/9/25
*audio source 音源- 常用方法Play(),Pause()等等,其他自己查API
*动画效果录制
*SetActive()

一些思考:
游戏中会有很多不同的声音,如果每个声音都挂在角色下,会显得很冗杂,应该建立一个空对象来专门存放这些声音.以及音频或者说组件不知该如何重命名,全是AudioSource实在是太难区分了.
麦扣是直接把音频的播放放在对应功能的方法体里,但是这样是否会耦合度太高?也许可以考虑将其独立出来作为单独的只针对音频的控制函数,甚至是一个类一个接口,但是音频的发声应该是在一瞬间即时出现的,比如跳跃,独立出来后应该如何保证这种即时性呢,总不能维护一堆变量来判断把…但又想不到其他方法
A : 音频一个比较合理的架构是把音频统一管理起来,然后发声物体上挂audio source这类发声组件,但是不用挂具体音频上去 在需要发声的时候动态在音频库里取音频资源给发声对象,更进阶的可能就得涉及到wwise这类音频中间件了

对于想消灭敌人和吃掉物品的这种情况,敌人和物体应该要马上销毁,又或者失去原本的功能,像原神那样?如果将销毁动画挂在原物体身上,那销毁的时候就会有延迟,就得判断这段时间的碰撞体效果,伤害之类的情况,感觉也许会很麻烦.如果可以将销毁动画独立出来,单独播放后Destroy,说不定会好很多,但是如何独立呢,用空对象
A : 在播放死亡动画前先将碰撞关闭,将刚体改为静态就好了,用 this.gameObject.GetComponent().enable = false //关闭碰撞
RigidBody的mode设为static

可不可以指定碰撞体来触发碰撞事件,角色身上的两个碰撞体,两个都能触发樱桃的加分事件,导致加了两次,或许能为角色添加一个专门用来判断物品交互的不带碰撞的碰撞盒,由那个来触发加分事件
A : 角色身上挂一个碰撞,其他的的碰撞用子级空对象挂碰撞实现

2021/9/26
*C#中的get与set方法,用JAVA的直接书写方法不同,是通过 属性 来书写,将私有变量封装,get与set均写在与该变量同名且首字母圈大写的属性中
*java中的位运算,基于二进制的逻辑左移(右移)运算符>>>(<<<),与算术左移(右移)运算符>>(<<),逻辑移动用于无符号数,缺位补0,算术右移用于有符号数,缺位补符号位(算术左移与逻辑左移相同会改变符号位)
*Java中&叫做按位与是& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:
12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4

  • Java中的位运算符中有一个叫做异或的运算符,符号为(^),其主要是对两个操作数进行位的异或运算,相同取0,相反取1。即两操作数相同时,互相抵消。
    复习了MySQL的连接,建库,建表,删表,查询等语句.在添加主键约束时,直接在字段后添加默认值为mull,在定义了字段后用primary key(字段名)添加则默认值为0(键的类型为int).复习了MySQL的,唯一,非空,默认,主键与外键约束,通过auto_increment使表的主键自增.

*SceneManager场景管理器,使用时要在顶端引用SceneManagement的程序集,用于获取当前场景的属性,重载此场景,切换场景,异步加载新场景等一系列与场景有关的操作
*Scene属性buildIndex;

2021/9/29
*StringBuffer 和 StringBuilder区别,前者线程安全(能同步访问),后者速度更快,两者在进行修改时都不会创建新对象.
贪心算法和动态规划方法类似,都是将最终问题自根部起拆分成一个一个小问题,然后通过对这些小问题的最优解遍历得到最后的总结果的最优解,看了几个例子后实在太困了解没看下去了,在CSDN里记得补

*C#中枚举类型的使用,改变刚体的逻辑模式就是通过刚体模式的枚举来赋值的

思考:
通过刚体调为Static的方式来使得敌人在播放死亡动画时不再移动,但是这样会导致移动逻辑中为其速度赋值的方法出错并无法继续运行.有没有可能使得父类的死亡逻辑执行时子类的移动逻辑被跳过,或许可以把移动逻辑的使用位置放在父类中?然后再由子类去重写父类的movement方法使得实现特定的移动逻辑.这样的话就得在父类中protected movement()和Update().
A:实操后发现可行,完美解决
复活的实现比起重载场景也许用坐标更合适,重载场景可以更新所有敌人与机关,而坐标不会,两者应用场景不同,而且坐标还可以更新复活点.那那些既可以更新复活点又可以更新复活点后怪物数据的是怎么设置的呢…将数据写入文件读取吗

既然可跨越平台是通过给瓦片地图添加组件来实现,那是否意味着所有的平台放在一张新的地图中更合适呢

2021/9/30
特别地,在某些语言中,由于需要自行对内存进行管理。因此在实际的面试中,对于「是否需要释放被删除节点对应的空间」这一问题,我们需要和面试官进行积极的沟通以达成一致。
*容斥原理:要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。

bug记录:狼的精灵在第二个场景中显示不了,测试发现可能是背景的瓦片地图挡住了,但背景的排序图层是在他下面的.运行时又发现其往左移动时不显示,往右移动时会显示…就离谱好吧.以及添加了光照那个材质后,原来挡住角色的图层挡不住了

*优化:如idle等默认调用的动画效果可以省略掉动画转换这一步
*通过FindObjectOfTybe<类名>()来获取其他脚本类并调用其中的函数.
*不像Update那样每帧执行,OnTrigger等事件是有一定的延迟的
*背景视觉差:通过摄像机移动的值来对背景本身的坐标进行操作赋予其相应倍率的增量,远处的增量小,近处的增量大

2021/10/2
国庆节谁学习啊,是吧是吧
*数制转换时如果用数学方法需要考虑负数的情况,负数需要补码,可以采用为其添加一个合适的增量的方式.

游戏开发:
*button制作及使用.设置button时如果按钮颜色透明度为0则下面的的所有按下,高亮等颜色都不显示,正常为常规下的颜色,select color为上一个选中按钮的颜色(会替代正常显示出来).
*Gameobject.Find(“对象在场景中的全路径”);此函数仅返回活动 GameObject。如果未找到具有 name 的 GameObject,则返回 null。如果 name 包含“/”字符,则会向路径名称那样遍历此层级视图。
出于性能原因,建议不要每帧都使用此函数,而是在启动时将结果缓存到成员变量中,或者使用 GameObject.FindWithTag。
不知道为啥麦扣的版本可以,我的无法查找到active为false的对象更不用说激活了…最后还是用了公开变量的方式来激活…
*暂停的实现:通过控制整个游戏的运行计算时间倍速来实现,代码Time.timeScale = 0f;当赋值为0时,计算停止,赋值为1时为正常倍速,;同理可以根据这个来达到慢动作和快进的效果.
timeScale:子级的相对速度;
*音频混合器(AudioMixer):用于对音频的调整,需要对作用的音源上的output处手动选择由哪一个混合器来控制,由于AudioMixer本身是无法挂任何组件的,所以我们需要在其他脚本内获取他,如果主要对AudioMixer内的任意一个属性值进行修改,则我们应该选择暴露他,在该属性栏右键进行选择即可
*UI.Slider滑动条,何以进行滑动操作的UI,父级设置的是按钮的颜色形状,如果想要设置背景与被填充的颜色等,请移步子级.想要获取滑动条的值,则为调用的函数设置一个Float类型的参数,然后在选择函数界面选择最上面的内置参数的函数,这样设置的那个参数即为滑动条的值

2021/10/4
C#andUnity
*sealed密封,三个思考:sealed有什么使用限制?为何sealed不可以和virtual或者abstract联用?父类方法被sealed修饰时,想在子类中声明同名方法该怎么办?
*ref和out,引用.
*接口
*脚本生命周期,Awake,OnEnable,Start,Update,LateUpdate,FixedUpdate,Ondisable先后顺序与可执行次数
*摄像机跟随的方法写在哪个位置(防止抖动)

2021/10/10
6天,国庆彻底摆烂了属于是。。
*java的DecimalFormat,用于控制不同数制的格式,不过返回的是规定格式的字符串哦

游戏开发:
*第三人称控制器插件
*渲染 Statistics 窗口,方便调试优化看性能
*了解了DrawCall,Batches( 批处理 ),Setpass Call,https://blog.csdn.net/qq_30259857/article/details/110062397
*认识了URP,SRP,HDRP https://blog.csdn.net/qq_30259857/article/details/108318528
*c#中的属性(其实就是封装字段,当复习了
*static的一些使用场景,见笔记

2021/10/11
游戏开发:
*打包,打包前记得设置一下playersetting,安卓端的打包需要安装jdk,SDK,NDK.unity hub上可以装,如果像2021版那个是导进去的自己下.NDK下载网址https://developer.android.google.cn/ndk/downloads/index.html?hl=zh-cn#%E4%B8%8B%E8%BD%BD-dynamic_data.setvar.dialog_product_name
//貌似每个版本的都只有最终版的下载链接,死活找不到 r21d,吐了
*拓展方法,通过this关键字作为参数来向不可访问的封闭类添加新的方法或者修改属性
*namespace,可嵌套,可用三种方法调用

2021/10/12
数据结构
*特殊矩阵存储,稀疏矩阵(稀疏因子小于等于0.05的矩阵)
停电了断网了啥也不是.

2021/10/13
弄了一个2d俯视视角设计的源码,然后发现打开后全是紫色,根据教程安装了urp,发现人物精灵丢失,找了半天发现是没有再project setting中选择渲染管线导致人物素材无法升级为urp,于是新建了一个新的渲染管线为其升级.接着又发现光源丢失…研究半天才知道渲染管线不正确,我自己新建的那个啥都没配置…找到正确的渲染管线后项目终于基本正常了…然而已经十二点了.淦.白忙活一晚上

2021/10/14
可以在snap setting中设置没次按住Ctrl拖动物体时的移动间距,虽然我在教程的位置没找到这个设置…(看CSDN老哥说后面版本的没有封装这个功能了…
材质球配置,直接拖拽给object就能赋值了…我找了半天
*事件函数
*transform.GetChild(i) , transform.childCount,Vector3.Distance(Vector3 a,Vector3 b) ,
*通过鼠标移动视角.思路:为屏幕定义一个边界线当鼠标移动到边界线以外后根据边界线的不同给摄像机位置提供不同方向上的增量.Screen.width,获取当前游戏窗口的宽,同理也可以获取高度,别忘记了屏幕的坐标轴左下角是零点.

*报错记录:he script don‘t inherit a native class that can manage a script.原因:asset和脚本里的类名不一致…

*java正则表达式,含有一些特殊意义字符的字符串.其中的特殊字符叫 元字符.如\d表示从0-9的任意数字
*复习java匿名类(一次性子类

2021/10/15
*Mathf类,似乎是unity中的类.Mathf.Clamp(x,Min_x,Max_x),将x限制在区间中.其他的静态方法见笔记

2021/10/16
*运算中的符号栈和操作数栈
*又又看了一遍回溯
*打包时的exe文件要和data文件夹和UnityPlayer.dll放在同一目录下,不然别人安装不了

2021/10/18
*协程
*有限状态机(一个状态枚举属性,在其set中进行各动画状态切换的初始化操作
*Invoke
*数组再unity中的应用
*两个摄像机的PS版防止穿模法
*产生阴影和接收阴影
*对象池
*单例模式

2021/10/19
*使用一个空对象来做位置更方便管理
*机瞄开镜的简陋实现(改变枪口位置,摄像机视口缩小,更好的效果可以用tween做一个
*#region #endregion
*/// /// 注释法,可以更加方便让别人明白此函数的作用

2021/10/20
*NavMashAgent
*动画状态转换的优先级
*Post-Process
*NPC的攻击判断

2021/10/21
*摄像机抖动(射击抖动,给摄像机位置赋予一个随机增量)

2021/10/24
*Raycast
*c#中的foreach循环,和java的不太一样,用的in而不是:

2021/10/25
*导航代理 Nav Mesh Agent

bug记录:
-因为使用了invoke导致状态机切换后仍执行了上个状态机中的重置布尔值的函数,导致下一个状态机中赋值该布尔值的效果失去,在fps中发现,开枪同时按换弹会将换弹动画卡掉.
-localPosition…无话可说这个,下次注意点吧

2021/10/26
*树结构遍历,LRD,LDR,DLR,用递归实现
*java interator迭代器,next()每次调用都会调到下一个元素
*输入流的读取范围和关闭(System.in
*单调栈,书友单调性的栈结构,寻找后面元素中第一个比当前元素 大 或者 小的结构
*线索二叉树,线索链表.左边指向前驱,右边指向后继,有子节点为0,否则为1
*树的孩子兄弟表示法
*取模和逆元
*java exec方法

2021/10/27
*unity的断点debug法
*数据库的左连接与右连接区别

bug记录:一个工具类的 static instence对象,赋值语句 instence = this 放在了Start里,导致在其他类中调用此工具在Start中进行初始化时造成了空引用异常,即初始化语句在赋值语句前执行了…在FPS案例的UI更新中发现此bug,特此记录

2021/10/28
复习离散数学

2021/10/29
*GameMannager思想
*NavMeshAgent.isStopped()打开和关闭导航代理
*NavMeshAgent.SetDestination()设置导航目标点位置
api查询:按F12可以看到命名空间 然后查C# +命名空间下的 + 类名

2021/10/30
*SQL数据库 union 和 order by 和group by 联用问题,只写一个order by
*SQL 相关子查询,用别名实现
*navMeshAgent.re…忘了,获取到导航点之间的距离
*java Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

2021/10/31
*kit tools 工具类思想
*c# 的 >> 和 << :
左移 (<<)
将第一个操作数向左移动第二个操作数指定的位数,空出的位置补0。
左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8。
右移 (>>)
将第一个操作数向右移动第二个操作数所指定的位数,空出的位置补0。
右移相当于整除. 右移一位相当于除以2;右移两位相当于除以4;右移三位相当于除以8。

2021/11/2
昨天被VS奇怪的错误折磨了一天,然后去玩AR和VR游戏去了啥都没学.
*数据结构 - 图
有向图,无向图,通过括号和图形的表示来区分
无向完全图 1/2n(n-1) 有向完全图 n(n-1)
邻接点:终点是起点的邻接点
度:顶点的度,入度和出度,图的度
顶点度之和是边数的2倍
图的邻接链表表示法
无向图存下三角,有向图看列数入度,看行找出度

2021/11/6
c#:event
2021/11/7
数据结构:
哈夫曼树;带权值的二叉树,构建时权值小的放在左边,权大右边
哈夫曼树的结点个数为m, 则其叶子结点个数为(m+1)/2,分支结点个数为(m-1)/2.
哈夫曼树wpl:所有非叶节点权之和 或 所有叶节点的权值乘路径长度的和
2021/11/8
*C#Messenger是UntiyCommunity里的一个工具类,其效果是可以实现一个消息系统,其实现的 具体效果表现为:两个脚本之间发送消息可以不需要相互引用,保证解耦,内部是委托,可以实现单播和多播
*c#event,一般结合委托采用发布器和接收器的思想来使用,在发布器类中定义好event,event触发条件及相关的委托(如OnChanged),在接收器类中定义事件发生事需要处理的逻辑函数,并在event中注册.
2021/11/12
数据结构:
拓扑排序,即每次找最小的,不构成回路的,求最小生成树

aov网 活动在顶点的网
判断活动是否可以完成,拓扑排序

aoe网 活动在边上的网
汇点 终点,出度为0
源点 起点,入度为0
完成活动的影响因素有哪些
2021/11/13
*ab包,一种资源文件压缩包,更小更轻量
*unity中resouce是一个特殊的文件夹,里面的资源文件会在运行时被加载,所以一些静态文件应该使用自己的新建的一个资源文件夹去存
*so文件,一种特殊的脚本文件,不继承Mono而是继承自scriptObject类,类似于数据库一样的存在,用于存放一些通用的数据或者方法
*objectPool可以封装成一个预制体,通过添加指定对象和设置容量在初始化时生成并管理.

2021/11/15
java:
*TimeUnit类,对时间进行更直观的转换,比如将秒转换为分钟,小时,天等等
*线程的等待与唤醒 wait() notify()唤醒随机一个线程 notifyAll()唤醒所有线程,是能应用在有同步锁的模块里

数据结构:
*Tire 前缀树,一种快速查找前缀的树结构,核心思想是使用「边」来代表有无字符,使用「点」来记录是否为「单词结尾」以及「其后续字符串的字符是什么」。
值得一提的是前缀树的应用常见于算法领域而非工程,因为实际工程中不方便确定字符串长度,可能会造成前缀树深度过大.这时候如果 Trie 是存储在硬盘中,Trie 结构过深带来的影响是多次随机 IO,随机 IO 是成本很高的操作。至于一些诸如「联想输入」、「模糊匹配」、「全文检索」的典型场景在工程主要是通过 ES (ElasticSearch) 解决的。而 ES 的实现则主要是依靠「倒排索引」。

2021/11/16
数据结构:
查询算法的查找效率:平均路径长度*查询概率
分块查询;
查询二叉树,左小右大
平衡二叉树,自动平衡,左右数的差度绝对值不超过1
二叉树的旋转,左旋,右旋

2021/11/17
c#:
数组,ArrayList,List<>,Hashtable,Dictionary<>字典,HashSet<>;

2021/11/18
bug记录:
所有对在场景中实际存在的对象进行初始化操作时都最好放在Start里而不是Awake,比如用到transform之类的,因为Awake里还没完全加载完物体.
*Unity DoTween 的简单使用

2021/11/20
心情爆炸,摆烂一天

2021/11/21
图的遍历
dfs 递归
bfs 队列

2021/11/22
洗牌算法:等概率的随机交换

2021/11/23
n叉平衡树
哈希查找:通过一个确定的函数(哈希函数)计算出对应的函数值作为地址,不需要比较直接通过计算查找,故时间复杂度为O(1)
哈希查找的冲突解决:线性探测,二次探测,链表

简单的攻击判断:为攻击设置一个start和end方法,由动画事件调用.设置一个weapon碰撞体用于判断攻击,start时打开碰撞,close时关闭,为防止多段伤害,应该添加一个标志量判断是否已经伤害过了

2021/11/24
设计模式
命令模式
享元模式
bug记录:
navMeshAgent调用setDestination 后,会有一个计算路径的时间,计算过程中pathPending为true. 在这个过程中remainingDistance一直为0.
因此在每帧调用setDestination的话很容易出现问题,比如某人的敌人追踪玩家的写法…

项目准备:
资源规范
技术文档
工具: 配置表,协议,其他
框架:客户端,服务端
日志,配置,数据加载,网络,基础组件,DB访问

再不听听力四级就真的寄了…

2021/11/25

游戏开发:
2D平台效果器的侧边效果(学漏的
GameObject.Find() 与 Transform.Find()的区别及优劣
移动平台的简单思路(不是高摩擦物理材质
sorting layer,OrderInLayer,Layer的区别和摄像机检测的关系

算法:
素数的优化求法(记录,开平方,除去区间内素数的倍数等

2021.11.26

数据结构:
直接插入排序
折半插入排序
表排序
快排
希尔排序
堆排序

单例模式:只存在一个实例的设计

数据库:通过视图和存储过程中的变量来简化查找

2021/11/27
这个屑白天休息摆烂,晚上不睡觉非要搭什么博客,然后博客没搭好,东西也没学到,日志也没写,日记也没碰。

2021/11/28
这个屑摆烂到晚上十点,然后赶作业到三点,md臭傻逼一个。

2021/11/29
java:
String的一些方法,subString,trim(删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等),indexOf
正则表达式判断是否是整数类型的字符串,我只能说牛

算法:流动数组,记忆性递归

2021/11/30
学英语,做数据库项目报告去了,今天就做了简单的几道题,其他啥也没学

2021/12/01
复习排序,快排,希尔(增量),归并(二分),堆排,选择

2021/12/02
复习考试,英语杀我

2021/12/05
都在复习考试,今天看了下协程和yield
协程其实是一个迭代器?这儿不太明白,留坑
而yield其实是一种语法糖,其封装了一个类,且yield return 0会在yield return new WaitForSecond之前执行,只有相同的语法才会与先后有关,因此不要将两者放在一起用,容易出奇奇怪怪的bug

2021/12/24
*java正则表达式的应用,通过replace 和 $ 的存储可以能达到替换指定情况的字符串,有时间可以写篇笔记,详情见DSA招新题目集中的估值一个亿的代码一题
*通过BuffereedReader可以达到比Scanner更快的执行效率,建议在先自定义一个reader类提前写好一些静态数据读取方法
*java进制转换,toHexString以及其他的转换方法
*利用一个数和另一个数按位异或(^)两次还是原来的数的方法,我们可以不用创建第三变量就交换两个数,但是应该判断两个数是不是相同的,否则会导致异或后结果0的异常.

2021/12/28
C#中的[ , ]与[ ] [ ]的区别(多维数组与交错数组

2022/1/02
用unity实现了迪杰斯特拉和无权图最短路径的图形化
使用gui制作3d的血条和姓名

2022/1/05
考试月结束,回家

2022/1/13
今天终于结束了老家的事情,
值类型和引用类型在内存上的区别(堆栈和堆)
GC

2022/1/15
UML图 六种关系及表示
unity中的monobehavior类及生命周期

2022/1/16
live2DforUnity
搭了一天博客哈哈哈哈

2022/1/17
C++头文件与输入输出流
random.Next()
算法:
一些具有明确的1-N的关系的查找,可以借助数组下标
蓄水池抽样算法

2022/1/18
C++STL模板库:
str,容器:stack,queue,pre_queue,双端队列,vector,set,list
sort(),重载<符号,cmp()

2022/1/20
c# and unity:
using Object = UnityEngine.Object;//区分System和UnityEngine下的Object
Lazy<>懒对象,延迟加载
使用模型脚本的内置参数动态名调整live2D模型
[System.Serializable]可序列化,使的自己创建的类可以出现在inspector面板

2022/1/21
中心和轴心
通过空物体为模型添加正确的旋转轴
void Invoke(string methodName,float time,float delayTime) : 意思是在等待time之后,再调用方法methodName方法,并且每隔delayTime再去调用methodName方法。
OnDrawGizmosSelected()与OnDrawGizmos()
Gizmos.DrawWirteSphere

2022/2/4
GJ也做完了,年也过完了,从今天起开始继续学习。
先写一份新年GJ的回顾总结吧

2022/2/22
compareTag的性能比gameobject.tag == " "更好
整体框架设计,分层设计
协议,其实就是个变量 请求包响应包传送协议

2022/2/23
阻塞 : 必须等待服务器返回消息才会继续运行程序
mono单例类,通过泛型和where类型实现的一个单例基类

2022/2/27
协议的收发和添加

2022/2/28
今天学习了一道用回溯算法做的题,做了类魂的落石陷阱类
2022/3/1
和策划小哥交流后发现昨天做的功能不是预期的,今天又重新做了个
2022/3/2
写了力扣后去看了会战斗框架了,今天休息
2022/3/3
根据董佬更新后的存档框架调整之前的机关类加入存档,原本以为是很简单的事,结果被几个小bug搞到了十一点…太牛马了
2022/3/4
今天摆大烂,晚上把之前fps学习的项目拿出来想优化补完整再加个游戏开始和结束的菜单,结果手贱用VSCODE打开了然后手贱点了个保存,现在因为编码问题导致所有中文注释全寄了,没加版本控制也找不回来了,麻了
像一组连续序列中找左右两边的最大值最小值可以考虑单调栈
2022/3/5
将之前的fps的项目重构优化.并继续添加相应的功能

2020/3/9
泊松分布是二项分布的一种极端状态
差分法
大半夜的躺在床上发现之前学过的东西忘记了好多,菜得睡不着,起来复习了一遍Dijkstra算法,当初虽然做了这个的实践但感觉还是一知半解的,感觉要真的保证自己弄明白还是得自己写出来。可惜了前几天摆了学的东西也没有记录下来巩固记忆,现在已经记不太清了
Dijktra就是一个求图中单源最短路径的算法,不适用于负权边的图。思想就是从源点开始每次找到最短路上的一个点。一个最短路数组s,s的值为源点到该点的最短路径长度,和一个源点到各点的权值集合u,每次遍历更新权值为较小值,并将最小的那个点入s集,也就是说是s集中的点应该是在u中最小的,而u的值应该是源点到该点和源点经过s集路径上的点到该点中权值最小的。

你可能感兴趣的:(监督学习)