自由学习记录(27)

event委托在类内可完全修改

(前提为该event在类中的声明为public,外部可访问,然后外部访问的时候不能直接改)

下面这段代码是在 类的内部 访问事件

cs 复制代码
void ClearAllListeners()
{
    MyEvent = null;
}

event 修饰的委托字段 在类内部没有限制直接赋值的权限,所以可以赋值为 null,或者任意修改

event 修饰符的设计初衷 :保护++外部代码不能随意破坏事件,但允许声明事件的类对事件有完全的控制权。++

C# 语言对 event 的设计是为了分离订阅者和触发者的权限

  • 类外部
    • 只能订阅或取消订阅,保证事件机制的完整性,不会被意外破坏。
  • 类内部
    • 拥有完全的控制权,便于事件管理(包括清空订阅、触发等)。

event 修饰符的访问规则

操作 类内部 类外部
+= ✅ 支持 ✅ 支持
-= ✅ 支持 ✅ 支持
直接赋值 ✅ 支持 ❌ 禁止
Invoke() ✅ 支持 ❌ 禁止

Lua连通的散乱印象抓取

toLua对泛型的支持并不好

想在tolua中使用协程,首先要在初始化中的LuaMgr里

LuaCorountine.Register(luaState,this)进行协程注册

event 修饰的委托 更安全,限制只能订阅(+=)和取消订阅(-=),不能直接赋值

list和dic的使用基本都是在贴合c#中的使用模式

tolua和xlua作用点是大致相同的,只是里面的定义形式不太一样,xlua更主流一些

对于某一泛型的设置,也需要加到customTypeList 里设置,才可以识别出来

c#读取Lua中的表对象,(也是引用拷贝)

LuaTable 的接收到的表变量,是引用拷贝的

委托泛型中的协变逆变,协变要传入父类in,逆变要传入子类out

VScode的环境搭建和相关优化

VScode快捷键

