news 2026/3/31 15:18:49

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/3/24 18:44:49

Jupyter Notebook入门:美胸-年美-造相Z-Turbo交互式开发

Jupyter Notebook入门:美胸-年美-造相Z-Turbo交互式开发 1. 引言 你是不是经常遇到这样的情况:调整一个模型参数,需要重新运行整个脚本,等待几分钟甚至更长时间才能看到效果?或者想要快速对比不同提示词生成的图片效…

作者头像 李华
网站建设 2026/3/25 6:15:30

基于卷积神经网络的DeepSeek-OCR-2图像预处理优化

基于卷积神经网络的DeepSeek-OCR-2图像预处理优化 1. 引言 你有没有遇到过这样的情况:用OCR工具识别文档时,明明图片看起来很清晰,但识别结果却错漏百出?特别是在处理复杂版式的文档、表格或者光线不均的图片时,传统…

作者头像 李华
网站建设 2026/3/21 5:16:15

GLM-4-9B-Chat-1M实战:如何搭建多语言智能对话系统

GLM-4-9B-Chat-1M实战:如何搭建多语言智能对话系统 你是不是也遇到过这样的场景:需要处理一份长达几十页的多语言技术文档,或者要和来自不同国家的同事开线上会议,语言障碍成了沟通的拦路虎?传统的翻译工具往往只能处…

作者头像 李华
网站建设 2026/3/23 6:26:44

手把手教你用CLAP镜像:无需训练实现音频分类的Web服务

手把手教你用CLAP镜像:无需训练实现音频分类的Web服务 1. 什么是CLAP音频分类镜像 CLAP音频分类镜像是一个基于LAION CLAP模型的零样本音频分类Web服务。它能帮你快速搭建一个音频识别系统,不需要任何训练就能对任意音频文件进行智能分类。 想象一下这…

作者头像 李华
网站建设 2026/3/23 4:31:53

深求·墨鉴(DeepSeek-OCR-2)开源OCR镜像:支持HTTP/2与gRPC双协议接入

深求墨鉴(DeepSeek-OCR-2)开源OCR镜像:支持HTTP/2与gRPC双协议接入 你是不是也遇到过这样的烦恼?手头有一堆纸质文件、会议白板照片或者从网上保存的截图,想把里面的文字提取出来,要么得一个字一个字地敲&…

作者头像 李华
网站建设 2026/3/24 11:30:54

Qwen3-VL HTML生成实战:网页原型设计一键输出教程

Qwen3-VL HTML生成实战:网页原型设计一键输出教程 1. 为什么网页原型不再需要设计师手动写代码? 你有没有过这样的经历:刚想好一个网页功能,就得打开 VS Code,新建 HTML 文件,反复调整 div 结构、CSS 样式…

作者头像 李华