Godot 4 C # одноэлементный класс, созданный методом переопределения, не вызываетсяC#

Место общения программистов C#
Ответить
Anonymous
 Godot 4 C # одноэлементный класс, созданный методом переопределения, не вызывается

Сообщение Anonymous »

Я использую Godot 4 и C# для написания игры, и у меня есть класс-одиночка со специальным атрибутом [Singleton]. Я использую генератор исходного кода для генерации одноэлементного кода для класса. Вот сгенерированный код:

Код: Выделить всё

using System;
using System.ComponentModel;
using Godot;

namespace MyGame.biz.card.service.hand_service
{
partial class HandService {
public static HandService Instance { get; private set; }
public override void _EnterTree() {
Instance = this;
TreeExiting += () => Instance = null;
}
}
}
Однако логика внутри метода _EnterTree не вызывается (она работает нормально, когда я добавляю ее вручную). Я проверил и подтвердил, что класс следует добавить в дерево сцены. В чем может быть причина того, что логика _EnterTree не срабатывает?
Код HandService:

Код: Выделить всё

using ...

namespace MyGame.biz.card.service.hand_service;

[Singleton]
public partial class HandService : Node {
private List CardList { get; set; }
private List HandCardList { get; set; }
public ReadOnlyCollection Hand => CardList.AsReadOnly();
public int HandSize { get; private set; }

public override void _Ready() {
HeroInstance.Instance.Hero.Died += QueueFree;
HandSize = RunService.HandSize;
}

...
}
Свойство Instance существует
Использование экземпляра
Код моего генератора основан на этом репозитории: https://github.com/Cat-Lips/GodotSharp .SourceGenerators
Свойство Instance должно быть установлено в _EnteringTree()

Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-called
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»