浏览代码

Merge pull request #349 from UnityTech/fix_emoji

Adjust emoji advance and size.
/main
GitHub 5 年前
当前提交
f2ca5ab3
共有 2 个文件被更改,包括 12 次插入8 次删除
  1. 7
      Runtime/ui/txt/emoji.cs
  2. 13
      Runtime/ui/txt/layout.cs

7
Runtime/ui/txt/emoji.cs


public const int rowCount = 36;
public const int colCount = 37;
public static float advanceFactor = 1.3f;
public static float sizeFactor = 1.2f;
return Rect.fromLTWH(fontSize * 0.05f, descent - fontSize, fontSize * 0.9f, fontSize * 0.9f);
return Rect.fromLTWH((advanceFactor - sizeFactor) / 2 * fontSize,
descent - fontSize * sizeFactor,
fontSize * sizeFactor,
fontSize * sizeFactor);
}
public static Rect getUVRect(int code) {

13
Runtime/ui/txt/layout.cs


char startingChar = text[0];
float totalWidth = 0;
if (char.IsHighSurrogate(startingChar) || EmojiUtils.isSingleCharEmoji(startingChar)) {
float advance = style.fontSize + style.letterSpacing;
float advance = style.fontSize * EmojiUtils.advanceFactor + style.letterSpacing;
for (int i = 0; i < text.Length; i++) {
char ch = text[i];
if (char.IsHighSurrogate(ch) || EmojiUtils.isSingleCharNonEmptyEmoji(ch)) {

char startingChar = text[start];
float currentAdvance = offset;
if (char.IsHighSurrogate(startingChar) || EmojiUtils.isSingleCharEmoji(startingChar)) {
float advance = style.fontSize + style.letterSpacing;
float advance = style.fontSize * EmojiUtils.advanceFactor + style.letterSpacing;
for (int i = 0; i < count; i++) {
char ch = text[start + i];
if (char.IsHighSurrogate(ch) || EmojiUtils.isSingleCharNonEmptyEmoji(ch)) {

char startingChar = text[start];
float totalWidths = 0;
if (char.IsHighSurrogate(startingChar) || EmojiUtils.isSingleCharEmoji(startingChar)) {
float advance = style.fontSize + style.letterSpacing;
float advance = style.fontSize * EmojiUtils.advanceFactor + style.letterSpacing;
for (int i = 0; i < count; i++) {
char ch = text[start + i];
if (char.IsHighSurrogate(ch) || EmojiUtils.isSingleCharNonEmptyEmoji(ch)) {

x += letterSpaceHalfLeft;
advances[i] = letterSpaceHalfLeft;
float advance = style.fontSize * EmojiUtils.advanceFactor;
var maxX = metrics.descent - metrics.ascent + x;
var minY = metrics.ascent;
var maxX = advance + x;
var minY = -style.fontSize * EmojiUtils.sizeFactor;
float advance = style.fontSize;
x += advance;
advances[i] += advance;

正在加载...
取消
保存