news 2026/9/7 9:14:51

godot引擎基础学习笔记12(C#)(完结)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
godot引擎基础学习笔记12(C#)(完结)

一、粒子系统

主要分为两个节点CPUParticles2D和GPUParticles2D,分别基于两种处理器进行计算粒子特效,GPU节点的性能相对较好,CPU节点的兼容性更好

以GPU节点为例,创建节点后需要在属性栏Texture处添加一个贴图,并在processMaterial过程材质中新建一个材质比如ParticleProcessMaterial,此时粒子特效会产生,默认会有一个坠落的效果

相关的属性设置

Amount:单位时间内的粒子发射数量

processMaterial→Accelerations→gravity:重力效果,可设置不同轴向的重力加速度

processMaterial→spawn→position:位置变量修改,能够对粒子的初始位置进行设置

processMaterial→spawn→angle:旋转变量修改,能够对粒子在发射过程的旋转角度进行设置

processMaterial→spawn→velocity:速度方向变量修改,能够对粒子的发射方向,速度等进行设置

processMaterial→display→scale:粒子的大小缩放

processMaterial→display→scale→scaleCurve:粒子大小随时间的变化曲线,可以设置先打后小的特效

processMaterial→display→colorCurves:可以设置粒子的颜色,可以设置粒子颜色随时间变化的渐变

Time→lifetime:粒子的存在时间,默认为1

Time→oneShot:表示粒子只会发射一次

Time→preprocess:预加载粒子,设置时间后之间调用会从该时间段后的粒子效果来显示,相当于跳过了发射阶段

二、存取数据

res://资源文件路径,游戏的各种图片声音等资源存放处

use://存档数据路径,此为虚拟路径,用于保存用户数据,不同系统的路径各不相同

//可以通过该语句将路径转化为本系统的实际路径进行调用 string path = ProjectSettings.GlobalizePath("user://1.txt"); //写入数据 File.WriteAllText(path,"test"); //前面为路径,后面为内容 //读取数据 string str = File.ReadAllText(path); //读取该路径的文件内容,赋值给str

三、复杂数据的存储

通常使用的是json数据交换格式

{}表示一个大字典,[]表示一个数组(数组中类型必须一致),数据结构大致如下

{ "users":[{"name":aa,"Hp":100}, {"name":bb,"Hp":300}], "worldid":123 }

创建json数据

//创建字典数据 Dictionary user1 = new Dictionary(); Dictionary user2 = new Dictionary(); //为字典填入数据 user1["name"] = "aa"; user1["Hp"] = 100; user2["name"] = "bb"; user2["Hp"] = 300; //新建一个数据,并将两个字典放入 var users = new Godot.Collections.Array(user1,user2); //创建一个新的数据字典 Dictionary dic = new Dictionary(); //将数组放入其中一个属性内容中 dic["user"] = users; dic["worldid"] = 123; string json = Json.Stringify(dic); //将数据转为json格式数据

读取json数据

//将数据json字符串转为字典 Dictionary newDic = Json.ParseString(json).AsGodotDictionary();

更多json数据的使用等,需要学习C#中的json数据使用

四、数据网络请求

添加HTTPRequest节点,为节点添加脚本

一般在创建时请求一次数据就可以

public override void _Ready(){ //发送get请求 Error error = this.Request("某个服务器数据路径"); if(error != Error.OK){ GD.Print("请求失败"); } }

如果请求成功节点会发送信号到某个特殊方法中,需要在脚本中创建一个方法来接收数据

//res是请求结果,code是状态码,header是请求头,body为实际请求的内容即json数据 public void request_completed(int res,int code,string[] header,byte[] body){ //请求到的数据需要转换为json字符串 string str = Encoding.UTF8.GetString(body); }

godot引擎基础学习完结,学习内容是B站的game飞羽的视频,笔记为自己总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 3:44:49

突破限制:macOS虚拟机系统解锁实战指南

突破限制:macOS虚拟机系统解锁实战指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/un/unlocker 在虚拟化技术日益普及的今天,虚拟机系统解锁技术成为跨平台开发者的必备技能。当你尝试在VMw…

作者头像 李华
网站建设 2026/8/21 23:18:56

LLaVA-v1.6-7B性能优化:降低内存占用的实用技巧

LLaVA-v1.6-7B性能优化:降低内存占用的实用技巧 1. 引言:为什么需要优化内存占用 LLaVA-v1.6-7B作为一款强大的多模态模型,在提供惊艳的视觉语言理解能力的同时,也对硬件资源提出了较高要求。特别是在处理高分辨率图像&#xff…

作者头像 李华
网站建设 2026/8/27 1:52:28

深入解析StarRocks主键表:为什么删除数据后磁盘空间不释放?

StarRocks主键表数据删除机制深度剖析:从逻辑标记到物理清理的全链路解析 当你第一次在StarRocks主键表中执行DELETE操作后查看磁盘空间时,可能会惊讶地发现——存储占用竟然没有减少!这不是系统bug,而是StarRocks为平衡实时更新与…

作者头像 李华
网站建设 2026/8/25 0:53:48

Hunyuan-MT-7B应用案例:跨境电商商品描述自动翻译

Hunyuan-MT-7B应用案例:跨境电商商品描述自动翻译 如果你在跨境电商行业工作过,一定遇到过这样的场景:一款在国内卖爆了的商品,想要上架到海外平台,光是翻译商品标题、描述、参数,就得折腾好几天。人工翻译…

作者头像 李华
网站建设 2026/8/25 0:54:20

CTC语音唤醒模型在VMware虚拟机中的训练环境配置

CTC语音唤醒模型在VMware虚拟机中的训练环境配置 最近有不少朋友在尝试训练自己的语音唤醒模型,特别是那种能识别特定关键词的模型,比如“小云小云”这种。但问题来了,很多人的开发环境是Windows系统,而语音唤醒模型的训练通常需…

作者头像 李华
网站建设 2026/9/3 4:46:55

如何突破设备限制?浏览器即插即用工具让工作效率提升300%

如何突破设备限制?浏览器即插即用工具让工作效率提升300% 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 在现代办公环境中,软…

作者头像 李华