自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [Command]特性

请注意,随着Unity官方停止对UNet的支持并转向新的多玩家和实时服务解决方案,上述信息主要是针对曾经使用过UNet或者现在使用类似概念的第三方库(如Mirror)的情况。对于新的项目,查阅最新的官方文档或者所选用的第三方库的相关资料来了解当前的最佳实践。方法是在服务器上执行的,它们提供了一种机制来控制谁能够触发特定的游戏逻辑。时,它意味着这个方法将会在服务器上执行,而不是在调用它的客户端上。调用是可靠的,这意味着如果调用失败,系统会尝试重新发送直到成功为止。,以便清楚地表明这是一个命令方法。

2025-01-14 17:13:05 180

原创 关于QFramework UIKit和ResKit生成的UI预制体打包后报错Failed to Create Res. Not Find By ResSearchKeys:AssetName:base

关于QFramework UIKit和ResKit生成的UI预制体打包后报错NullReferenceException: Object reference not set to an instance of an object QFramework.ResLoader.LoadAssetSync (QFramework.ResSearchKeys resSearchKeys) (at Assets/QFramework/Toolkits/ResKit/Scripts/Framework/ResLoader

2024-12-17 09:58:15 365

原创 c#析构函数和构造函数

构造函数是在创建对象时自动调用的方法,主要用于初始化对象的状态。

2024-12-05 17:50:40 481

原创 装箱和拆箱

装箱是指将一个值类型(例如。

2024-12-05 09:18:30 264

原创 abstract关键字

使用abstract关键字可以创建一种特殊的类或方法,这些类或方法不能直接实例化,并且强制要求派生类提供具体实现。抽象类是一种不能实例化的类,它通常包含一个或多个抽象成员,并且用来作为其他类的基础。抽象方法是没有实现细节的方法声明,它只能出现在抽象类中。模板方法模式:抽象类可以定义模板方法,即包含具体实现的方法,也可以包含抽象方法,由派生类来完成特定的实现。强制实现:抽象方法可以强制派生类实现某些方法,有助于保持代码的一致性和可预测性。当一个派生类继承了一个包含抽象方法的抽象类时,必须重写所有抽象方法。

2024-09-24 10:42:41 401

原创 Unity开发使用Rider新建C#文件,模版设置

选择其中的c#,在框选区域设置你想改成的模版。然后选择编辑器中的文件模版。

2024-09-24 10:41:30 479

原创 构造函数是否能被重写?那能否被重载?

在C#中,构造函数既不能被重写也不能被指定为虚方法,因此也就不存在“重写构造函数”的概念。因为构造函数的主要职责是在创建新对象时初始化该对象的状态,并且这一过程是由运行时自动触发的,不属于继承体系的一部分。通过在一个类中定义多个构造函数,每个构造函数可以接受不同数量或类型的参数,从而允许以多种方式实例化对象。所以,虽然构造函数不能像普通方法那样被重写(overriding),但可以通过定义多个具有不同参数列表的版本来实现重载(overloading)。的点,另一个则允许传入具体的坐标值。

2024-09-13 16:31:38 466

原创 C#重载和重写的区别

重载指的是在同一类中定义多个具有相同名字但参数列表不同的方法。这意味着方法的名称相同,但每个方法的参数列表(包括参数的数量、类型或顺序)至少有一项不同。

2024-09-13 16:27:22 1004

原创 修改枚举类型时注意

这样,Green的值就变成了3,Yellow的值就是4,而Blue的值仍然是5。在这种情况下,Red的值为0,Green的值为1,Blue的值为2。访问枚举成员:可以通过枚举变量的名称来访问对应的枚举成员。使用枚举作为参数:可以将枚举类型作为函数的参数。转换枚举类型:可以使用静态方法。循环遍历枚举的所有成员。将字符串转换为枚举类型。

2024-09-11 11:00:01 287

原创 unity的inputField文本框赋值问题

/ 启动时调用 void Start() { // 获取InputField的当前文本内容 string currentText = inputField.text;// 设置InputField的新文本内容 inputField.text = "新的文本内容";在Unity中,InputField是一个用于输入文本的游戏对象组件,它主要用于获取用户在输入框中键入的内容。如果你想要通过InputField直接改变子物体上的Text组件的文字,会遇到一些限制。自身管理的,它封装了一层,而不是由普通的。

2024-09-11 10:50:39 635

原创 List<T>.Sort方法会自动处理参数传递

// </summary> /// <param name="obj1">第一个用于比较的交互物体游戏对象。如果obj1的索引大于obj2,则返回正数;

2024-09-04 09:29:20 460

原创 检测鼠标指针或触摸输入是否悬停在任何UI元素(GameObject)上

当你调用这个方法时,它会检查当前是否有输入指针(例如鼠标指针或触屏手指)正位于任何激活的UI元素之上。这个函数属于Unity的Event System,它是处理UI交互(如点击、拖动等)的核心组件。防止背后的游戏对象接收点击:在处理鼠标点击或触摸输入时,你可能希望忽略那些实际上是对UI元素的点击,而不是游戏世界中的对象。通过在处理点击事件前检查。EventSystem:Unity中处理输入事件的系统,特别是针对UI元素的交互。这行代码检查当前是否有UI元素被指针覆盖,如果没有,则执行大括号内的代码块。

2024-09-04 09:28:40 945

原创 Unity通过for给按钮绑定事件传递参数注意

解决办法通过新建变量将按钮传递的参数指引向不同的地址,因为for每次执行都是新建的不同的变量,所以可以实现。匿名委托在创建时会自动捕获其外部作用域中的变量,这样做的目的是为了确保在委托执行时,可。种闭包行为,编译器会将这些变量的引用保存在委托对象中,以便在委托执行时可以访问它们。匿名委托实际上是一个闭包,它可以访问其创建时所在作用域中的变量。在上面的代码块中最终传递的参数是i的最终值,解释如黄色区域文字。通过创建变量,让不同的按钮捕捉不同的上下文,或引用不同的变量。

2024-08-29 11:43:50 290 1

原创 PhotonServer几种SDK的区别

它在构建时考虑到了简单性,可以自然地集成到普通的Unity工作流程中,同时也提供了先进的功能,如数据压缩、客户端预测和开箱即用的停滞补偿。它提供了底层的网络通信功能,使开发者能够构建自定义的多人实时游戏,满足对网络通信有更高要求的场景。Fusion融合了PUN和Bolt的所有最佳概念,同时以高性能的架构从头开始构建,以实现开箱即用的最先进的功能。这对于测试和除错是很有用的。除了基于云端的共享模式,即每个客户端对自己的对象有完全的权限(就像之前的PUN),Fusion还包括两种完全的服务器权限模式。

2023-11-05 21:51:06 1167

原创 关于虚方法、隐藏方法、密封类、密封方法、抽象类、抽象方法、接口。注意点

虚方法:要求在继承中,子类重写的方法的方法名,返回值类型、参数列表相同。关键字 父类virtual,子类overridevirtual:在一个基类函数声明为virtual就可以在任何派生类中重写该函数。隐藏方法:如果签名相同的方法在基类和派生类中都进行了声明,但是该方法没有分别声明为virtual 和override 那么派生类就会隐藏基类方法 需要用new关键字来声明这个方法。签名相同 : 意思是`返回值`、`方法名`、`形参`都相同3. 不同点1. 概念上的不同:...

2021-11-02 14:21:39 171

原创 C#第三课

作用域:确定作用域遵循以下规则:1,只要类在某个作用域内,其字段(成员变量)也在该作用域内2,局部变量存在于表示声明该变量的块语句或方法结束的右花括号之前的作用域内3,在for、while或类似语句中声明的变量存在于该循环体内常量1.概念如果一个变量,不希望动态更改,就可以使用常量,常量的值,从初始化后,就不可修改2 . 关键字:const3. 语法:const数据类型常量名=常量值;枚举1.概念当一个数据,取值是多个固定值的时候,就可以使用枚举...

2021-10-22 13:52:41 113

原创 ES6-Symbol类型添加的对象方法调用以及注意事项

symbol是一种基本数据类型. 每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。 //向对象中添加方法 up down let game = { name:'俄罗斯方块', up: function(){}, down: function(){} }; // 声明一个对象 let methods = { up: Symbol(), down: Symbol() ..

2021-10-20 10:26:58 993 3

原创 C#第二课

1. 数据类型转换1.转义字符:C#中转义字符分2中,一种是\,一种是@。@符号在C#中有两个作用在字符串的前面加@表示取消字符串中的转义例如 string path=@"d:\root\subdir";如果用户定义的对象名和系统关键字冲突,可以在变量前面加入@例如 string @Class="this is a test";2. 显式与隐式转换概念: 隐式转换 是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,

2021-10-20 10:15:11 380

原创 C#第一课

using--引入命名空间namespace--定义一个命名空间CLR--运行环境注释的三种方法://(行注释) , /**/(代码块注释) , ///(这个是方法注释)。数据类型:1.值类型(Value types)值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当声明一个 int 类型时,系统分配内存来存储值。类型 描述 范围 .

2021-10-18 16:44:59 116

空空如也

空空如也

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

TA关注的人

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