自由学习记录(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 适合开发阶段测试,但发布时一般不推荐使用++。
相关推荐
乐闻x2 小时前
VSCode 插件开发实战(四):使用 React 实现自定义页面
ide·vscode·react.js
创意锦囊2 小时前
随时随地编码,高效算法学习工具—E时代IDE
ide·学习·算法
尘觉2 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
1 9 J2 小时前
Java 上机实践11(组件及事件处理)
java·开发语言·学习·算法
Blankspace学3 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark
南宫生3 小时前
力扣-图论-70【算法学习day.70】
java·学习·算法·leetcode·图论
Wallace Zhang3 小时前
STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)
ide·vscode·stm32
bohu833 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
HE10293 小时前
威尔克斯(Wilks)分布
学习
初学者7.4 小时前
Webpack学习笔记(3)
笔记·学习·webpack