Unity
文章平均质量分 84
小龙龙丶
从事Unity游戏开发,爱好图形学
展开
-
Unity UGUI自适应布局系统详解
前言此文延续上篇文章Unity UGUI源码解析,来进行对应的关于UGUI布局这块的讲解,关于布局刷新这块逻辑请参考上文中Canvas渲染重绘流程,用样适用布局更新这块逻辑,由于组件都是功能向的脚本,所以此文主要说明布局组件的使用方法,不对代码有过多的深入,具体实现逻辑请查看源码。UGUI布局组件详解组件概览让我们先看一下UGUI框架中在UI布局这方面有哪些脚本,再来进行一一讲解可以看到所有带icon图片的脚本都是我们可以在对UI进行布局的时候进行使用的,这里核心的脚本组合是LayoutGro原创 2021-07-19 20:37:55 · 7577 阅读 · 2 评论 -
Unity UGUI源码解析
前言这篇文章想写的目的也是因为我面试遇到了面试官问我关于UGUI原理性的问题,虽然我看过,但是并没有整理出完整的知识框架,导致描述的时候可能自己都是不清不楚的。自己说不清楚的东西,别人就等于你不会。每当学完一个东西的时候,应该会大体框架流程,具体实现细节有所了解,然后整理出来,以备日后查阅。人的记忆是有限的,如果不记下来,每次翻的都是别人的博客,这样其实是一个很不好的习惯。所以决定整理出一些自己关于UGUI的了解。以上只是我的牢骚,下面开始今天的内容。学习方法论与要点整理在框架之前我们需要先思考,我原创 2021-07-18 21:42:36 · 4833 阅读 · 3 评论 -
记一次 盛大,巨人,塔人 面经
前言这次完全是裸面,没有任何的准备,也发现了自己的很多不足,包括很多东西当场没办法冷静分析,很多自己写过的代码细节也忘记了。而且他问的知识点方向有的确实很少接触过,我会根据我的回忆来总结出这次经验,总之有兴趣的可以往下看吧。正文盛大 龙之谷2团队刚开始我说了前项目一些框架性的东西,他总之也就听个大概。接下来是他问的问题知道c#引用类型和值类型的区别吗,说下分别有哪些有没有用过c#的unsafe你知道c#的gc机制吗,描述一下在lua中怎么实现一个类xlua中lua和c#怎么进行交互,l原创 2021-07-06 22:24:49 · 336 阅读 · 1 评论 -
Unity SpriteRender和Image的区别
Image组件渲染基于CanvasRender和Image组件进行渲染默认材质渲染队列为Transparent Geometry,开启模板测试,渲染顺序是基于Canvas的Order In Layer层级,由Canvas逻辑进行管理默认的渲染网格为正方形,更多的片元着色器操作可以实现基于图集打包和网格数据合并,在此Canvas下实现实现渲染批处理交互检测逻辑根据Unity层级面板顺序把Image组件加入队列,通过UGUI的EventSystem的Update来每帧遍历所有Canva原创 2021-06-27 00:51:16 · 2233 阅读 · 3 评论 -
优雅编程-lua实现函数柯里化
理解闭包函数首先我们来看一个普通的函数作用域的实现--普通的变量定义 function a() local flag = 1 print("打印结果:"..flag) end打印结果:1这段函数会在他执行执行完这个方法后,flag的作用域的失效了。下面让我们来看这段基本的函数内部的闭包实现 --普通的变量定义 function a() local flag = 1 local func = fun原创 2021-06-25 01:24:03 · 430 阅读 · 0 评论 -
Unity资源加载方式以及管理
资源加载接口以及分析一、AssetBundle.LoadFromFile (string path, uint crc, ulong offset); 同步方法AssetBundle.LoadFromFileAsync (string path, uint crc, ulong offset); 异步方法最快的ab包加载方式,内存占用低,不可自定义硬盘数据格式优点: 加载效率高,内存占用低,加载时只加载文件头,只有在真正加载对应资源的时候才会加载进内存缺点: 指定的ab包必须是未经自压缩与加密的原创 2021-06-20 15:46:01 · 1773 阅读 · 3 评论 -
Lua实现的对象池,Unity
local PrefabObjectPool = {}PrefabObjectPool.__index = PrefabObjectPoolfunction PrefabObjectPool.New(prefab,capcity) if prefab == nil then error("[PrefabObjectPool]prefab should not be nil") end原创 2017-08-17 17:41:49 · 4472 阅读 · 2 评论 -
Unity性能优化 对象延迟创建
using UnityEngine;public class LaterCreator : MonoBehaviour{public delegate GameObject CreatorCallBack();public CreatorCallBack _creatorCallBack;public System.Object CallBackObj;原创 2017-08-17 18:10:17 · 1448 阅读 · 0 评论