Синтаксис для вызова универсального метода C# из NLua

У меня возникли проблемы с определением правильного синтаксиса для вызова универсальной функции C# из Lua с помощью NLua.

Я пытаюсь вызвать следующую функцию C# XNA из Lua

GameWorld.Instance.Content.Load<Texture2D>("player");

Но у меня проблемы с синтаксисом <T> часть. Мой текущий вызов lua выглядит следующим образом, что явно неверно, так как я получаю LuaScriptException.

GameWorld.Instance.Content:Load<Texture2D>("player")

1 ответ

Решение

Я создаю класс AssetManager с парой методов Load/Get для каждого типа активов.

class AssetManager
{
    private ContentManager content;
    private Dictionary<string, Texture2D> textures; // fonts, sprites, models and so on

    AssetManager(ContentManager  pContent)
    {
        this.content = pContent;
        this.textures = new Dictionary<string, Texture2D>();
    }

    public void LoadTexture(string pName, string pAssetName)
    {
        this.textures.Add(pName, this.content.Load<Texture2D>(pAssetName);
    }
    public Texture2D GetTexture(stirng pName)
    {
        return this.Textures.ContainsKey(pName) ? this.Textures[pName] : null;
    }
}

Простое использование из C# и Lua.

Другие вопросы по тегам