[Godot]非常简单的Godot插件编写(Godot4.1.1为例)

本文介绍了如何在Godot4.1.1中创建一个用于判断向量距离的插件,包括创建文件结构、编写代码、测试场景以及打包和启用插件的过程。作者还提到了Godot的其他插件类型如编辑器插件和音视频插件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新建一个Godot的空项目 

此处以Godot4.1.1版本为例,先再根目录res://下创建文件夹并且明明为 ”addons“,然后点击 项目-项目设置-插件-创建新插件,此时出现如下图所示框。

 编写插件名称,描述,作者等,此处我设计了一个用于判断两个向量距离的插件(实用性不大,只是用于作为示例)。

2.编写代码

添加完毕后,这个插件应该会出现在addons文件夹里面,此时会出现一个.cfg文件和一个.gd文件,里面的.txt是我后添加进去的使用方法说明,打开.gd文件

 

 对.gd文件进行编写代码,实现具体功能,因为只是一个小小功能,就在这里用静态函数写了,之后直接调用(奇怪,CSDN的代码分类下面竟然没有GDScript,这里我分类为Python,GDScript也是基于Python实现的) 

@tool
extends EditorPlugin
class_name TwoVecRan#这里自己命名了一个类名

func _enter_tree() -> void:
	# Initialization of the plugin goes here.
	pass


func _exit_tree() -> void:
	# Clean-up of the plugin goes here.
	pass

#####################下面是自己编写的代码################################

#参数(第1个二维向量,第2个二维向量,判断的距离)
#返回bool值,用于若两者距离小于对于传入的判断的距离dis,返回true,反之返回false
static func TwoVecRan_bool(a1:Vector2,a2:Vector2,dis:float) -> bool:
	var res = sqrt((a1.x-a2.x)*(a1.x-a2.x)+(a1.y-a2.y)*(a1.y-a2.y))
	if res<=dis:
		return true
	return false

#参数(第1个二维向量,第2个二维向量,保留的小数)
#返回float,即两者之间的距离
static func TwoVecRan_float(a1:Vector2,a2:Vector2,DecimalSize:int=2)->float:
	var res:float= sqrt((a1.x-a2.x)*(a1.x-a2.x)+(a1.y-a2.y)*(a1.y-a2.y))
	if DecimalSize>=0:
		return snappedf(res,pow(10,-DecimalSize))
	return snappedf(res,pow(10,-2))

​

 

3.新建测试场景来测试

随便新建了一个测试场景用于测试,

打印出的c表示a,b两个二维向量的实际距离,而且按照要求保留了4为小数,打印出的d则表示ab两者的距离超出了给定的2,所以返回false 

4.压缩插件所在的文件夹

将插件打包拿出,从文件管理器中打开,直接将插件进行压缩,然后到其他Godot项目中,还是将解压缩后的插件文件夹添加到addons文件夹下,再打开项目设置的插件,点击启用,就可以使用这个插件了。 

 

 

注意:这里分享的只是属于脚本插件下的一个小小方法,Godot还有编辑器插件(大概就是自己可以魔改编辑器,补充编辑器,让编辑器更加便于游戏开发)、音视频插件、网络插件 等许多内容。

新手上路,多多包涵,如有讲错的地方欢迎批评指正,如果有其他思路,欢迎评论区讨论。 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值