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还有编辑器插件(大概就是自己可以魔改编辑器,补充编辑器,让编辑器更加便于游戏开发)、音视频插件、网络插件 等许多内容。
新手上路,多多包涵,如有讲错的地方欢迎批评指正,如果有其他思路,欢迎评论区讨论。