自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Xlua分析:Lua调用C#

在之前的博客中讲了有关lua和c#交互的比较浅层的概念,即C#侧注册[LuaCallCSharp]和[CSharpCallLua]的标签后,即可实现双侧沟通。但是还是没有讲明白里面的一些具体内容包括参数传递、xlua栈调用,甚至是C#如何调用lua都没研究。本篇主题是lua如何调用C#的补充。

2024-01-28 21:16:30 2931 1

原创 Unity Dots理论学习-5.与ECS相关的概念

DOTS的面向数据编程方式比你在MonoBehaviour项目中常见的面向对象编程方式更适合硬件开发。可以尝试理解一些与数据导向设计(DOD)相关的关键概念,以及这些概念如何影响你的代码,对你在MonoBehaviour项目中的C#编程通常是较少涉及的。

2025-02-10 22:42:27 1426

原创 Unity Dots理论学习-4.ECS有关的模块(3)

对于子场景中的每个GameObject,烘焙会创建一个实体,这些实体会被序列化为文件,而且当子场景运行时被加载时,这些实体会代替GameObject本身被加载。— 项目是一个快节奏的竞争性多人游戏,例如射击游戏,需要授权服务器和客户端预测,以提供良好的玩家体验(如上所述,这些功能在Netcode for Entities中得到了支持,但在Netcode for GameObjects中没有)。块中第一个实体的ID和组件存储在这些数组的索引0处,第二个实体存储在索引1,第三个实体存储在索引2,依此类推。

2025-02-10 21:31:44 1137

原创 Unity Dots理论学习-3.ECS有关的模块(2)

如前所述,Unity中的C#代码默认通过JIT(即时编译)编译器Mono编译;或通过AOT(提前编译)编译器IL2CPP编译以提供更好的运行时性能,在某些目标平台上也会有更好的支持。使用Burst可以大大提高并行计算的性能和可扩展性,正如以下图像所示:然而,需要注意的是,,因此许多传统的C#代码无法通过它编译。。正如在这段中所描述的,

2025-01-17 15:46:51 753

原创 Unity Dots理论学习-2.ECS有关的模块(1)

Unity的实体组件系统(ECS)是支撑DOTS模块和技术的面向数据架构。ECS为Unity中的内存数据和runtime进程调度提供了高度的控制和确定性。配备了两个兼容的物理引擎,一个高级的Netcode package,以及一个用来将大量ECS数据渲染到Unity的可编程渲染管线(SRP)、通用渲染管线(URP)和高清晰度渲染管线(HDRP)的渲染框架。这套ECS框架与GameObject数据兼容,允许你使用一些Unity 2022 LTS中尚未原生支持ECS的系统,如动画、导航、输入或地形。

2024-12-26 19:41:18 839

原创 Unity Dots理论学习-1.关于性能

也许你的游戏在高端PC上运行得很好,但在低端移动平台上,帧率是不是会慢很多,导致明显的卡顿?编译器可能无法进行有效优化;实际上,Unity开发者长期通过“对象池”(主要优点是高效地重复使用来自预分配池的对象,消除了频繁创建和销毁对象的需要)来缓解这个问题(尽管对象池的使用可以说违背了最初使用能自动垃圾回收的语言的目的)。但是,如果数据在内存中是不连续的分散存储,那么访问它将会导致大量的缓存未命中,进而需要从更慢的主存中获取。或者,你编写的C#代码可能占用了过多的CPU时间,导致游戏的现实模拟本身很慢。

2024-12-26 19:04:08 1172

原创 Unity Spine优化思路

我们的项目采用的人物表现方式是spine动画,里面有一些设置需要提前注意一下,否则会造成不必要的性能浪费。

2024-10-16 14:12:43 1230

原创 Unity镂空图像做法

现在要完成一个需求,即镂空中间部分的image,外围image可以定义颜色并可选屏蔽点击,而中间的image需要透明且可以穿透,必须不能屏蔽点击。

2024-04-29 21:25:17 1155

原创 Unity+Shader入门精要-1. 入门shader

《Unity+Shader入门精要》的入门shader内容

2024-04-29 15:18:05 1374

原创 Unity TMP文字移动效果

看见很多游戏有很特殊的波浪形文字效果,于是来尝试一下控制TMP文字顶点的方式达到类似效果。

2024-03-02 14:54:43 1163 2

原创 unity ui界面优化

优化一个比较复杂的ui界面,里面有多个rt和组件。

2024-02-23 13:27:40 916

原创 Lua内存管理策略

传统的内存管理策略主要分为两种:引用计数,和垃圾回收。对于Lua这种轻量化语言而言,前者占据大内存的开销是极力避免的。因此Lua采取了垃圾回收的机制,这也是本篇文章的主题。

2024-02-17 12:17:38 1743

原创 Lua:面向对象/C之间的交互

Lua可以通过表来实现封装、继承和多态。C API是一个C代码与Lua进行交互的函数集。

2024-02-16 21:33:49 1443

原创 Lua Table库

table 库由一些操作 table 的辅助函数组成。他的主要作用之一是对 Lua 中 array 的大小给出一个合理的解释。另外还提供了一些从 list 中插入删除元素的函数,以及对 array 元素排序函数。

2024-02-11 22:26:36 1344

原创 Lua weak表

这两天阅读了《programming in lua》后有了些新的体会,在这里只做一些之前没有了解的补充内容。

2024-02-11 21:53:34 1689

原创 Lua Packages

Lua 并没有提供明确的机制来实现 packages。然而,我们通过语言提供的基本的机制很容易实现他。主要的思想是:像标准库一样,使用表来描述 package。

