- 博客(38)
- 收藏
- 关注
原创 博客摘录「 梳理Y3游戏编辑器入门者需要明白的基础概念」2025年1月23日
动作:要做的事情,也是触发器的主体。比如“创建单位”、“播放音效”等等。特定条件才可以触发。比如“玩家的金币超过某个数值”比如“游戏开始”、“某个单位死亡”。
2025-01-23 05:25:42
115
原创 博客摘录「 【Lua面试】2021年Lua面试题分享(4.25更新)」2025年1月18日
LuaCallC#交互原理C#源文件生成Wrap文件、或C#源文件生成C模块,将Wrap文件和C模块注册到Lua的解析器中,最后再由Lua去调用这个模块的函数~
2025-01-18 22:56:25
85
原创 博客摘录「 【Lua面试】2021年Lua面试题分享(4.25更新)」2025年1月18日
Lua调用C调用之前需要注册,将函数地址告知LuaLuaFramework的框架中Lua要调用Unity自带的API或者我们自己写的脚本之前要先生成对应的XXXWrap文件,就是如上面例子一样,需要在lua里进行注册。
2025-01-18 22:54:57
128
原创 博客摘录「 AssetBundle详解」2024年12月28日
8.AssetBundle浏览工具Unity官方提供了AssetBundle的浏览工具插件,但并没有默认集成,需要我们手动进行安装。安装方式如下:在项目中打开 Unity Package Manager(菜单:Windows > Package Manager)。单击窗口左上角的 +(添加)按钮。选择 Add package from git URL…输入https://github.com/Unity-Technologies/AssetBundles-Browser.git 作为 URL单击 Add。
2024-12-28 00:39:35
74
原创 博客摘录「 Xlua分析:Lua调用C#」2024年12月27日
总的来说,xlua会为C#类这边生成一个wrap文件,里面对于方法生成了对应的函数,对于属性值则会生成getter和setter方法来供xlua“调用”。
2024-12-27 19:20:16
70
原创 博客摘录「 事件驱动和消息驱动的对比」2024年12月3日
如果你在设计一个东西举棋不定,那么你可以参考win32的GetMessage,本身就是一个藕合度极低的接口,又足够自由,接口任何语言都很方便,具体应用场景再在其基础上封装成事件并不是难事,接口耦合较低,即便哪天事件框架调整,修改外层即可,不会伤经动骨。而如果直接实现成事件,那就完全反过来了。消息是非侵入式设计,将主循环该怎样设计的自由留给用户。事件是侵入式设计,霸占你的主循环;事件模式耦合高,同模块内好用;事件模式集成其它语言比较繁琐,消息模式集成其他语言比较轻松。消息模式耦合低,跨模块好用。
2024-12-03 16:00:30
180
原创 博客摘录「 Unity UI 框架相关的一些思考」2024年10月20日
这两者的区别是:前者创建:先创建 GameObjet 再给他挂一个控制它的脚本;后者创建:先创建一个纯 C# 对象, 再在合适的时机创建 GameObject 交给它管理。前者:⑴、优点:符合Unity原本的 “go-comp” 思路。后者:⑴、优缺点:从类图上看,更符合控制引用关系、更便于代码设计;但需要自己维护 “引用 go”、“”“解除引用 go”、“销毁 go” 的逻辑;⑵、优点:可为 go 挂一个通用的需操作元素收集组件,与逻辑类分开,并可随意组合复用。
2024-10-20 13:34:14
131
原创 博客摘录「 如何高效地从0搭建一个游戏项目」2024年10月19日
当玩家体验一些不断创建新的对象结点的游戏,比如FPS(第一人称射击游戏)游戏中枪口不断发射子弹,系统会持续不断地实例化粒子效果与子弹模型的对象,而C#的内存机制又是 尽管你删除了结点,但该节点对象占用的内存空间不会被回收,只有当内存空间溢出时,此时会进行一次GC(垃圾回收),从而导致玩家进行游戏的过程中卡顿,加大硬件设备的压力,为了较好的处理该问题,我们引用 缓存池。
2024-10-19 18:31:14
87
原创 博客摘录「 LUA学习笔记」2024年8月30日
Lua中没有类的概念,但能遵循基于原型的语言,来模拟类。原型是一个规律对象,是一个对象查找其未定义行为的地方。类和原型都是存放由多个对象共享的行为的地方。Lua中只需要创建一个对象,专门用作其他对象(其实例)的原型。在Lua中,创建原型只需要使用setmetatable(a, {__index = b}),即将b作为a的原型。a可以在b中查找其没有的任何操作。此时,b可以看作是对象a的类。使用__index元方法让新对象从类中继承操作。
2024-08-30 02:05:46
176
原创 博客摘录「 解决Unity物体速度过快无法进行碰撞检测(碰撞检测穿透)」2024年8月12日
不使用刚体 Rigidbody的方式,采用发射子弹之前,先发射射线,记录碰撞点(判断是否会发生碰撞),然后在发射子弹。
2024-08-12 06:19:17
164
原创 博客摘录「 【Unity】坐标系、Vector3基础和Transform位置」2024年8月9日
世界坐标、全局坐标、左手坐标、绝对坐标局部坐标、自身坐标、物体坐标、本地坐标、相对坐标屏幕坐标、像素坐标视口坐标、视窗坐标GUI坐标、UI坐标。
2024-08-09 17:00:33
97
原创 博客摘录「 【Unity】坐标系、Vector3基础和Transform位置」2024年8月9日
它所具有的Transform参数所采用的就是世界坐标系。
2024-08-09 16:59:16
104
原创 博客摘录「 BUFF和技能数据编辑架构」2024年4月2日
技能:是瞬时改变对象某些属性,或是给对象加一个或多个BUFF,或者是二者的结合。BUFF:是持续控制对象某些属性的变化。技能和BUFF结合设计,就能对数据全面实时控制。这是基于固定技术的策划设计模式,而且也是平衡游戏的基础。
2024-04-02 20:17:30
125
原创 博客摘录「 Unity游戏开发客户端面经——lua(初级)」2024年4月1日
通过元表的__index元方法,将一个table的__index元方法设置为另一个table,那么后者的方法就被前者继承。
2024-04-01 18:57:28
163
原创 博客摘录「 xLua热更新(一)xLua基本使用」2023年8月23日
此时运行游戏我们会发现,控制台输出的是「Null」。这是因为Resources.Load<TextAsset>()会默认给文件名后面增加「.txt」后缀。也就是说这个方法只会读取到后缀为「.txt」的文件。
2023-08-23 08:37:42
139
原创 博客摘录「 Unity 热更新技术 | (一) 热更新的基本概念原理及主流热更新方案介绍」2023年5月19日
Unity在打包后,会将C#编译成一种中间代码,再由Mono虚拟机编译成汇编代码供各个平台执行,它打包以后就变成了二进制了,会跟着程序同时启动,就无法进行任何修改了。
2023-05-19 12:35:08
200
1
原创 博客摘录「 关于UGUI的EventSystem的学习」2023年5月10日
总的来说,EventSystem负责管理,BaseInputModule负责输入,BaseRaycaster负责确定目标对象,目标对象负责接收事件并处理,然后一个完整的事件系统就有了。
2023-05-10 05:25:44
117
原创 博客摘录「 UGUI源码分析:EventSystem事件系统」2023年5月10日
事件执行器,提供了一些通用的处理方法。Execute过程:GetEventList<T>(target, internalHandlers);获取物体上所有包含IEventSystemHandler且可用的组件arg = (T)internalHandlers[i];找到具体T类型组件functor(arg, eventData);执行handler.OnXXXX(ValidateEventData<XXXXEventData>(eventData));functor 类似这样。
2023-05-10 05:09:23
91
原创 博客摘录「 C#中事件」2023年4月11日
事件类型的委托变量(即用事件封装的委托类型变量),在外部不能直接当成其引用的函数来进行调用,因为其相当于私有的委托类型变量,但特殊在于它在外部只能用于注册或注销函数,而公有的委托类型在外部是可以直接用来调用对应的注册函数。在此,事件和私有类型的委托变量的区别就在于:私有类型的委托变量在类外部是无法直接访问的,而事件相对于私有类型的委托变量又稍微多了一点点特例,就是事件可以在类外部被直接访问,但只能放在左边用来注册或注销函数。除此之外,它们用法相同,如都不能在类外部直接调用对应的注册函数等。
2023-04-11 15:57:11
74
原创 问题:匿名函数里的变量?
在调用匿名函数的类里,没有函数中使用的变量,但实际调用没有问题。函数实现,在这个类里创建了hashmap,并在函数实现里调用。调用的Nm_shixian里的info可以使用hashmap。但是在实际调用函数体的类中没有hashmap。
2022-10-11 00:46:07
91
原创 笔记:关于匿名内部类的学习
initChannel(SocketChannel socketChannel)里的参数需要在serverBootstrap这个类里调用了这个initChannel方法传进去。这里的意思是new了个抽象函数(匿名内部类的实现)并重写了个方法当作参数,传进了childHandler这个方法里,
2022-09-25 00:38:18
106
原创 笔记:回调函数
把一个函数(方法)当作参数传给另一个函数,这个函数里面设置条件,条件达到时调用传送过来的函数(方法)。这时就相当于异步调用了。或者把一个对象当参数传过去,用对象来调用方法。接口类型当参数也行lambda。
2022-09-21 01:35:28
76
原创 笔记:python的opencv
之前一直用java的mat格式在用python时一直想着image转为mat格式,突然发现,可以直接输出numpy的格式
2022-06-07 06:09:19
1303
原创 笔记:Netty的handler
handler在初始化时就会执行,而childHandler会在客户端成功connect后才执行,这是两者的区别。
2022-06-04 18:48:40
1298
1
转载 IDEA中写xml配置文件的时候没有代码提示
问题情境:如开发SSM应用的时候,编写xml配置mapper.xml文件没有代码提示,这个问题应该是编写的xml文件中没有找到需要的dtd文件。在xml文件中的引入约束的标签如下:<?xml version="1.0" encoding="UTF-8" ?>并且"http://mybatis.org/dtd/mybatis-3-config.dtd">报红,不能简单地忽略,而是要引入资源解决爆红问题,不爆红也能用解决方式1:鼠标悬浮在"http://mybatis.org/dtd
2021-09-11 02:53:42
2320
原创 java.lang.ClassNotFoundException: com.alibaba.fastjson.JSON
在学习javaweb+js+servlet 前后端交互对象和json转换时遇到的问题在文件>项目结构>Artifacts下的WEB-INF新建一个lib文件夹,把所需要的包放进进去就好了
2021-08-16 16:27:20
1641
原创 idea的jdk版本一直变化
这文章是解决maven出现的问题,自己先试试不用maven是否会出现问题。去maven的目录下的setting修改,maven有两个一个在.m2;一个是自己设置的我出现问题的原因是之前修改过jdk的版本,而maven的配置没改,所以每次重启idea都要手动更改一下idea的jdk版本...
2021-08-02 22:11:42
456
转载 数据库设计三大范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库.
2021-04-10 00:21:50
106
转载 函数依赖
定义: 既然是数据库,那么函数依赖自然是存在于数据库表中的关系,或者说是数据库表中的字段的关系,即函数依赖是指关系中属性间(或者说是表中字段间)的对应关系。官方定义:设一个关系为R(U),X和Y为属性集U上的子集,若对于X上的每个值都有Y上的一个唯一值与之对应,则称X和Y具有函数依赖关系,并称X 函数决定Y,或称Y函数依赖于X,记作X→Y,称X为决定因素。理解:在一个表中,将所有字段分为两部分X和Y,如果X中的一条数据可以唯一确定Y中的一条数据,则称X和Y具有函数依赖关系,并称为X函数决定Y,或Y函
2021-04-09 23:03:39
1063
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人