LoserMe-分享我的C#&Unity学习之旅 廉价便宜国外VPS推荐,独享科学上网IP,Unity游戏制作学习,各种学习记录

成员变量和访问修饰符:守护游戏数据的卫士

想象一下,你在设计一款足球游戏。每个球员都有自己的属性,比如速度、射门、传球等等。这些属性就好像球员的“秘密档案”,决定了他们在球场上的表现。 但是,如果任何人都可以随意查看和修改这些“秘密档案”,那游戏就乱套了! 为了保护这些重要的数据,我们需要两个工具: 成员变量: 用来存储数据的“保险箱”。

OneBigLoser 发布于 2024-07-02

类和对象:游戏世界的建筑师

想象一下,你要设计一款角色扮演游戏。在这个游戏世界里,你需要创造各种各样的角色:勇敢的战士、狡猾的盗贼、神秘的法师等等。每个角色都有自己的属性(比如生命值、攻击力)和行为(比如攻击、防御、使用技能)。 这时候,类和对象就派上用场了! 类就像是一个蓝图,它定义了某一类事物的共同特征和行为。 比如,我们

OneBigLoser 发布于 2024-07-01

选择排序详解

基本概念 选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每一轮从未排序的部分中选出最小(或最大)的元素,放到已排序部分的末尾,直到所有元素都排好序。 选择排序的用途 适用于小规模数据的排序。 教学和学习:由于其简单性,经常用于教学排序算法的基本概念。 在游戏开发中

OneBigLoser 发布于 2024-07-01

冒泡排序-可以想象成在水中的气泡不断上浮的过程

基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它反复遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换过来,直到整个数列有序。因为在排序过程中,大的元素会逐渐“冒泡”到数列的顶端,故名冒泡排序。 冒泡排序的用途 小规模数据排序:适合于小规模数据的排序。 教学和学习:由于

OneBigLoser 发布于 2024-06-29

递归函数:编程界的"俄罗斯套娃"

在编程的世界里,有一种特殊的函数叫做递归函数。它们就像一套俄罗斯套娃,每个函数都包含一个更小的自己,直到最后一层。这种自我调用的特性使得递归函数可以用简洁的代码解决复杂的问题。 基本概念 递归: 函数直接或间接地调用自身的编程技巧。 递归条件: 递归函数在满足特定条件时进行自我调用。 基线条件: 递

OneBigLoser 发布于 2024-06-28

函数重载:编程界的"同名不同享"

在编程的世界里,函数就像是一群勤劳的工人。通常,每个工人都有自己特定的工作。但有时,我们会遇到一些多面手,他们可以根据需要完成不同的任务。在C#中,这些"多面手"就是通过函数重载实现的。 基本概念 函数重载: 在同一个作用域内,定义多个同名但参数不同的函数。 参数不同: 参数的类型、数量或顺序不同。

OneBigLoser 发布于 2024-06-28

ref 和 out 的详细解释

在C#中,ref 和 out 是两种用于参数传递的修饰符,它们允许方法对参数进行修改,并将修改后的值返回给调用者。它们在语法和使用上有一些区别。 基本概念 ref 用途:ref 关键字用于通过引用传递参数,使方法可以对参数进行修改,并将修改后的值返回给调用者。 特点:参数在传递前必须被初始化。 常见

OneBigLoser 发布于 2024-06-28

值类型和引用类型

在C#中,数据类型分为两类:值类型和引用类型。了解它们之间的区别对编程很重要,因为它们在内存中的存储和处理方式不同。 基本概念 值类型 存储:值类型的变量直接包含其数据。它们存储在栈(Stack)上。 赋值:当一个值类型变量赋值给另一个变量时,实际上是将值复制了一份。 常见值类型:基本数据类型(如i

OneBigLoser 发布于 2024-06-27

二元数组/二维数组的基本概念和用法

二元数组,又称二维数组,是一种在编程语言中常见的数据结构。它可以看作是一个表格或矩阵,由行和列组成。下面我将详细解释二元数组的概念、用途、语法以及在游戏开发中的应用,并提供一些示例代码和练习题。 基本概念: 二元数组是一种由行和列组成的矩形阵列。 每个元素都可以通过指定其行索引和列索引来访问。 行索

