<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Charizard_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Charizard_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Charizard_]]></copyright><item><title><![CDATA[Unity中Awake和Start的执行时机及区别]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/145996838</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/145996838</guid><author>Charizard_</author><pubDate>Mon, 03 Mar 2025 19:26:57 +0800</pubDate><description><![CDATA[是脚本实例化时调用的，场景中未激活的物体，在游戏开始时是不会被加载以及实例化的，因此物体身上的脚本也不会被实例化。方法动态创建时，Unity 会实例化该物体上所有脚本。如果一个场景中的物体没有被激活（即。），Unity 会实例化该物体上所有脚本。用于初始化不依赖其他对象的变量或组件。用于初始化依赖其他对象或组件的操作。适合在游戏启动时执行一次的操作。适合在游戏正式开始前执行的操作。当一个场景被加载时，场景中所有。在脚本启用后，且在第一次。调用，无论脚本是否启用。），那么它身上脚本的。）上的脚本会被实例化。]]></description><category></category></item><item><title><![CDATA[Unity UGUI Button 点击失效的常见原因及解决方法]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/145155950</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/145155950</guid><author>Charizard_</author><pubDate>Wed, 15 Jan 2025 11:38:31 +0800</pubDate><description><![CDATA[如果检测到一个 Graphic 元素（包括 Button 的子物体上的 Image），则会通知该元素的父对象处理点击事件。因此，即使 Button 本身没有挂载 Image，但子物体上的 Image 捕获了射线，它的点击事件会传递到 Button。将物体的本地缩放值的 X 轴设为负值（-1），会导致物体在 X 轴方向上 镜像翻转。这样的视觉效果与旋转 Y 轴 180 度一样，但可以保持法线方向不会改变，仍然保持面向摄像机，因此射线检测正常工作。的点击事件需要一个可以被射线检测到的图形元素（]]></description><category></category></item><item><title><![CDATA[C# 委托的原理以及与Unity对象生命周期的关系]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/144438125</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/144438125</guid><author>Charizard_</author><pubDate>Thu, 12 Dec 2024 23:12:09 +0800</pubDate><description><![CDATA[在 C# 中，delegate）是一种类型安全的函数指针。它本质上是一个对象，封装了对方法的引用。]]></description><category></category></item><item><title><![CDATA[为什么 IList＜IList＜int＞＞ 不等于 List＜List＜int＞＞ ？]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/143869392</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/143869392</guid><author>Charizard_</author><pubDate>Mon, 18 Nov 2024 23:24:10 +0800</pubDate><description><![CDATA[CS0266:无法将类型"System.Collections.Generic.List”隐式转为"System.Colections.Generic.list"。对于 IList list = new List();接口，但泛型类型参数在赋值时必须完全匹配。的实现类，但泛型不支持隐式转换。]]></description><category></category></item><item><title><![CDATA[C#中const readyonly static的区别]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/142973569</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/142973569</guid><author>Charizard_</author><pubDate>Wed, 16 Oct 2024 10:42:04 +0800</pubDate><description><![CDATA[定义const关键字用于定义编译时常量，即在编译时就必须确定其值，且值不可改变。const字段的值在整个程序的生命周期内保持不变。存储位置：常量通常存储在程序的元数据中，它们会直接内联到使用它们的代码中，因此在多个地方引用同一个常量时，编译器会将常量值直接插入到代码中，不会分配内存来存储这个常量。初始化时机const字段必须在声明时进行初始化，且只能使用编译时常量来初始化。这意味着它只能使用数值、字符串等基本类型来赋值，而不能使用运行时计算的值。修饰范围const字段隐式是static。]]></description><category></category></item><item><title><![CDATA[C#中的多维数组([ , ])与交错数组([ ][ ])：性能与应用场景的对比]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/142758209</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/142758209</guid><author>Charizard_</author><pubDate>Tue, 08 Oct 2024 14:34:35 +0800</pubDate><description><![CDATA[多维数组是一个规则的矩阵结构，行和列的数量是固定的。每一行都必须有相同的列数，构成一个矩形矩阵。交错数组是数组的数组。交错数组的每一行都是一个独立的数组，所以各行可以有不同的长度。]]></description><category></category></item><item><title><![CDATA[学习C# 引用传递与ref关键字：与 C++ 的对比分析]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/142471014</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/142471014</guid><author>Charizard_</author><pubDate>Mon, 23 Sep 2024 23:44:03 +0800</pubDate><description><![CDATA[在 C# 中，方法参数的传递方式是一个重要的概念，尤其是在处理引用类型时。尽管引用类型的对象是通过引用传递的，但传递的实际上是引用的副本。我原本认为，这不是引用类型吗，传递的是引用啊，我修改了引用的指向，那么原对象的信息应该会交换啊？存储的是对象的内存地址，指向该对象在堆中的实际数据。当你传递一个引用类型的对象时，传递的是这个对象的。如果你修改引用所指向对象的属性，由于两个引用指向同一个对象，所以这些修改会影响到原对象。同理，在C++中传递指针时，也是类似的，传递的是指针的副本而非原始的指针。]]></description><category></category></item><item><title><![CDATA[Unity中销毁和禁用对Invoke和协程的调用的影响]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/142138557</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/142138557</guid><author>Charizard_</author><pubDate>Wed, 11 Sep 2024 15:39:01 +0800</pubDate><description><![CDATA[在 Unity 开发中，我们经常需要在游戏对象的生命周期中进行一些异步操作，比如使用Invoke延时调用方法，或启动协程来处理复杂的逻辑。然而，当游戏对象被销毁或禁用时，这些操作会如何表现呢？和和，并深入探讨它们对Invoke和协程执行的影响，以及如何避免由此引发的潜在问题。通过这些案例分析，你将更清晰地理解 Unity 中对象的生命周期管理，帮助你在项目中更有效地控制异步操作的执行。]]></description><category></category></item><item><title><![CDATA[C#和C++中浅拷贝的异同]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/142095541</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/142095541</guid><author>Charizard_</author><pubDate>Tue, 10 Sep 2024 12:28:03 +0800</pubDate><description><![CDATA[【代码】C#和C++中浅拷贝的异同。]]></description><category></category></item><item><title><![CDATA[Unity中屏幕坐标转世界坐标ScreenToWorldPoint()时z轴的设置]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/140968311</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/140968311</guid><author>Charizard_</author><pubDate>Tue, 06 Aug 2024 23:13:15 +0800</pubDate><description><![CDATA[值为0，转换后的坐标始终是摄像机的坐标。下，转换屏幕坐标到世界坐标时，]]></description><category></category></item><item><title><![CDATA[Unity使用多屏幕Display以及不同屏幕的射线检测]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/140960750</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/140960750</guid><author>Charizard_</author><pubDate>Tue, 06 Aug 2024 17:56:15 +0800</pubDate><description><![CDATA[因为对于每一小块屏幕来说，分辨率是1920x1080，因此需要减去第一块屏幕的宽度，即pos - new Vector2(Display.displays[0].systemWidth,0)，也就是说（960,540）才是我要传给camera.ScreenPointToRay(pos)的值。在window显示设置中，我的两块屏幕是按照扩展模式且左右连接的，那么在这种情况下，最终游戏运行时合成的一个大屏幕的分辨率是3840 x 1080（两块小屏幕都是1920 x 1080）。]]></description><category></category></item><item><title><![CDATA[编译时的内存分配]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/139973753</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/139973753</guid><author>Charizard_</author><pubDate>Wed, 26 Jun 2024 00:11:43 +0800</pubDate><description><![CDATA[编译时内存分配主要是指在程序编译阶段，由编译器为程序中的各种静态数据分配内存空间。这些静态数据包括全局变量、静态变量、常量等。这些内存分配在编译时就已经确定，在程序加载到内存后，这些内存空间会被操作系统分配并初始化。]]></description><category></category></item><item><title><![CDATA[踩坑，C#和Java中的substring参数]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/139607918</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/139607918</guid><author>Charizard_</author><pubDate>Wed, 12 Jun 2024 01:47:01 +0800</pubDate><description><![CDATA[Java的substring()方法中的第一个参数是开始索引，第二个参数是结束索引。C#的Substring()方法中的两个参数，第一个是开始索引，第二个是长度。]]></description><category></category></item><item><title><![CDATA[C#中静态变量，静态构造函数，普通变量，普通构造函数的执行顺序。]]></title><link>https://blog.youkuaiyun.com/Charizard_/article/details/139538081</link><guid>https://blog.youkuaiyun.com/Charizard_/article/details/139538081</guid><author>Charizard_</author><pubDate>Sat, 08 Jun 2024 02:41:11 +0800</pubDate><description><![CDATA[静态构造函数（Java中是静态代码块）：静态构造函数在静态变量和静态代码块执行完毕之后执行。静态构造函数只在类第一次被加载时执行一次。普通构造函数：普通构造函数在普通变量初始化之后执行。每次创建类的实例时都会执行一次普通构造函数。静态变量：静态变量在类第一次被加载时初始化。这是在任何静态构造函数或静态代码块执行之前完成的。普通变量：普通变量在每次创建类的实例时初始化。这是在普通构造函数执行之前完成的。普通构造函数执行（每次创建实例时）普通变量初始化（每次创建实例时）]]></description><category></category></item></channel></rss>