Unity3D C# 中使用foreach的GC产出(2023年带数据)
摘要:注意:笔者有点被杠怕了…确实也不严谨,也怕看不到,所以开头这里加一句:foreach本身不会产生GC,产生GC的原因是foreach使用了迭代器Enumerator,而取决于容器的不同,有些迭代器的初始化会产生GCAlloc… 一、Foreach究竟会不会产生GC? 很多读者在听一些群内大佬谈话过程
阅读全文
Unity3D C# IOCContainer-DI/IOC容器-依赖关系解耦处理
摘要:一、为什么需要IOC容器 IOC容器在大学学习中应该会经常见到,比如Java中大名鼎鼎的Spring架构,还有C#中的Autofac。 IOC容器可以帮助我们解耦对象之间的依赖关系,让对象只需关注自己的业务逻辑,而不需要关心如何创建和维护其他对象。 我这么说可能太过于高大上,我们举一个浅显的例子 假
阅读全文
Unity C# BindableProperty-属性变更事件绑定
摘要:一、前言 在开发过程中,我们常常遇见上图这样的需求,比如血量增加时就需要对应更新GUI,或者影响其他的值变化,很多读者可能会按照这样的结构去做。这正是Java式的属性写法,显得很臃肿,如果想要避免修改AddHp方法,同样需要在本类内新建委托。 public class MyClass { //生命值
阅读全文
Unity C# 消息机制-填坑笔记 (2)
摘要:一、前言 笔者曾在高中时写过一篇文风浮夸的文章(点我跳转),虽然发布在2021年,但是它的诞生时间更早(大概2020),只不过中途进了回收站,转眼笔者已经大一了,就想写一个属于自己的初步游戏框架(进阶工具集),其中最重要的一部分就是消息驱动。本文需要一定的编程基础。 另外本文不会讲很多内容,仅仅是作
阅读全文
Unity3D C# 单例属性和单例模板及优缺点
摘要:1.什么是单例模式 相信我们都遇到过这样的问题: 我们使用new创建对象,这个对象需要全局共享只用这一个我们需要用一种简单的方式全局能访问一个类创建的唯一对象 总结下来,我们经常需要创建一个类的单例,也就是创建单个实例供全局访问。 2.单例模板 我们试图创建一种全局都可以访问的对象,拥有着简单的语法
阅读全文
Unity 圆角矩形Shader实现(支持长方形)(只写两行)
摘要:一、 效果与引言 相信很多小伙伴都会遇到做圆角矩形的需求,网上的shader还不明白是怎么实现的,甚至还有一部分是错误的,本文讲从原理到代码讲解圆角矩形shader的实现 二、 原理分析 想要实现一个圆角矩形,常见的是抽象成一个数学模型,如下图紫色区域,就是我们应该保留的区域,为了更准确的描述这个图
阅读全文