logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Unity UGUI Image解析(一)

Unity UI中的Image组件继承自MaskableGraphic,通过重写OnPopulateMesh方法实现不同渲染类型。当类型为Simple时,根据useSpriteMesh设置选择生成方式:false时生成简单四边形顶点数据,true时则使用精灵网格。此外还支持Sliced、Tiled和Filled三种渲染类型,分别实现9宫格、平铺和填充效果。整个渲染流程通过Canvas系统的Rebu

文章图片
#unity#游戏引擎
C#闭包陷阱2

C#闭包在循环中的陷阱:IL代码揭示共享变量问题 文章通过一个Unity中的C#闭包示例,揭示了在for循环中使用闭包时常见的变量共享陷阱。当多个闭包捕获同一个循环变量时,它们实际上共享的是同一个闭包类实例,导致所有委托最终都引用循环结束时的变量值。通过分析IL代码发现:编译器只在循环外创建了一个闭包实例,循环中所有委托都指向该实例;每次循环修改的是同一个字段,导致最终所有闭包都输出相同值。解决方

文章图片
#c#
C#闭包陷阱1

看 IL 代码的开头部分,编译器生成了一个嵌套类。// ...// 证据 1:大数组在这里// 证据 2:小计数器也在这里// ...编译器强行把hugeData(100MB)和counter(4字节)关进了同一个类里。它们现在的命运已经绑定在一起了。合并hugeData和counter被合并到了同一个类中。共享:虽然useCounter(即b__1) 的代码逻辑里根本没出现hugeData(见

文章图片
#c##开发语言#unity
Unity3D中的ECS架构

创建一个Position和Velocity组件。

文章图片
#unity
C# Stack源码分析

本文介绍了.NET中的Stack<T>类,这是一个基于数组实现的后进先出(LIFO)集合类型。文章详细分析了其内部结构,包括存储元素的数组_array、栈顶指针_size和版本号_version字段。重点讲解了核心操作方法:Push入栈(均摊O(1))、Pop出栈(O(1))和Peek查看栈顶(O(1)),以及安全版本的TryPop和TryPeek。此外还介绍了查询方法Contains

文章图片
#c##java#算法
C# Queue源码分析

Queue<T> 是 .NET 中的泛型队列类,采用循环数组实现先进先出(FIFO)操作。核心字段包括_array(存储元素)、_head(队头)、_tail(队尾)和_size(元素数量)。主要方法包括: Enqueue:入队时自动扩容(默认翻倍); Dequeue/TryDequeue:出队操作; Peek/TryPeek:查看队首; Clear:清空队列时处理引用类型。通过环形数

文章图片
#c##开发语言
unity常见面试题

接口是一种完全抽象的类型,它只定义了成员的签名,但没有提供成员的实现。接口定义了对象应该具有的方法、属性和事件。抽象类是一种包含了抽象成员(方法、属性、索引器、事件)的类,它可以包含抽象成员和非抽象成员的实现。抽象类可以包含方法的实现,也可以包含字段和构造函数等。

文章图片
#unity
Unity 粒子系统参数说明

这些参数属于 Unity 粒子系统中 “Renderer” 模块的设置,用于控制粒子的外观和渲染方式,包括粒子的对齐、大小、材质、排序等。通过调整这些参数,你可以自定义粒子的渲染方式,实现不同的视觉效果,例如烟雾、火焰、爆炸、闪电等。

文章图片
#unity#游戏引擎
Unity打包设置

设置脚本编译时的定义符号,可以用于条件编译。

文章图片
#unity#java#游戏引擎
到底了