自由学习记录(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 适合开发阶段测试,但发布时一般不推荐使用++。
相关推荐
无码不欢的我23 分钟前
使用vscode在本地和远程服务器端运行和调试Python程序的方法总结
ide·vscode·python
五味香24 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
小爬菜1 小时前
Django学习笔记(启动项目)-03
前端·笔记·python·学习·django
小爬菜1 小时前
Django学习笔记(bootstrap的运用)-04
笔记·学习·django
叫我龙翔1 小时前
【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!
学习
dal118网工任子仪2 小时前
69,【1】BUUCTF WEB ssrf [De1CTF 2019]SSRF Me
笔记·学习
姓学名生3 小时前
李沐vscode配置+github管理+FFmpeg视频搬运+百度API添加翻译字幕
vscode·python·深度学习·ffmpeg·github·视频
猿类崛起@3 小时前
百度千帆大模型实战:AI大模型开发的调用指南
人工智能·学习·百度·大模型·产品经理·大模型学习·大模型教程
viperrrrrrrrrr73 小时前
大数据学习(40)- Flink执行流
大数据·学习·flink
l1x1n03 小时前
No.35 笔记 | Python学习之旅:基础语法与实践作业总结
笔记·python·学习