add new Image Emoji

This commit is contained in:
CuongNV
2026-04-06 11:23:05 +07:00
parent afcfc1aa16
commit bae949626e
67 changed files with 77946 additions and 136 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3011939e4e9c0ce4e83bc03a748fcf96
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b434da58bb8623f439f5cbf37342f155
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,32 @@
using System;
using UnityEngine;
namespace BrewMonster.Scripts.Chat.EmotionData
{
/// <summary>
/// Một dòng định nghĩa emotion trong Emotions{N}.txt (port từ AUITEXTAREA_EMOTION).
/// One emotion definition line from Emotions{N}.txt (ported from AUITEXTAREA_EMOTION).
/// </summary>
[Serializable]
public class EmotionEntryData
{
[Tooltip("Chỉ số ô bắt đầu trong lưới cell (nStartPos) — Starting cell index in the atlas grid.")]
public int StartPos;
[Tooltip("Số frame animation (nNumFrames), tối đa 20 như C++.")]
public int NumFrames;
[Tooltip("Tooltip / hint text từ file txt.")]
public string Hint = "";
/// <summary>
/// Thời điểm tick cho từng frame (nFrameTick[i]), độ dài = NumFrames.
/// </summary>
public int[] FrameTicks = Array.Empty<int>();
/// <summary>
/// Sprite đã cắt cho từng frame (gán bởi tool), độ dài = NumFrames khi đã convert.
/// </summary>
public Sprite[] FrameSprites = Array.Empty<Sprite>();
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a0e42b4b83e3a6f40a2a7737f584fdc6
@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace BrewMonster.Scripts.Chat.EmotionData
{
/// <summary>
/// Snapshot một bộ Emotions{N} (dùng embed trong EmotionLibrarySO hoặc copy sang EmotionSetDataSO).
/// One Emotions{N} snapshot (embedded in EmotionLibrarySO or copied to EmotionSetDataSO).
/// </summary>
[Serializable]
public class EmotionSetSnapshot
{
public int EmotionSetIndex;
public int CellWidth = 32;
public int CellHeight = 32;
public Texture2D SourceAtlas;
public string SourceTxtAssetPath = "";
public List<EmotionEntryData> Entries = new List<EmotionEntryData>();
}
/// <summary>
/// Một ScriptableObject chứa nhiều bộ emotion (vd. emotions0emotions7).
/// Single SO holding multiple emotion sets (e.g. all 8 atlases).
/// </summary>
[CreateAssetMenu(fileName = "EmotionLibrary", menuName = "Perfect World/Chat/Emotion Library (All Sets)", order = 1)]
public class EmotionLibrarySO : ScriptableObject
{
[Tooltip("Danh sách các bộ theo EmotionSetIndex (0,1,2,…).")]
public List<EmotionSetSnapshot> Sets = new List<EmotionSetSnapshot>();
public EmotionSetSnapshot GetSetOrNull(int emotionSetIndex)
{
if (Sets == null) return null;
foreach (var s in Sets)
{
if (s != null && s.EmotionSetIndex == emotionSetIndex)
return s;
}
return null;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3805edc4ea793a54eabafdd3e7e48581
@@ -0,0 +1,46 @@
using System.Collections.Generic;
using UnityEngine;
namespace BrewMonster.Scripts.Chat.EmotionData
{
/// <summary>
/// Dữ liệu một bộ emotion (tương ứng Emotions{N}.dds + Emotions{N}.txt).
/// Data for one emotion group (matches Emotions{N}.dds + Emotions{N}.txt).
/// </summary>
[CreateAssetMenu(fileName = "EmotionSetData", menuName = "Perfect World/Chat/Emotion Set Data", order = 0)]
public class EmotionSetDataSO : ScriptableObject
{
[Tooltip("N trong Emotions{N} (0..31 như AUIMANAGER_MAX_EMOTIONGROUPS).")]
public int EmotionSetIndex;
[Tooltip("Kích thước ô lưới giống C++ (mặc định 32x32).")]
public int CellWidth = 32;
[Tooltip("Kích thước ô lưới giống C++ (mặc định 32x32).")]
public int CellHeight = 32;
[Tooltip("Texture nguồn (atlas PNG/DDS import) dùng khi convert.")]
public Texture2D SourceAtlas;
[Tooltip("Đường dẫn asset của file txt nguồn (optional, để trace).")]
public string SourceTxtAssetPath;
public List<EmotionEntryData> Entries = new List<EmotionEntryData>();
/// <summary>
/// Số ô theo chiều ngang trong atlas (texture width / CellWidth).
/// </summary>
public int GridCellsX => SourceAtlas != null && CellWidth > 0
? SourceAtlas.width / CellWidth
: 0;
/// <summary>
/// Số ô theo chiều dọc.
/// </summary>
public int GridCellsY => SourceAtlas != null && CellHeight > 0
? SourceAtlas.height / CellHeight
: 0;
public int TotalCells => GridCellsX * GridCellsY;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2143882ad81a4ac4ea7e23512f481104
@@ -0,0 +1,147 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
namespace BrewMonster.Scripts.Chat.EmotionData
{
/// <summary>
/// Parser token giống thứ tự đọc trong AUIManager.cpp (Emotions{N}.txt).
/// Token order matches AUIManager.cpp when loading Emotions{N}.txt.
/// </summary>
public static class EmotionTxtParser
{
public const int MaxFrames = 20; // AUITEXTAREA_EMOTHION_MAXFRAME
public readonly struct ParseResult
{
public readonly List<EmotionEntryData> Entries;
public readonly string ErrorMessage;
public bool Success => string.IsNullOrEmpty(ErrorMessage);
public ParseResult(List<EmotionEntryData> entries, string error)
{
Entries = entries;
ErrorMessage = error ?? "";
}
}
/// <summary>
/// Đọc toàn bộ nội dung file txt; token tách bằng whitespace (giống GetNextToken cơ bản).
/// Reads full txt; tokens split by whitespace (basic GetNextToken behavior).
/// </summary>
public static ParseResult Parse(string text)
{
if (string.IsNullOrWhiteSpace(text))
return new ParseResult(new List<EmotionEntryData>(), "Empty text.");
var tokens = Tokenize(text);
var entries = new List<EmotionEntryData>();
int t = 0;
while (t < tokens.Count)
{
if (!TryParseInt(tokens[t], out int startPos))
return new ParseResult(null, $"Invalid nStartPos at token index {t}: '{tokens[t]}'");
t++;
if (t >= tokens.Count)
return new ParseResult(null, "Unexpected EOF after nStartPos.");
if (!TryParseInt(tokens[t], out int numFramesRaw))
return new ParseResult(null, $"Invalid nNumFrames at token index {t}.");
int numFrames = Math.Min(Math.Max(0, numFramesRaw), MaxFrames);
t++;
if (t >= tokens.Count)
return new ParseResult(null, "Unexpected EOF after nNumFrames (missing hint).");
string hint = tokens[t];
t++;
var frameTicks = new int[numFrames];
for (int i = 0; i < numFrames; i++)
{
if (t >= tokens.Count)
return new ParseResult(null,
$"Unexpected EOF: need {numFrames} frame tick values for entry starting at StartPos={startPos}.");
if (!TryParseInt(tokens[t], out frameTicks[i]))
return new ParseResult(null, $"Invalid nFrameTick[{i}] at token index {t}.");
t++;
}
entries.Add(new EmotionEntryData
{
StartPos = startPos,
NumFrames = numFrames,
Hint = hint,
FrameTicks = frameTicks
});
}
return new ParseResult(entries, null);
}
private static bool TryParseInt(string s, out int v)
{
return int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out v);
}
/// <summary>
/// Tách token: khoảng trắng; hỗ trợ chuỗi trong dấu ngoặc kép cho hint nếu sau này cần.
/// </summary>
private static List<string> Tokenize(string text)
{
var list = new List<string>();
var sb = new StringBuilder();
bool inQuotes = false;
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
if (inQuotes)
{
if (c == '"')
inQuotes = false;
else
sb.Append(c);
continue;
}
if (c == '"')
{
if (sb.Length > 0)
{
list.Add(sb.ToString());
sb.Clear();
}
inQuotes = true;
continue;
}
if (char.IsWhiteSpace(c))
{
if (sb.Length > 0)
{
list.Add(sb.ToString());
sb.Clear();
}
continue;
}
sb.Append(c);
}
if (sb.Length > 0)
list.Add(sb.ToString());
return list;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 656924d32be0e3c469b409078941188e
@@ -0,0 +1,29 @@
/// <summary>
/// Stub实现 — 在没有真实TMP_SpriteAsset(emotion atlas)时使用的占位映射。
/// Stub implementation used when no real TMP_SpriteAsset (emotion atlas) is available yet.
///
/// 当准备好atlas后,创建一个新的IEmotionSpriteMap实现,替换掉这个stub。
/// When atlas is ready, create a real IEmotionSpriteMap implementation and swap it in
/// EC_GameUIMan._spriteMap.
/// </summary>
public class StubEmotionSpriteMap : IEmotionSpriteMap
{
private const int EMOTIONS_PER_SET = 50;
private const int FRAMES_PER_EMOTION = 4;
private const int DEFAULT_FPS = 10;
public bool TryGetSprite(int emotionSet, int emotionIndex, out EmotionSpriteInfo info)
{
int startFrame = (emotionSet * EMOTIONS_PER_SET + emotionIndex) * FRAMES_PER_EMOTION;
info = new EmotionSpriteInfo
{
SpriteIndex = startFrame,
IsAnimated = true,
AnimEndFrame = startFrame + FRAMES_PER_EMOTION - 1,
AnimFPS = DEFAULT_FPS
};
return true;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8b0342124b298f0428adfc94c9d6d972
@@ -448,6 +448,175 @@ namespace CSNetwork
}
return sb.ToString();
}
// =====================================================================
// TMP Rich Text Converters — 将内部item格式转换为TextMeshPro标签
// Pipeline: displayText + EditBoxItemsSet
// → ConvertEmotionsToTMP (表情 → <sprite>)
// → ConvertCoordsToTMP (坐标 → <link>)
// → ConvertIvtrItemsToTMP (物品 → <link>)
// → StripRemainingItemCodes(清理残留)
// =====================================================================
/// <summary>
/// [TMP] 将表情item替换为TMP sprite标签 — Replace emotion items with TMP animated sprite tags.
/// Input: displayText từ UnmarshalEditBoxText (chứa PUA placeholder chars).
/// Các item không phải Emotion được giữ nguyên cho converter tiếp theo xử lý.
/// </summary>
public static string ConvertEmotionsToTMP(string displayText, EditBoxItemsSet itemsSet, IEmotionSpriteMap spriteMap)
{
if (string.IsNullOrEmpty(displayText) || spriteMap == null)
return displayText ?? "";
var sb = new StringBuilder(displayText.Length);
for (int i = 0; i < displayText.Length; i++)
{
char ch = displayText[i];
if (IsEditboxItemCode(ch))
{
var item = itemsSet.GetItemByChar(ch);
if (item != null && item.GetType() == EditboxItemType.enumEIEmotion)
{
int nSet = 0, nIndex = 0;
UnmarshalEmotionInfo(item.GetInfo(), ref nSet, ref nIndex);
if (spriteMap.TryGetSprite(nSet, nIndex, out var info))
{
if (info.IsAnimated)
sb.AppendFormat("<sprite anim=\"{0},{1},{2}\">",
info.SpriteIndex, info.AnimEndFrame, info.AnimFPS);
else
sb.AppendFormat("<sprite index={0}>", info.SpriteIndex);
}
}
else
{
sb.Append(ch);
}
}
else
{
sb.Append(ch);
}
}
return sb.ToString();
}
/// <summary>
/// [TMP] 将坐标item替换为TMP可点击link标签 — Replace coord items with TMP link tags.
/// Output: &lt;link="coord:info"&gt;&lt;color=#RRGGBB&gt;name&lt;/color&gt;&lt;/link&gt;
/// </summary>
public static string ConvertCoordsToTMP(string displayText, EditBoxItemsSet itemsSet)
{
if (string.IsNullOrEmpty(displayText))
return displayText ?? "";
var sb = new StringBuilder(displayText.Length);
for (int i = 0; i < displayText.Length; i++)
{
char ch = displayText[i];
if (IsEditboxItemCode(ch))
{
var item = itemsSet.GetItemByChar(ch);
if (item != null && item.GetType() == EditboxItemType.enumEICoord)
{
string colorHex = A3DColorToHex(item.GetColor());
string name = item.GetName() ?? "";
string info = item.GetInfo() ?? "";
sb.AppendFormat("<link=\"coord:{0}\"><color=#{1}>{2}</color></link>",
info, colorHex, name);
}
else
{
sb.Append(ch);
}
}
else
{
sb.Append(ch);
}
}
return sb.ToString();
}
/// <summary>
/// [TMP] 将物品item替换为TMP可点击link标签 — Replace inventory item links with TMP link tags.
/// Output: &lt;link="item:info"&gt;&lt;color=#RRGGBB&gt;&lt;u&gt;name&lt;/u&gt;&lt;/color&gt;&lt;/link&gt;
/// </summary>
public static string ConvertIvtrItemsToTMP(string displayText, EditBoxItemsSet itemsSet)
{
if (string.IsNullOrEmpty(displayText))
return displayText ?? "";
var sb = new StringBuilder(displayText.Length);
for (int i = 0; i < displayText.Length; i++)
{
char ch = displayText[i];
if (IsEditboxItemCode(ch))
{
var item = itemsSet.GetItemByChar(ch);
if (item != null && item.GetType() == EditboxItemType.enumEIIvtrlItem)
{
string colorHex = A3DColorToHex(item.GetColor());
string name = item.GetName() ?? "";
string info = item.GetInfo() ?? "";
sb.AppendFormat("<link=\"item:{0}\"><color=#{1}><u>{2}</u></color></link>",
info, colorHex, name);
}
else
{
sb.Append(ch);
}
}
else
{
sb.Append(ch);
}
}
return sb.ToString();
}
/// <summary>
/// [TMP] 移除剩余的PUA item code字符 — Safety net: strip any remaining PUA item codes
/// not handled by the above converters (e.g. enumEIScriptItem, enumEIImage, custom types).
/// </summary>
public static string StripRemainingItemCodes(string displayText)
{
if (string.IsNullOrEmpty(displayText))
return displayText ?? "";
var sb = new StringBuilder(displayText.Length);
for (int i = 0; i < displayText.Length; i++)
{
if (!IsEditboxItemCode(displayText[i]))
sb.Append(displayText[i]);
}
return sb.ToString();
}
/// <summary>
/// A3DCOLOR (uint, ARGB format) → "RRGGBB" hex string cho TMP color tag.
/// </summary>
public static string A3DColorToHex(uint color)
{
byte r = (byte)((color >> 16) & 0xFF);
byte g = (byte)((color >> 8) & 0xFF);
byte b = (byte)(color & 0xFF);
return $"{r:X2}{g:X2}{b:X2}";
}
}
}
@@ -932,3 +1101,53 @@ public class EditboxScriptItem
return Data?.Length ?? 0;
}
}
/// <summary>
/// 表情sprite信息 — Describes how one emotion maps to a TMP_SpriteAsset sprite (or animation).
/// </summary>
public struct EmotionSpriteInfo
{
/// <summary>TMP sprite index (frame đầu tiên nếu có animation).</summary>
public int SpriteIndex;
/// <summary>True nếu emotion này là icon động (nhiều frame).</summary>
public bool IsAnimated;
/// <summary>Index frame cuối (inclusive). Chỉ dùng khi IsAnimated = true.</summary>
public int AnimEndFrame;
/// <summary>Frames per second. Chỉ dùng khi IsAnimated = true.</summary>
public int AnimFPS;
}
/// <summary>
/// Interface ánh xạ (emotionSet, emotionIndex) → TMP sprite info.
/// Implement interface này khi đã có TMP_SpriteAsset (atlas emotion icons).
///
/// Ví dụ sử dụng:
/// <code>
/// public class MyEmotionMap : IEmotionSpriteMap
/// {
/// public bool TryGetSprite(int set, int index, out EmotionSpriteInfo info)
/// {
/// int spriteStart = set * 30 + index * 4; // 30 emotions/set, 4 frames mỗi emotion
/// info = new EmotionSpriteInfo
/// {
/// SpriteIndex = spriteStart,
/// IsAnimated = true,
/// AnimEndFrame = spriteStart + 3,
/// AnimFPS = 10
/// };
/// return true;
/// }
/// }
/// </code>
/// </summary>
public interface IEmotionSpriteMap
{
/// <summary>
/// Tra bảng (emotionSet, emotionIndex) → EmotionSpriteInfo.
/// Trả về false nếu không tìm thấy (emotion sẽ bị bỏ qua khi render).
/// </summary>
bool TryGetSprite(int emotionSet, int emotionIndex, out EmotionSpriteInfo info);
}
@@ -33,6 +33,9 @@ namespace BrewMonster.UI
public CDlgMiniMap m_pDlgMiniMap;
// 表情Sprite映射 — Emotion sprite map for TMP rendering (swap with real impl when atlas is ready)
private IEmotionSpriteMap _spriteMap = new StubEmotionSpriteMap();
// Layout/settings flags for GetUserLayout (saved to server)
// 布局/设置标志,用于 GetUserLayout(保存到服务器)
private bool m_bAutoReply;
@@ -431,7 +434,8 @@ namespace BrewMonster.UI
}
// C++: ACString strModified = FilterEmotionSet(pszMsg, cEmotion);
string strModified = pszMsg;
// 修正表情 — Correct emotion set for this channel
string strModified = AUICommon.FilterEmotionSet(pszMsg, cEmotion);
// C++: 修正给GM的额外信息 (Fix extra info for GM)
// (Skipped in Unity for now)
@@ -474,6 +478,20 @@ namespace BrewMonster.UI
CECUIManager.Instance.FilterBadWords(ref pszMsg);
}
// TMP Conversion: 将内部item格式转换为TMP rich text标签
// Unmarshal inline items (emotion/coord/ivtritem) and convert to TMP tags
EditBoxItemsSet itemsSet = new EditBoxItemsSet();
string displayText = AUICommon.UnmarshalEditBoxText(pszMsg, itemsSet);
if (itemsSet.GetItemCount() > 0)
{
string tmpText = displayText;
tmpText = AUICommon.ConvertEmotionsToTMP(tmpText, itemsSet, _spriteMap);
tmpText = AUICommon.ConvertCoordsToTMP(tmpText, itemsSet);
tmpText = AUICommon.ConvertIvtrItemsToTMP(tmpText, itemsSet);
tmpText = AUICommon.StripRemainingItemCodes(tmpText);
pszMsg = tmpText;
}
// C++: Booth Message check (cChannel == GP_CHAT_WHISPER && pszMsg ends with "!#")
// (Skipped)
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 74be13e484f282140a6795b465cc3ac2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fc7f2e18c19aa5346a706caec5f4ec59
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dc188c86ecb92594ca08313d5e14f9a6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 218eac237a6113a49a3e2f5455459c12
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2eb1325f8b2c40c43bc9de0d1277aae6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 386959475b960de449e8749b3a011f38
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 319 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c0f9ced5aa63eb94ebb4da17a30d465e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f7f6fa101b4147941bf81b649b2041ee
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2ef2d60aa57075b4bbcc898417b05f01
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f67e0a5d950e9b34f9241a688d674050
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 76b92f453e51f46438cb914bb0c9e6cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,537 @@
fileFormatVersion: 2
guid: 84e9c440264236f45adfb529204b91f9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Default
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: cell_0000
rect:
serializedVersion: 2
x: 0
y: 96
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 6f5b9663c6b977210800000000000000
internalID: 1330703103982941686
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0001
rect:
serializedVersion: 2
x: 32
y: 96
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: e76cb594529ae32f0800000000000000
internalID: -991168890365294978
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0002
rect:
serializedVersion: 2
x: 64
y: 96
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 05aa950660ebf5ae0800000000000000
internalID: -1558318011451332016
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0003
rect:
serializedVersion: 2
x: 96
y: 96
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 027b202b8a95f5a00800000000000000
internalID: 747414644242691872
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0004
rect:
serializedVersion: 2
x: 0
y: 64
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 00ce46140c373a730800000000000000
internalID: 4009175362857921536
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0005
rect:
serializedVersion: 2
x: 32
y: 64
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9a7727b32a2812150800000000000000
internalID: 5846097424597284777
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0006
rect:
serializedVersion: 2
x: 64
y: 64
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: a509edc41b42fe1b0800000000000000
internalID: -5625237065644994470
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0007
rect:
serializedVersion: 2
x: 96
y: 64
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: bc304e17e64179b30800000000000000
internalID: 4293923234310783947
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0008
rect:
serializedVersion: 2
x: 0
y: 32
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: b96277280a806c780800000000000000
internalID: -8663227347723934053
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0009
rect:
serializedVersion: 2
x: 32
y: 32
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 225da9d6df3668020800000000000000
internalID: 2343670596209661218
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0010
rect:
serializedVersion: 2
x: 64
y: 32
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: cf055f55525b181f0800000000000000
internalID: -1044354466612686596
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0011
rect:
serializedVersion: 2
x: 96
y: 32
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 4cd04bbe4dfdc37b0800000000000000
internalID: -5243069760585593404
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0012
rect:
serializedVersion: 2
x: 0
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 84d522e2e4defebb0800000000000000
internalID: -4904440549145944760
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0013
rect:
serializedVersion: 2
x: 32
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: b63dbb5feb60d68f0800000000000000
internalID: -545772562605681813
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0014
rect:
serializedVersion: 2
x: 64
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: bc2840338ad13a5e0800000000000000
internalID: -1899642009572572469
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: cell_0015
rect:
serializedVersion: 2
x: 96
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: ccc4192bfb7190d40800000000000000
internalID: 5550994127812906188
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
cell_0000: 1330703103982941686
cell_0001: -991168890365294978
cell_0002: -1558318011451332016
cell_0003: 747414644242691872
cell_0004: 4009175362857921536
cell_0005: 5846097424597284777
cell_0006: -5625237065644994470
cell_0007: 4293923234310783947
cell_0008: -8663227347723934053
cell_0009: 2343670596209661218
cell_0010: -1044354466612686596
cell_0011: -5243069760585593404
cell_0012: -4904440549145944760
cell_0013: -545772562605681813
cell_0014: -1899642009572572469
cell_0015: 5550994127812906188
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 54fa2be7bb2a6a240b9419fd76bc7e2f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 66461fb8e39c4f74089e1686884ab67c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 86c918a5757b94246b6da14f5c48f4d6
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 30a52c2c4af94d5499ec3be1f9f84a34
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 479b1ad7206a497468cda9f257b74eeb
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 729dff8dbf27d394cb419e04a4af69a2
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8c28dea2d06bff24fbbb25a4713d885e
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 49e01270b39230f45b8cf3bd2bf2d4b0
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d4001a7c27db5394a993c7a395cb072c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a96c3c9fdcd05684db33d441d62f0583
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -37,13 +37,13 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
@@ -52,9 +52,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@@ -132,6 +132,19 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
@@ -2,27 +2,33 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2103686
Material:
serializedVersion: 6
serializedVersion: 8
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TextMeshPro/Sprite
m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3}
m_ShaderKeywords: UNITY_UI_CLIP_RECT
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- UNITY_UI_CLIP_RECT
m_InvalidKeywords: []
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3}
m_Texture: {fileID: 2800000, guid: e1a057e1756274235a7c676d3d0a761a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _ColorMask: 15
- _CullMode: 0
@@ -35,6 +41,8 @@ Material:
m_Colors:
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
- _Color: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -47,15 +55,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 84a92b25f83d49b9bc132d206b370281, type: 3}
m_Name: EmojiOne
m_EditorClassIdentifier:
hashCode: -1836805472
material: {fileID: 2103686}
materialHashCode: 0
m_Version: 1.1.0
m_FaceInfo:
m_FaceIndex: 0
m_FamilyName:
m_StyleName:
m_PointSize: 0
m_Scale: 0
m_UnitsPerEM: 0
m_LineHeight: 0
m_AscentLine: 0
m_CapLine: 0
@@ -71,105 +78,90 @@ MonoBehaviour:
m_StrikethroughOffset: 0
m_StrikethroughThickness: 0
m_TabWidth: 0
spriteSheet: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3}
m_Material: {fileID: 2103686}
spriteSheet: {fileID: 2800000, guid: e1a057e1756274235a7c676d3d0a761a, type: 3}
m_SpriteCharacterTable:
- m_ElementType: 2
m_Unicode: 128522
m_GlyphIndex: 0
m_Scale: 1
m_Name: Smiling face with smiling eyes
m_HashCode: -1318250903
- m_ElementType: 2
m_Unicode: 128523
m_GlyphIndex: 1
m_Scale: 1
m_Name: 1f60b
m_HashCode: 57188339
- m_ElementType: 2
m_Unicode: 128525
m_GlyphIndex: 2
m_Scale: 1
m_Name: 1f60d
m_HashCode: 57188341
- m_ElementType: 2
m_Unicode: 128526
m_GlyphIndex: 3
m_Scale: 1
m_Name: 1f60e
m_HashCode: 57188340
- m_ElementType: 2
m_Unicode: 128512
m_GlyphIndex: 4
m_Scale: 1
m_Name: Grinning face
m_HashCode: -95541379
- m_ElementType: 2
m_Unicode: 128513
m_GlyphIndex: 5
m_Scale: 1
m_Name: 1f601
m_HashCode: 57188256
- m_ElementType: 2
m_Unicode: 128514
m_GlyphIndex: 6
m_Scale: 1
m_Name: Face with tears of joy
m_HashCode: 239522663
- m_ElementType: 2
m_Unicode: 128515
m_GlyphIndex: 7
m_Scale: 1
m_Name: 1f603
m_HashCode: 57188258
- m_ElementType: 2
m_Unicode: 128516
m_GlyphIndex: 8
m_Scale: 1
m_Name: 1f604
m_HashCode: 57188261
- m_ElementType: 2
m_Unicode: 128517
m_GlyphIndex: 9
m_Scale: 1
m_Name: 1f605
m_HashCode: 57188260
- m_ElementType: 2
m_Unicode: 128518
m_GlyphIndex: 10
m_Scale: 1
m_Name: 1f606
m_HashCode: 57188263
- m_ElementType: 2
m_Unicode: 128521
m_GlyphIndex: 11
m_Scale: 1
m_Name: 1f609
m_HashCode: 57188264
- m_ElementType: 2
m_Unicode: 0
m_GlyphIndex: 12
m_Scale: 1
m_Name: .notdef
m_HashCode: -600915428
- m_ElementType: 2
m_Unicode: 129315
m_GlyphIndex: 13
m_Scale: 1
m_Name: 1f923
m_HashCode: 57200239
- m_ElementType: 2
m_Unicode: 9786
m_GlyphIndex: 14
m_Scale: 1
m_Name: 263a
m_HashCode: 1748406
- m_ElementType: 2
m_Unicode: 9785
m_GlyphIndex: 15
m_Scale: 1
m_Name: 2639
m_HashCode: 1748462
m_SpriteGlyphTable:
m_GlyphTable:
- m_Index: 0
m_Metrics:
m_Width: 128
@@ -184,6 +176,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 1
m_Metrics:
@@ -199,6 +192,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 2
m_Metrics:
@@ -214,6 +208,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 3
m_Metrics:
@@ -229,6 +224,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 4
m_Metrics:
@@ -244,6 +240,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 5
m_Metrics:
@@ -259,6 +256,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 6
m_Metrics:
@@ -274,6 +272,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 7
m_Metrics:
@@ -289,6 +288,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 8
m_Metrics:
@@ -304,6 +304,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 9
m_Metrics:
@@ -319,6 +320,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 10
m_Metrics:
@@ -334,6 +336,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 11
m_Metrics:
@@ -349,6 +352,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 12
m_Metrics:
@@ -364,6 +368,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 13
m_Metrics:
@@ -379,6 +384,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 14
m_Metrics:
@@ -394,6 +400,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
- m_Index: 15
m_Metrics:
@@ -409,6 +416,7 @@ MonoBehaviour:
m_Height: 128
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
sprite: {fileID: 0}
spriteInfoList:
- id: 0
@@ -638,22 +646,29 @@ MonoBehaviour:
fallbackSpriteAssets: []
--- !u!21 &1369835458
Material:
serializedVersion: 6
serializedVersion: 8
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TextMeshPro/Sprite
m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3}
m_ShaderKeywords:
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs: []
m_Ints: []
m_Floats: []
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
+240 -102
View File
@@ -1,27 +1,57 @@
fileFormatVersion: 2
guid: dffef66376be4fa480fb02b19edbe903
TextureImporter:
fileIDToRecycleName:
21300000: EmojiOne_0
21300002: EmojiOne_1
21300004: EmojiOne_2
21300006: EmojiOne_3
21300008: EmojiOne_4
21300010: EmojiOne_6
21300012: EmojiOne_7
21300014: EmojiOne_8
21300016: EmojiOne_9
21300018: EmojiOne_10
21300020: EmojiOne_11
21300022: EmojiOne_12
21300024: EmojiOne_13
21300026: EmojiOne_5
21300028: EmojiOne_14
internalIDToNameTable:
- first:
213: 21300000
second: EmojiOne_0
- first:
213: 21300002
second: EmojiOne_1
- first:
213: 21300004
second: EmojiOne_2
- first:
213: 21300006
second: EmojiOne_3
- first:
213: 21300008
second: EmojiOne_4
- first:
213: 21300010
second: EmojiOne_6
- first:
213: 21300012
second: EmojiOne_7
- first:
213: 21300014
second: EmojiOne_8
- first:
213: 21300016
second: EmojiOne_9
- first:
213: 21300018
second: EmojiOne_10
- first:
213: 21300020
second: EmojiOne_11
- first:
213: 21300022
second: EmojiOne_12
- first:
213: 21300024
second: EmojiOne_13
- first:
213: 21300026
second: EmojiOne_5
- first:
213: 21300028
second: EmojiOne_14
externalObjects: {}
serializedVersion: 5
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -35,7 +65,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -44,9 +79,9 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
@@ -58,19 +93,26 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 2
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 512
resizeAlgorithm: 0
@@ -80,8 +122,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 512
resizeAlgorithm: 0
@@ -91,9 +135,11 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: iPhone
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
@@ -102,8 +148,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 512
resizeAlgorithm: 0
@@ -113,7 +161,22 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
@@ -121,18 +184,20 @@ TextureImporter:
name: EmojiOne_0
rect:
serializedVersion: 2
x: 0
y: 384
width: 128
height: 128
x: 4
y: 388
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 4bcc36da2108f2c4ba3de5c921d25c3c
internalID: 21300000
vertices: []
indices:
edges: []
@@ -141,18 +206,20 @@ TextureImporter:
name: EmojiOne_1
rect:
serializedVersion: 2
x: 128
y: 384
width: 128
height: 128
x: 132
y: 388
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: e9eea8093eaeaee4d901c4553f572c22
internalID: 21300002
vertices: []
indices:
edges: []
@@ -161,18 +228,20 @@ TextureImporter:
name: EmojiOne_2
rect:
serializedVersion: 2
x: 256
y: 384
width: 128
height: 128
x: 260
y: 388
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 49451da35411dcc42a3692e39b0fde70
internalID: 21300004
vertices: []
indices:
edges: []
@@ -181,18 +250,20 @@ TextureImporter:
name: EmojiOne_3
rect:
serializedVersion: 2
x: 384
y: 384
width: 128
height: 128
x: 388
y: 388
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: f65709664b924904790c850a50ca82bc
internalID: 21300006
vertices: []
indices:
edges: []
@@ -201,18 +272,20 @@ TextureImporter:
name: EmojiOne_4
rect:
serializedVersion: 2
x: 0
y: 256
width: 128
height: 128
x: 4
y: 260
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 5b92c568a5ec9ad4b9ed90e271f1c9a8
internalID: 21300008
vertices: []
indices:
edges: []
@@ -221,18 +294,20 @@ TextureImporter:
name: EmojiOne_6
rect:
serializedVersion: 2
x: 256
y: 256
width: 128
height: 128
x: 260
y: 260
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: b10f2b48b7281594bb8a24a6511a35af
internalID: 21300010
vertices: []
indices:
edges: []
@@ -241,18 +316,20 @@ TextureImporter:
name: EmojiOne_7
rect:
serializedVersion: 2
x: 384
y: 256
width: 128
height: 128
x: 388
y: 260
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 10a600f9329dc2246a897e89f4d283cd
internalID: 21300012
vertices: []
indices:
edges: []
@@ -261,18 +338,20 @@ TextureImporter:
name: EmojiOne_8
rect:
serializedVersion: 2
x: 0
y: 128
width: 128
height: 128
x: 4
y: 132
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 66cffa363b90ab14787d8a5b90cf4502
internalID: 21300014
vertices: []
indices:
edges: []
@@ -281,18 +360,20 @@ TextureImporter:
name: EmojiOne_9
rect:
serializedVersion: 2
x: 128
y: 128
width: 128
height: 128
x: 132
y: 132
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 55cf3d409c9b89349b1e1bdc1cc224ad
internalID: 21300016
vertices: []
indices:
edges: []
@@ -301,18 +382,20 @@ TextureImporter:
name: EmojiOne_10
rect:
serializedVersion: 2
x: 256
y: 128
width: 128
height: 128
x: 260
y: 132
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 2a9e58eaf96feef42bcefa1cf257193f
internalID: 21300018
vertices: []
indices:
edges: []
@@ -321,18 +404,20 @@ TextureImporter:
name: EmojiOne_11
rect:
serializedVersion: 2
x: 384
y: 128
width: 128
height: 128
x: 388
y: 132
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 2489120affc155840ae6a7be2e93ce19
internalID: 21300020
vertices: []
indices:
edges: []
@@ -341,18 +426,20 @@ TextureImporter:
name: EmojiOne_12
rect:
serializedVersion: 2
x: 0
y: 0
width: 128
height: 128
x: 4
y: 4
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 412349a150598d14da4d7140df5c0286
internalID: 21300022
vertices: []
indices:
edges: []
@@ -361,18 +448,20 @@ TextureImporter:
name: EmojiOne_13
rect:
serializedVersion: 2
x: 128
y: 0
width: 128
height: 128
x: 132
y: 4
width: 120
height: 120
alignment: 0
pivot: {x: 0.5, y: 0.5}
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: a937464b42bb3634782dea34c6becb6c
internalID: 21300024
vertices: []
indices:
edges: []
@@ -381,18 +470,20 @@ TextureImporter:
name: EmojiOne_5
rect:
serializedVersion: 2
x: 256
y: 0
width: 128
height: 128
x: 132
y: 260
width: 120
height: 120
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: b0f933b217682124dbfc5e6b89abe3d0
internalID: 21300026
vertices: []
indices:
edges: []
@@ -401,31 +492,78 @@ TextureImporter:
name: EmojiOne_14
rect:
serializedVersion: 2
x: 128
y: 256
width: 128
height: 128
x: 260
y: 4
width: 120
height: 120
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: f7235c763afe4434e8bb666750a41096
internalID: 21300028
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: EmojiOne_15
rect:
serializedVersion: 2
x: 388
y: 4
width: 120
height: 120
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: fb60fe2758c4c5942906da1f2074306d
internalID: -514145858
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 3e32d8f5477abfc43b19066e8ad5032e
internalID: 0
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
EmojiOne_0: 21300000
EmojiOne_1: 21300002
EmojiOne_10: 21300018
EmojiOne_11: 21300020
EmojiOne_12: 21300022
EmojiOne_13: 21300024
EmojiOne_14: 21300028
EmojiOne_15: -514145858
EmojiOne_2: 21300004
EmojiOne_3: 21300006
EmojiOne_4: 21300008
EmojiOne_5: 21300026
EmojiOne_6: 21300010
EmojiOne_7: 21300012
EmojiOne_8: 21300014
EmojiOne_9: 21300016
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant: