Изменить текстуру в редакторе сцен программно

Я добавил цветной спрайт с именем arm в свой редактор сцен, но по ряду причин мне нужно получить доступ к этому цветному спрайту и программно изменить текстуру. Еще один способ заявить о своей цели: я хочу связать узел с моим быстрым файлом GameScene и изменить текстуру, используя текстуру из массива. Кто-нибудь знает как это сделать?


person Ojay    schedule 20.01.2021    source источник
comment
@cc. Я видел, как вы отвечаете на подобные вопросы, хотел бы получить вашу помощь   -  person Ojay    schedule 20.01.2021


Ответы (1)


Прежде всего, вы хотите связать узел спрайта из вашего файла GameScene.sks с вашим файлом GameScene.swift.

Для этого в GameScene.swift вверху (под классом GameScene:SKScene{) используйте это:

var armNode: SKSpriteNode?

В разделе didMove(to view:) сделайте следующее:

armNode = childNode(withName: "arm") as? SKSpriteNode

Теперь 3 разных способа изменить цвет/текстуру SKSpriteNode в зависимости от того, что вы делаете:

armNode.colour = UIColor.red

armNode.texture = SKTexture(imageNamed: "your arm image here")

armNode.texture = textureArray[2]

3-я версия использует текстуру из массива текстур

person JohnL    schedule 20.01.2021
comment
это было очень полезно, спасибо. Я уверен, что мне понадобится дополнительная помощь, я бы хотел, чтобы у нас был способ общаться более напрямую. - person Ojay; 21.01.2021
comment
Вы знаете, как добавить видео? Предполагая, что мне нужно сначала создать свойство 'var videoNode: SKVideoNode?' но теряются при попытке установить свойство с видео. - person Ojay; 26.01.2021
comment
В документации он дает вам пример кода о том, как добавить видео и воспроизвести его. ссылка - person JohnL; 27.01.2021