Windows/Linux : Ctrl + /,注释选中的代码(每行前面都加上//)

Windows/Linux : Shift + Alt + A,使用块注释(选区前后加上/* .... */)

Windows/Linux : Ctrl + K Ctrl + F,选中代码格式化,包括注释行

GitHub Copilot 的常用快捷键

  • Tab :
    • 接受 Copilot 提供的代码建议。
  • Alt + [ (向前)Alt + ] (向后) :
    • 浏览 Copilot 提供的多种代码建议。
触发建议窗口
  • Ctrl + Enter (Windows/Linux)
    • ++手动触发代码建议++,即使没有上下文。

屏幕相关快捷键

Ctrl + Shift + P (Windows/Linux)

现在学的话也应该针对不到需要的点,还是实际开发的时候想想可以简化的地方吧

youtube的使用插件,在谷歌下载

------------------------------ - YouTube 速度控制: ------

单击,并保持下一次长按,状态保持于2倍速,释放后恢复一倍速

向右拖动以获得更快的速度

向下拖动后再释放以继续以该速度观看

微调速度 - 点击逗号或句号可将速度调高或调低 5%,长按则状态于5倍速

https://chromewebstore.google.com/detail/youtube-ad-accelerator-ea/lmcggcabhocpfkbddekmconplfjmmgmn

VScode快捷键:ctrl+p搜索文件名寻找

按住键盘ctrl键实现所有同名区域的选择,右键更改所有匹配项,也可以重命名全部变量

查找所有引用

c#还有一个自动引用命名空间的插件,但现在也弃用了,不维护

插件生态是很丰富的,平时觉得哪里麻烦的话可以想想插件可不可以解决问题

Unity Snippets下载

然后是unity tool的下载

debugger for unity现在弃用了,所以下另一个,使用直接叫unity的插件

然后在vscode里使用c#就没问题了,接着上面就是vscode和unity的衔接

vscode默认没有三杠注释,所以要再加个这个插件

现在的vscode用c#的话,是用这个扩展

C# for Visual Studio Code (powered by OmniSharp) ,主要用于提供对 C# 编程语言的支持。它++并不是完整的 Visual Studio 集成开发环境(IDE),而是一个轻量级的编辑器插件++,旨在帮助开发者在 VSCode 中进行 C# 开发。以下是它的主要功能和用途:

1. 代码高亮和语法支持

  • 代码高亮:C# 代码在编辑器中会自动高亮,帮助开发者更容易阅读和理解代码结构。
  • 智能感知:提供自动补全功能,显示方法、类和变量的建议,减少打字错误。
  • 语法检查:实时显示代码中的语法错误和警告,帮助开发者在编写代码时发现问题。

2. 调试支持

  • 集成调试:C# 插件支持通过 VSCode 的调试器进行调试,允许你设置断点、单步执行、查看变量值等。
  • 调试配置 :提供 launch.json 文件的生成和配置功能,支持 .NET Core 和 .NET Framework 应用程序的调试。

3. 项目和解决方案支持

  • 多项目支持 :插件支持 .NET 项目文件(如 .csproj)的加载和解析,能够在 VSCode 中识别和管理多项目解决方案。
  • 项目文件操作:可以通过插件进行编译和构建操作(需要配合 .NET SDK)。

4. 代码导航和重构

  • 转到定义和引用:支持右键单击或快捷键操作以快速跳转到方法、类或变量的定义。
  • 查找引用:可以查找和显示当前选中变量或方法的所有引用位置。
  • 重构工具:虽然不如完整 IDE 的重构功能强大,但插件支持一些基本的重构操作,如重命名、提取方法等。

5. 扩展功能

  • OmniSharp 服务器:插件使用 OmniSharp 作为后台服务来解析 C# 代码并提供智能感知、调试等功能。它是一个开源的 .NET 开发环境服务,支持 .NET Core 和 .NET Framework。
  • 其他插件支持:可以与其他 VSCode 插件(如 Git 工具、Docker、Jest 等)协同使用,以便进行多功能开发和调试。

6. 支持 .NET Core 和 .NET Framework

  • 跨平台支持:插件能够在 Windows、Linux 和 macOS 上工作,支持开发 .NET Core 应用程序和 .NET Framework 应用程序(对于非 Windows 平台,主要是 .NET Core)。
  • 兼容性:支持 C# 语言的不同版本(例如 C# 7.x、8.x、9.x 等)。

先搜Chinese设置中文

找不到AssetBundle的问题

"com.unity.assetbundlebrowser": "1.7.0"

把这个接在末尾就可以了

AssetBundle Browser ->Build ->Advanced Settings -> Compression

打包时的压缩方式


Compression 选项

Compression 是指对打包生成的 AssetBundle 文件应用不同的压缩算法

(1)Uncompressed
  • 特点:
    • AssetBundle 不会进行压缩,文件大小较大。
    • 运行时加载速度快(因为无需解压缩)。
  • 适用场景: 对++存储空间不敏感,但追求快速加载++(如本地运行的大型游戏资源)。
(2)LZMA
  • 特点:
    • ++最大压缩率,最小文件大小++。
    • ++运行时加载时需要解压缩++,占用较高的 CPU 和内存。
    • 解压后的资源会被++临时存储到内存或磁盘++中。
  • **适用场景:**初始下载包的 AssetBundle,追求最小文件大小以节省带宽和存储。
  • 注意: ++LZMA 下的 AssetBundle 运行时无法直接加载++ ,Unity 会将其++转换为 LZ4 格式++,耗时较多。
(3)LZ4
  • 特点:
    • 较高的压缩率,但不如 LZMA。
    • 支持运行时直接加载(无需额外解压步骤)。
    • 提供平衡的文件大小和加载速度。
    • 常用

选项对比总结

压缩方式 文件大小 加载速度 适用场景
Uncompressed 最大 最快 本地测试、大型本地资源
LZMA 最小 慢(需解压) 初始安装包、小型资源
LZ4 中等 热更新资源、运行时频繁加载的资源

开发中的注意事项

  • 如果资源在 运行时频繁加载 ,推荐选择 LZ4,避免解压缩开销。
  • 如果资源用于 一次性打包下载 (如游戏的安装包),可以使用 LZMA 减小文件大小。
  • ++Uncompressed 适合开发阶段测试,但发布时一般不推荐使用++。
相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。4 天前
2026.2.25监控学习
学习
im_AMBER4 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J4 天前
从“Hello World“ 开始 C++
c语言·c++·学习