2024-02-11 21:08:50 1236

原创 Lua Global环境

Lua的全局变量实际上是用environment这个表来存储所有的全局变量,其优点就是简化了lua的内部实现,而且还能像其他类型的表一样去操作这个全局表。

2024-02-10 22:27:28 1342

原创 lua:有关表访问的metamethod

针对在两种正常状态:表的不存在的域的查询和修改,Lua也提供了改变 tables的行为的方法。

2024-02-10 14:35:51 1138

原创 Lua metatable & metamethod

programming in lua》里有一个案例很详细,就是写一个集合类的table,其负责筛选出table中不重复的元素并组合成一个新的table。

2024-02-09 22:33:13 1115

原创 Lua序列化

我们经常需要序列化一些数据,为了将数据转换为字节流或者字符流,这样我们就可以保存到文件或者通过网络发送出去。我们可以在 Lua 代码中描述序列化的数据,在这种方式下,我们运行读取程序即可从代码中构造出保存的值。

2024-02-09 11:32:53 1491

原创 Lua协程-coroutine

lua也有协程这个机制,用以完成非抢占式的多任务处理。

2024-02-08 09:03:35 1124

原创 Lua编译与运行

lua会首先把代码编译成中间码然后执行,或许大家都有所困惑:它不是解释性语言吗?其实lua作为解释性语言的意义在于其能在运行过程中完成编译工作,正是dofile、loadfile、require这种函数的存在,lua才能顺理成章地称自己为“解释性语言”。

2024-02-07 13:27:09 1221

原创 Lua迭代器以及各种源函数的实现

本文主要分析Lua迭代器的原理和源函数iter、ipairs、pairs实现

2024-02-07 11:53:12 994

原创 Lua函数进阶

简要介绍了Lua函数的高阶用法

2024-02-06 21:59:43 2114

原创 Lua可变参数函数

本篇文章主要简单介绍lua可变参数函数的妙用

2024-02-06 17:53:55 1137

原创 lua只读表

只读表的用法

2024-02-04 22:31:38 1076

原创 Xlua分析:C#调用Lua

本篇主题是lua和c#交互中C#如何调用lua的。

2024-02-03 16:30:09 1595 1

原创 C#hybridCLR热更新方案初探

暂时处于hybridCLR的初步研究状态,目前的框架使用还是尚少,本篇文章旨在同步给大家大概的使用流程和使用心得,在初步建立新项目时可以适当考虑。

2024-01-24 12:31:40 2010

原创 游戏渲染管道

高级的渲染步骤是由管道(软件架构)实现,各个阶段会操作输入流中的数据项,并对输出流产生数据。

2024-01-21 13:15:14 1347 1

原创 渲染引擎光栅化基础

本篇为读者提供实时渲染技术的概述,以及作为进一步学习的跳板,使我们阅读其他三维图形书籍会更得心应手

2024-01-17 21:55:01 1216

原创 迷宫算法的unity demo实现

在之前博客提及过A*寻路算法,同时想实现生成迷宫算法,所以有了这次主题。

2024-01-14 21:38:31 2813 1

原创 游戏引擎架构-资源及文件系统

本篇主要讨论现代三维游戏引擎中典型资源管理器的运作方式。

2024-01-11 21:52:38 1191

原创 SpriteAtlas图集预览算法:MaxRectsBinPack

前段时间对unity spriteAtlas预览功能比较感兴趣,就去查询了一下unity是如何实现的。

2024-01-09 21:54:11 1760 3

原创 游戏引擎架构-游戏支持的系统

此章节主要讨论多数游戏引擎中都会出现的底层支持系统。

2024-01-07 11:25:40 1367 1

原创 《游戏引擎架构》知识点合集-3.游戏软件工程基础

本篇博客旨在收集(第二版)书籍中每一章中重要的知识点,一方面供他人一起学习,另一方面可以让本人在之后能更快地温故知新。

2024-01-03 17:52:47 554 1

原创 Xlua Wrap

说到这里,就已经很大程度地告诉大家lua侧能调用c#端的函数或者变量的原因了。

2024-01-02 14:20:08 1665 1

原创 《游戏引擎架构》知识点合集-1.导论

旨在收集(第二版)书籍中每一章中重要的知识点,一方面供他人一起学习,另一方面可以让本人在之后能更快地温故知新。

2024-01-01 23:06:20 545

原创 Lua与C#交互初析

自主了解Lua和C#交互的底层逻辑和实现原理,用以之后在lua测开发的时候做出良好的代码优化。项目采用xlua结构与c#端进行交互,在个别地方和其他类型的lua(比如和tolua的加载机制)不一样,但lua底层都是一致的。在此次分享中会有一些知识专属于xlua范围。

2023-12-19 11:02:16 2546 1

原创 帧同步Demo环境初步搭建

多人游戏同步相关知识点还是非常多的,以上还只是在低延迟的情况下,要确保玩家在不同网络条件下均能够正常游戏,还需要考虑到网络延迟和抖动,并使用恰当的插值和平移技术,以使得游戏状态在不同客户端上看起来尽量一致。之后对这个demo的扩充就是进一步帧同步。

2023-12-10 22:56:12 746 1

原创 《胡闹厨房》Demo制作体会

油管的《胡闹厨房》Demo更适合初学者,里面很多机制都是受益匪浅的。对于职场老将而言,可以跳过很多比较繁琐且之前早就学会的内容,取精华去糟粕,在教程这么做的时候可以深度思考它为什么会这么做,有助于想到更完美更舒适的解决方式。

2023-12-03 15:29:49 675 1

迷宫算法的unity demo实现

迷宫算法的unity demo实现

2024-01-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除