- 博客(16)
- 收藏
- 关注
原创 unity assetbundle + xlua 热更框架
assetbundle brower打包,assetbundle打包Lua文件,unity加载Lua文件,unity实时热跟新,Md5文件校验,Lua释放Require,xlua自定义Loader
2022-03-23 00:20:26
4675
1
原创 C++ 智能指针
auto_ptr,unique_ptr,shared_ptr,c++ 中new开辟的内存,离开作用域时需要手动释放,不然会造成内存泄露,因此, 如果将 new 返回的地址赋给智能指针, 将无需 记住 稍后 释放 这些 内存: 在 智能 指针 过期 时, 这些 内存 将 自动 被 释放。什么是指针
2022-03-17 17:07:05
659
原创 c++ 基类和派生类的构造函数和析构函数调用分析测试
调用派生类构造函数时默认会调用基类的无参构造函数,释放实例时,先调派生类析构函数,再调基类析构函数。选取基类的析构函数调用并没有调派生类的析构函数,但是调用了派生类的构造函数,然而在派生类的构造函数中为ids分配了内存,但没有被释放,这样造成了内存泄露。将基类析构函数变为虚函数
2022-03-14 17:46:13
1367
原创 探索Unity 施加力的方式
前言unity 中对物体添加 Rigidbody 组件就可以对物体施加力,本篇文章主要探索unity施加力的方式自由落体运动设置刚体组件的参数useGravity = true,此时物体就会受到重力的影响。unity中重力加速度g默认是10。设置固定帧为0.02秒每帧:Time.fixedDeltaTime = 0.02f;在场景中放一个球体附件刚体组件勾选UseGravity,设置空气阻力为0,设置位置为(0,10,0)unity中的Rigidbody.AddForce()
2022-02-23 11:08:12
5954
原创 基于Unity利用四叉树算法实现二维碰撞检测
前言在游戏制作过程中会经常遇到碰撞检测,假设在二维平面上有n个物体,那么检测每个物体的碰撞都要检测n-1次,如果要检测所有物体的碰撞,那么需要计算n*(n-1)/2次,时间复杂度为n的平方,四叉树算法可以将物体分到不同的区域,从而减少计算次数。关于四叉树 的概念可以参考文章四叉树与八叉树四叉的实现下面是用C#代码实现的四叉树算法,需要注意的是构造函数的pBounds参数,不能直接使用RectTransform.rect,这里使用的rect的参数x和y需要特殊处理,具体可以看末尾函数public sta
2022-02-22 10:43:51
5742
1
原创 红黑树算法实现与测试
前言红黑树是一种特殊的二叉树,他的优点是插入、删除和查找时间复杂度都是log(n),并且只需要中序遍历就能从小到大遍历节点,常用于解决哈希冲突。算法思路实现代码(C#)using System;using System.Collections.Generic;namespace SF_红黑树{ //颜色枚举 public enum Color { RED, //红色 BLACK//黑色 } //节点 public
2022-02-17 16:27:19
875
原创 C# 浅拷贝与深拷贝
前言在实际开发中,经常会遇到拷贝实例的需求,C#中有两种方式可以实现拷贝,一种是浅拷贝,一种是深拷贝。浅拷贝只会拷贝值类型不会拷贝引用类型。而深拷贝会拷贝值类型和引用类型,可已根据实际情况选择使用哪种拷贝浅拷贝浅拷贝需要使要拷贝的类继承ICloneable 接口首先创建一个继承于浅拷贝的类class ShallowCopyDemoClass : ICloneable{ public int intValue = 1; public string strValue = "1";
2022-02-15 16:22:49
1145
原创 C# 反射实践
前言大多数 程序 都要 处理 数据, 包括 读、 写、 操作 和 显示 数据。( 图形 也是 一种 数据 的 形式。) 然而, 对于 某些 程序 来说,它们 操作 的 数据 不是 数字、 文本 或 图形, 而是 程序 和 程序 类型 本身 的 信息。 有关 程序 及其 类型 的 数据 被称为 元 数据( metadata), 它们 保存 在 程序 的 程序 集中。 程序 在 运行时, 可以 查看 其他 程序 集 或 其 本身 的 元 数据。 一个 运行 的 程序 查看 本身 的 元 数据 或 其他 程序
2022-02-15 13:52:23
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人