Cocos2d сохраняет объект в C#

У меня есть метод, который настраивает CCAnimation для меня

public CCAnimation SetupAnimations(string prefixOFSprite, int numberOfFrames, int startFrame)
    {
        //me getting desperate and doing any old initilisation
        CCAnimation finalAnimation = new CCAnimation();
        finalAnimation = CCAnimation.animation();

        for (int i = startFrame; i < numberOfFrames + 1; i++)
        {
            finalAnimation.addFrameWithFileName(prefixOFSprite + "-" + i);
        }

        float delay = 0.07f;
        finalAnimation.setDelay(delay);

        return finalAnimation;

Который я называю так

whiteDogBeginFalling = SetupAnimations("GameGraphics/dog/falling/white-falling", 7, 1)

Но анимация не запускается, когда я запускаю игру:(Это я портирую свою игру с iOS, и я решил эту проблему, добавив

[whiteDogBeginFalling retain]

сразу после вызова метода.

Как вы делаете это в C# версии cocos2d? Или кто-нибудь может помочь мне найти другое решение?

заранее спасибо

1 ответ

"обойти проблему, добавив сохранение", звучит так, как будто вы не понимали управление памятью ObjC (в то время).

Я бы исследовал вероятность того, что сохранение в коде ObjC неправильно с самого начала. Поскольку в C# нет сохранения, и объект, по-видимому, освобождается в C#, это означает, что нет ссылок, удерживающих объект, поэтому он будет собирать мусор. Это указывает на то, что сохранение в версии ObjC устранило проблему освобождения объекта, но у вас может быть утечка памяти.

Если вы сможете понять, как правильно исправить проблему в ObjC, вы также узнаете, что нужно сделать, чтобы исправить ее в версии C#.

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