我正在尝试在游戏中实例化一个包含 12 帧的 Sprite2D 场景,并设置帧以便每个实例使用不同的帧。当我尝试更改框架属性时,出现编译器错误,其中指出:
D:\Projects\Godot\Chess\Board.cs(22,12): 'Sprite2D' 不包含 'frame' 的定义,并且没有可访问的扩展方法 'frame' 接受类型 'Sprite2D' 的第一个参数找到(您是否缺少 using 指令或程序集引用?)
如何修改此属性?
我的代码是:
var pieceScene = GD.Load<PackedScene>("res://piece.tscn"); //This is the Sprite2D Scene
var wKing = pieceScene.Instantiate() as Sprite2D;
wKing.frame = 0;
AddChild(wKing);
我也尝试过
var pieceScene = GD.Load<PackedScene>("res://piece.tscn"); //This is the Sprite 2d Scene
var wKing = pieceScene.Instantiate() as Sprite2D;
wKing.set_frame(0);
AddChild(wKing);
然而,他们提出了相同的错误,除了 set_frame 没有防御。
正如 Godot C# API Differences Documentation 所指出的,与使用
PascalCase
的 GDScript API 相比,C# 的大部分 API 都在 snake_case
中。因此,在 Sprite2D.frame
的情况下,您需要使用 Sprite2D.Frame
来代替。