You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Godot中从一个GDScript脚本导入类至另一个脚本?

在Godot中跨脚本复用自定义类

方法1:通过脚本引用访问

如果scriptA.gd是项目中的普通脚本,你可以在scriptB.gd里通过加载脚本的方式调用其中的Effect类:

# scriptB.gd
# 预加载scriptA脚本(适合频繁使用的场景)
const EFFECT_SCRIPT = preload("res://scriptA.gd")

func _ready():
    # 实例化Effect类
    var attack_buff = EFFECT_SCRIPT.Effect.new("攻击增益", "atk", 20)

如果只是偶尔使用,也可以用load动态加载:

var effect_script = load("res://scriptA.gd")
var defense_buff = effect_script.Effect.new("防御提升", "def", 15)

方法2:定义全局可访问类

在scriptA.gd的类定义前添加class_name关键字,让Effect成为全局类,无需加载脚本就能直接使用:

# scriptA.gd
class_name Effect
var name: String
var stat: String
var value

func _init(name: String, stat: String, value) -> void:
    self.name = name
    self.stat = stat
    self.value = value

之后在scriptB.gd里直接实例化即可:

# scriptB.gd
func _ready():
    var hp_regen = Effect.new("生命回复", "hp", 50)

方法3:继承扩展类

如果需要在scriptB.gd中扩展Effect的功能,可以直接继承该脚本:

# scriptB.gd
extends "res://scriptA.gd"

# 添加自定义方法
func get_effect_description():
    return "%s:提升%s属性%d点" % [name, stat, value]

这种方式适合需要基于原类扩展功能的场景。


内容的提问来源于stack exchange,提问作者Alexandr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:27:04