OneBigLoser 发布于 2024-06-27

什么是数组(Array)

数组(Array)是一种数据结构,它可以存储多个相同类型的值。这些值被存储在连续的内存位置,可以通过索引访问它们。数组的大小是固定的,在创建数组时必须指定它的长度。 数组的用途 数据存储:存储一组相关的数据,比如学生的成绩、商品的价格等。 数据处理:对一组数据进行批量处理,比如排序、查找等。 在游戏

OneBigLoser 发布于 2024-06-27

什么是枚举(Enum)

枚举(Enum)是一种特殊的数据类型,它允许你定义一组命名的常量。这些常量可以代表某个固定的值,比如不同的尺寸、颜色或状态等。在游戏开发中,枚举常用于表示角色的状态、游戏的不同关卡、道具类型等等。 枚举的用途 清晰的代码:枚举使代码更易读和维护,因为它们用有意义的名字代替了数字。 减少错误:使用枚举

OneBigLoser 发布于 2024-06-26

自增运算符 ++前缀和后缀++

区别: a++ (后缀自增,postfix increment): 表示先使用变量a的当前值,然后再将其值增加1。 返回值是变量a的原始值(自增之前的值)。 ++a (前缀自增,prefix increment): 表示先将变量a的值增加1,然后再使用增加后的值。 返回值是变量a自增后的新值。

OneBigLoser 发布于 2024-06-23

Unity里面 格式化小数位数

使用 ToString 方法格式化小数位数 你可以使用 ToString 方法来格式化浮点数,只保留两位小数。 countDownText.text = GameManager.Instance.GetCountDownStartTimerFloat().ToString("F2"); //coun

OneBigLoser 发布于 2024-06-22

public event Action 和 public Action 在 C# 中有不同的用途和行为

public Action: public Action 声明了一个公共的委托字段或属性。 它允许外部代码直接访问和修改该委托的引用。 外部代码可以直接调用该委托,或者替换该委托的引用。 这种方式缺乏对委托的访问控制,可能导致意外的修改或调用。 public event Action: public

OneBigLoser 发布于 2024-06-21

新的inputsystem started 和 canceled 事件没有触发,performed能正确触发 解决方法

started 和 canceled 事件没有触发,可能是因为在 Action Maps 里面的 Actions 没有正确设置 Interactions。 Interactions 可以用来定义输入行为,例如按下、长按、松开等。 如果 Actions 没有配置 Interactions,那么 sta

OneBigLoser 发布于 2024-06-17

Lambda表达式和方法订阅的区别

什么是事件订阅? 在编程中,事件订阅就像你告诉某人:“当某件事发生时,请告诉我”。当这件事发生时,那个人就会通知你,你就可以做一些相应的事情。 Lambda表达式和方法订阅的区别 Lambda表达式 playerInputActions.Player.Interaction.performed +=

OneBigLoser 发布于 2024-06-17

Unity X/Z轴移动射线碰撞检测+旋转物体 C#代码参考

CapsuleCast可以替换成你需要的Cast类型,这里使用的是新的inputSystem,你可以替换成自己的旧的, // Vector2 inputVector = gameInput.GetMovementVectorNormalized(); 例如下面的 float moveHorizo

OneBigLoser 发布于 2024-06-15

Unity 物理射线检测与碰撞器/刚体 处理碰撞检测

在Unity中,有几种方法可以阻止玩家穿过建筑物。常见的方法包括使用碰撞器(colliders)和刚体(rigidbodies),以及使用物理射线检测(如Physics.BoxCast)来手动处理碰撞检测。下面详细解释这两种方法的优缺点以及使用Physics.BoxCast的原因和场景。 比较和总结

OneBigLoser 发布于 2024-06-15

transform.forward/.right/.up 三种详细讲解

这三个方向属性 (transform.forward, transform.right, transform.up) 在游戏开发中有许多其他的用途,除了控制物体的移动和旋转之外,它们还可以用于各种计算和操作。以下是一些常见的用途和示例: 总结 transform.forward:用于确定物体的前进方

OneBigLoser 发布于 2024-06-14