SCNText объект является геометрией, создающей ее содержание из строки текста, представленного в 2D и дополнительно вытесненного для создания трехмерного объекта.
Текстовый объект рисунка 1A в сцене
Вы обеспечиваете текст для геометрии с помощью NSString или NSAttributedString объект. В прежнем случае, свойствах SCNText объект определяет стиль и форматирование всей организации текста. При создании текстовой геометрии из приписанной строки SceneKit разрабатывает текст согласно атрибутам в строке и свойства SCNText объект определяет стиль по умолчанию для частей строки, не имеющих никаких атрибутов стиля. SceneKit может создать текстовую геометрию с помощью любого шрифта и стиля, поддерживаемого Базовой текстовой платформой, за исключением растровых шрифтов (таких как те, которые определяют цвет emoji символы).
В системе локальной координаты текстовой геометрии источник соответствует левому нижнему углу текста с текстом, расширяющимся в размерностях оси y и x-. Геометрия центрируется вдоль ее оси z. Например, если extrusionDepth свойство 1.0, геометрия расширяется от -0.5 к 0.5 вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой 0.0, и просматриваемый только от его передней стороны, если его материал doubleSided свойство YEStrue.
Чтобы расположить и ориентировать текстовую геометрию в сцене, присоедините его к geometry свойство SCNNode объект.
SceneKit может дополнительно закруглить кромки вытесненную текстовую геометрию путем применения перекрестного частного контура к его вытесненной глубине. Вы используете chamferRadius свойство для добавления закругления кромок к вытесненному тексту, и chamferProfile свойство для управления формой закругления кромок.
Текстовая геометрия может содержать один, три, или пять элементов геометрии:
Если extrusionDepth свойство 0.0, текстовая геометрия имеет один элемент, соответствующий его видимая сторона.
Если его глубина экструзии больше, чем нуль и его chamferRadius свойство 0.0, текстовая геометрия имеет три элемента, соответствуя ее передней стороне, назад, и вытесненным сторонам.
Если и глубина экструзии и радиус закругления кромок больше, чем нуль, текстовая геометрия имеет пять элементов, соответствуя ее передней стороне, назад, вытеснил стороны, переднее закругление кромок и заднее закругление кромок.
SceneKit может представить каждый элемент с помощью различного материала. Для получения дополнительной информации см. описание materials свойство в Ссылке класса SCNGeometry.
Степень текстовой геометрии в размерности Z ее пространства локальной координаты. Укажите глубину 0.0 создать 2D текст, ограниченный плоскостью.
Возвращаемое значение
Новая текстовая геометрия.
Обсуждение
В системе локальной координаты текстовой геометрии источник соответствует левому нижнему углу прямоугольника расположения текста с текстом, расширяющимся в размерностях оси y и x-. (SceneKit вычисляет прямоугольник расположения автоматически, или можно указать тот с помощью containerFrame свойство.) Геометрия центрируется вдоль ее оси z. Например, если extrusionDepth свойство 1.0, геометрия расширяется от -0.5 к 0.5 вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой 0.0, и просматриваемый только от его передней стороны, если его материал doubleSided свойство YEStrue.
Строковый объект, текст которого геометрия представляет.
Объявление
Swift
@NSCopyingvar string: AnyObject!
Objective C
@property(nonatomic,copy)idstring
Обсуждение
Можно предоставить текст как NSString или NSAttributedString объект. Когда Вы используете NSString объект, текстовые свойства геометрии определяют стиль всей организации текста. Можно использовать NSAttributedString объект предоставить организации текста, содержащего многократные стили, когда текстовые свойства геометрии определяют стиль по умолчанию для частей строки без атрибутов стиля.
Значение по умолчанию этого свойства nil, который создает пустую текстовую геометрию.
Если текстовая геометрия string свойство NSString объект, SceneKit использует этот шрифт для рендеринга всего текста. Если string свойство NSAttributedString объект, SceneKit использует этот шрифт для любых частей строки, не содержащей атрибуты стиля.
SceneKit может разметить организацию текста для адаптации в прямоугольной области. Чтобы сделать это, необходимо сначала использовать это свойство для определения области для текстового расположения как прямоугольник в x-и размерностях оси y системы локальной координаты текстового объекта. Тогда Вы используете wrapped, alignmentMode, и truncationMode свойства, чтобы управлять, как SceneKit вмещает текст в контейнерный кадр. Текстовое расположение начинается в верхнем левом углу прямоугольника.
Значение по умолчанию этого свойства CGRectZero, указание, что SceneKit должен разметить текст на одной строке, не переносясь или усечении.
В зависимости от содержания и стиля текста и значений wrapped, alignmentMode, и truncationMode свойства, текст может не соответствовать в контейнерном кадре после расположения, или это может занять меньшую область.
Булево значение, указывающее, обертывает ли SceneKit длинные линии текста.
Объявление
Swift
var wrapped: Bool
Objective C
@property(nonatomic,getter=isWrapped)BOOLwrapped
Обсуждение
Когда Вы определяете прямоугольник расположения для текста с помощью containerFrame свойство, SceneKit использует wrapped свойство, чтобы определить, переносится ли каждая строка текста, который более широк, чем прямоугольник расположения автоматически, на следующую строку.
Значение по умолчанию этого свойства NOfalse, указание, что не переносятся длинные линии текста. (При указании контейнерного кадра длинные линии текста расширяются вне его ширины.)
Когда Вы определяете прямоугольник расположения для текста с помощью containerFrame свойство, SceneKit использует alignmentMode свойство для определения, куда каждая строка текста помещается горизонтально относительно прямоугольника расположения. Для возможных значений посмотрите Horizontal_alignment_modes в ссылке класса CATextLayer.
Значение по умолчанию этого свойства kCAAlignmentNatural, указание, что текст выровненный относительно выравнивания по умолчанию его сценария. (Например, слева направо языки выравниваются по левому краю.)
Когда Вы определяете прямоугольник расположения для текста с помощью containerFrame свойство, SceneKit использует truncationMode свойство, чтобы определить, как разметить текст, не помещающийся в прямоугольник расположения. Для возможных значений посмотрите Truncation_modes в ссылке класса CATextLayer.
Значение по умолчанию этого свойства kCATruncationNone, указание, что SceneKit не должен усекать текст. Если wrapped свойство YEStrue, SceneKit продолжает автоматически обертывать каждую строку текста вне высоты прямоугольника расположения. Иначе, SceneKit не выводит на экран текст, который расширился бы вне прямоугольника расположения.
SceneKit использует линейные сегменты для приближения искривленных форм текстовых символов при преобразовании текста в трехмерную геометрию. (Эти сегменты становятся многоугольниками стороны, когда SceneKit вытесняет текст.) Более высокая плоскость оценивает результат в меньшем количестве сегментов, сокращая гладкость кривых и улучшая рендеринг производительности. Нижние значения приводят к большему количеству сегментов, увеличивая гладкость кривых по стоимости для рендеринга производительности.
Значение по умолчанию этого свойства 0.6, указание, что линейные сегменты могут не отклониться от кривой больше чем 0,6 точками.
Геометрия центрируется вдоль оси z ее пространства локальной координаты. Например, если его глубина экструзии, 1.0, геометрия расширяется от -0.5 к 0.5 вдоль оси z.
Глубина экструзии 0.0 (значение по умолчанию), создает плоскую, одностороннюю форму.
Значение 0.0 (значение по умолчанию), или меньше не указывает закругления кромок — вытесненные стороны каждого символьного конца под прямым углом его передней и задней части.
Максимальный радиус закругления кромок является половиной значения extrusionDepth свойство. В этом радиусе заканчивается переднее закругление кромок, где начинается заднее закругление кромок. Однако SceneKit может автоматически сократить радиус закругления кромок для символьных форм с тонкими обводками.
Значение этого свойства должно быть двумерным путем, запускающимся в точке {1, 0} и окончание в точке {0, 1}, определение контура формы вдоль ее вытесненных сторон. Если значение этого свойства nil и значение chamferRadius свойство больше, чем нуль, SceneKit использует профиль закругления кромок в форме круга четверти. Рисунок 2 иллюстрирует, что различные профили закругления кромок применились к форме тильды (~) символ.
Профили закругления кромок рисунка 2Example и их эффекты