Как предварительно загрузить текстурный атлас (SKTextureAtlas) в Xamarin.iOS (в C#)?

Кто-нибудь, пожалуйста, покажите мне небольшой пример кода, написанный на C# в рамках Xamarin.iOS, который будет предварительно загружать атласы текстур?

Веб-сайт Xamarin имеет эту страницу:

https://developer.xamarin.com/api/type/MonoTouch.SpriteKit.SKTextureAtlas/

На этой веб-странице они перечисляют множество методов, которые предварительно загружают атласы текстур. Но меня интересуют только эти 2 метода:

PreloadTextures (SKTextureAtlas [], NSAction)

PreloadTexturesAsync (SKTextureAtlas [])

Я думаю, что оба метода будут хорошо работать для моей игры. К сожалению, я не знаю, как правильно вызывать их в C# в рамках Xamarin.iOS.

Хотя в Интернете есть много примеров кода для предварительной загрузки текстурных атласов, эти примеры написаны на Objective-C, и, к сожалению, я пока не знаю, как преобразовать код Objective C в код C#.

Итак, я был бы очень признателен, если бы вы могли показать мне, как написать несколько небольших примеров кода на C# в рамках Xamarin.iOS, которые предварительно загружают атласы текстур, используя два метода, которые я упомянул выше.

Большое спасибо.

1 ответ

Решение

Я не являюсь экспертом в разработке игр и не участвовал ни в одном из них ранее, однако я достаточно хорошо знаком с Xamarin.iOS для того, чтобы "перевести" коды Objective-C в коды Xamarin C#.

Сначала вам нужно создать массив "Атлас текстуры"

var textureCollection = new SKTextureAtlas[]
{
    SKTextureAtlas.FromName("firsttexturename"),
    SKTextureAtlas.FromName("secondtexturename"),
};
await SKTextureAtlas.PreloadTexturesAsync(textureCollection);
// rather than using a completion handler like in ObjC xamarin uses the c# 5's await keyword to achieve similar functions
//You can do what you want after it has preloaded here 
//for example
this.StartScene()
Другие вопросы по тегам