提问人:Megalord 提问时间:10/31/2023 更新时间:10/31/2023 访问量:84
是否可以在 C# 界面中定义 Godot 信号?
Is it possible to define Godot Signal in C# interface?
问:
我必须在我的游戏中实现伤害系统。我有多个职业,可能会损坏(单位、行星等)。
每个可能损坏的节点都实现了 IDamageable 接口。 戈多信号 Killed 似乎没有生成,也不存在.
简化代码在这里
public interface IDamageable
{
[Signal]
delegate void KilledEventHandler(Node3D target); // Will used to untarget current target of unit or remove it from UI selection info
float HP { get;}
bool ApplyDamage(float damage);
}
public class Unit : CharacterBody3D, IDamageable
{
[Export]
public float HP { get; private set; } = 10;
public bool ApplyDamage(float damage)
{
HP -= damage;
if (HP <= 0)
{
EmitSignal(SignalName.Killed); // SignalName.Killed doesn't exists
}
return HP > 0;
}
}
public class Planet : StaticBody3D, IDamageable
{
[Export]
public float HP { get; private set; } = 10;
public bool ApplyDamage(float damage)
{
HP -= damage;
if (HP <= 0)
{
EmitSignal(SignalName.Killed); // SignalName.Killed doesn't exists
}
return HP > 0;
}
}
在 C# 界面中定义 Godot 信号是否有任何可能的方法?
答: 暂无答案
评论
String
"Killed"