CATransform3DScale ожидает структуру CATransform3D, а не SCNMatrix4

Я пытаюсь добавить 3D-текст в свое приложение, но мне нужно его масштабировать, вот код, который я пытаюсь использовать:

SCNText *text = [SCNText textWithString:@"Some Text" extrusionDepth:4.f];
 SCNNode *textNode = [SCNNode nodeWithGeometry:text];
 textNode.position = SCNVector3Make(-1, 5, 0);
 textNode.transform = CATransform3DScale(textNode.transform, .1f, .1f, .1f);
 [root addChildNode:textNode];

и я получаю

CATransform3DScale ожидает структуру CATransform3D, а не SCNMatrix4 или что-то в этом роде. Если я не трансформирую, текст занимает большую часть экрана. Любые идеи? Спасибо


person Jack Marbury    schedule 08.10.2014    source источник


Ответы (1)


в OS X SCNMatrix4 является определением типа CATransform3D (и, таким образом, вы можете использовать утилиты CoreAnimation), но это неверно для iOS. Взгляните на SceenKitTypes.h, он предоставляет функции, которые соответствуют функциям CA, таким как SCNMatrix4Scale.

Также странно, что текст кажется слишком большим на вашем экране. Размер шрифта по умолчанию довольно мал, и вы почти всегда должны изменить размер шрифта геометрии, чтобы он хорошо вписывался в вашу сцену (изменение размера шрифта лучше, чем масштабирование, потому что дискретизация глифа меняется и приводит к более плавным кривым). Этот текст — единственное, что есть в вашей сцене?

person mnuages    schedule 08.10.2014
comment
Спасибо. Да, я портировал приложение для Mac OSX, и мне нужно было сделать другой перевод. Работает сейчас. Спасибо еще раз. - person Jack Marbury; 09.10.2014