加入用户最近100场战绩记录并实现展示
This commit is contained in:
@@ -0,0 +1,443 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Steamworks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class UI_Player : MonoBehaviour
|
||||
{
|
||||
private const string FirstLaunchDatePrefKey = "player.first_launch_date";
|
||||
private const string SongResourcesPath = "song_songIndex";
|
||||
private const string VersionLabel = "\u5185\u90e8\u6d4b\u8bd5v207b35";
|
||||
private const string ChannelLabel = "Steam";
|
||||
private static readonly Color SteamOnlineColor = new Color32(20, 120, 45, 255);
|
||||
|
||||
[Header("prefab")]
|
||||
public GameObject pInfoPrefab;
|
||||
public Transform pInfoParent;
|
||||
|
||||
[Header("so")]
|
||||
[SerializeField] private Player_SO pSO;
|
||||
|
||||
[Header("uData")]
|
||||
public Image userProfileImage;
|
||||
public Text userNameText;
|
||||
public Text userIDText;
|
||||
public Text user_registDate;
|
||||
|
||||
[Header("uSource")]
|
||||
public Text userSource;
|
||||
|
||||
[Header("uRecord")]
|
||||
public Text fcAmount;
|
||||
public Text firstFCsong;
|
||||
public Text totalPlayTime;
|
||||
|
||||
private readonly List<GameObject> spawnedInfoEntries = new List<GameObject>();
|
||||
private Color defaultInfoColor = Color.black;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
StartCoroutine(InitializeAsync());
|
||||
}
|
||||
|
||||
private IEnumerator InitializeAsync()
|
||||
{
|
||||
StoreOwnershipLedger.EnsureInstance().InitializeIfNeeded();
|
||||
StoreOwnershipLedger.EnsureInstance().ForceSyncMirrorFlags();
|
||||
|
||||
string registerDate = EnsureFirstLaunchDate();
|
||||
UserInfoSnapshot snapshot = BuildUserInfoSnapshot(registerDate);
|
||||
|
||||
ApplyLegacyTextMirrors(snapshot);
|
||||
RebuildInfoEntries(snapshot);
|
||||
|
||||
yield return null;
|
||||
yield return StartCoroutine(LoadSteamProfileAsync(snapshot.isSteamOnline));
|
||||
}
|
||||
|
||||
private string EnsureFirstLaunchDate()
|
||||
{
|
||||
string playerPrefsDate = PlayerPrefs.GetString(FirstLaunchDatePrefKey, string.Empty);
|
||||
string soDate = pSO != null ? pSO.firstLaunchDate : string.Empty;
|
||||
|
||||
string finalDate = !string.IsNullOrWhiteSpace(playerPrefsDate)
|
||||
? playerPrefsDate
|
||||
: (!string.IsNullOrWhiteSpace(soDate) ? soDate : DateTime.Now.ToString("yyyy-MM-dd"));
|
||||
|
||||
if (playerPrefsDate != finalDate)
|
||||
{
|
||||
PlayerPrefs.SetString(FirstLaunchDatePrefKey, finalDate);
|
||||
PlayerPrefs.Save();
|
||||
}
|
||||
|
||||
if (pSO != null && pSO.firstLaunchDate != finalDate)
|
||||
{
|
||||
pSO.firstLaunchDate = finalDate;
|
||||
#if UNITY_EDITOR
|
||||
UnityEditor.EditorUtility.SetDirty(pSO);
|
||||
#endif
|
||||
}
|
||||
|
||||
return finalDate;
|
||||
}
|
||||
|
||||
private UserInfoSnapshot BuildUserInfoSnapshot(string registerDate)
|
||||
{
|
||||
SongStats songStats = CollectSongStats();
|
||||
return new UserInfoSnapshot
|
||||
{
|
||||
registerDate = registerDate,
|
||||
ownedHeroCount = CountOwnedHeroes(),
|
||||
ownedSongCount = songStats.ownedSongCount,
|
||||
totalGameEnterCount = songStats.totalGameEnterCount,
|
||||
totalPlaySeconds = songStats.totalPlaySeconds,
|
||||
isSteamOnline = IsSteamOnline()
|
||||
};
|
||||
}
|
||||
|
||||
private void ApplyLegacyTextMirrors(UserInfoSnapshot snapshot)
|
||||
{
|
||||
if (user_registDate != null)
|
||||
{
|
||||
user_registDate.text = snapshot.registerDate;
|
||||
}
|
||||
|
||||
if (userSource != null)
|
||||
{
|
||||
userSource.text = ChannelLabel;
|
||||
userSource.color = snapshot.isSteamOnline ? SteamOnlineColor : Color.black;
|
||||
}
|
||||
|
||||
if (totalPlayTime != null)
|
||||
{
|
||||
totalPlayTime.text = FormatPlayTime(snapshot.totalPlaySeconds);
|
||||
}
|
||||
|
||||
if (fcAmount != null && string.IsNullOrWhiteSpace(fcAmount.text))
|
||||
{
|
||||
fcAmount.text = "-";
|
||||
}
|
||||
|
||||
if (firstFCsong != null && string.IsNullOrWhiteSpace(firstFCsong.text))
|
||||
{
|
||||
firstFCsong.text = "-";
|
||||
}
|
||||
}
|
||||
|
||||
private void RebuildInfoEntries(UserInfoSnapshot snapshot)
|
||||
{
|
||||
ClearInfoEntries();
|
||||
CacheDefaultInfoColor();
|
||||
|
||||
SpawnInfoEntry("\u6ce8\u518c\u65e5\u671f", snapshot.registerDate);
|
||||
SpawnInfoEntry("\u62e5\u6709\u89d2\u8272\u6570\u91cf", snapshot.ownedHeroCount.ToString());
|
||||
SpawnInfoEntry("\u62e5\u6709\u6b4c\u66f2\u6570\u91cf", snapshot.ownedSongCount.ToString());
|
||||
SpawnInfoEntry("\u603b\u6e38\u620f\u6b21\u6570", snapshot.totalGameEnterCount.ToString());
|
||||
SpawnInfoEntry("\u6e38\u73a9\u603b\u65f6\u957f", FormatPlayTime(snapshot.totalPlaySeconds));
|
||||
SpawnInfoEntry("\u6e20\u9053", ChannelLabel, snapshot.isSteamOnline ? SteamOnlineColor : defaultInfoColor);
|
||||
SpawnInfoEntry("\u7248\u672c", VersionLabel);
|
||||
}
|
||||
|
||||
private void ClearInfoEntries()
|
||||
{
|
||||
for (int i = 0; i < spawnedInfoEntries.Count; i++)
|
||||
{
|
||||
if (spawnedInfoEntries[i] != null)
|
||||
{
|
||||
Destroy(spawnedInfoEntries[i]);
|
||||
}
|
||||
}
|
||||
|
||||
spawnedInfoEntries.Clear();
|
||||
}
|
||||
|
||||
private void CacheDefaultInfoColor()
|
||||
{
|
||||
if (pInfoPrefab == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
pInfoPrefab sample = pInfoPrefab.GetComponent<pInfoPrefab>();
|
||||
if (sample != null && sample.this_iDetail != null)
|
||||
{
|
||||
defaultInfoColor = sample.this_iDetail.color;
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnInfoEntry(string title, string detail, Color? detailColor = null)
|
||||
{
|
||||
if (pInfoPrefab == null || pInfoParent == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GameObject entryObject = Instantiate(pInfoPrefab, pInfoParent);
|
||||
spawnedInfoEntries.Add(entryObject);
|
||||
|
||||
pInfoPrefab entry = entryObject.GetComponent<pInfoPrefab>();
|
||||
if (entry == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry.this_iTitle != null)
|
||||
{
|
||||
entry.this_iTitle.text = title;
|
||||
}
|
||||
|
||||
if (entry.this_iDetail != null)
|
||||
{
|
||||
entry.this_iDetail.text = detail;
|
||||
entry.this_iDetail.color = detailColor ?? defaultInfoColor;
|
||||
}
|
||||
}
|
||||
|
||||
private static int CountOwnedHeroes()
|
||||
{
|
||||
AllyHero_SO[] loadedHeroes = Resources.LoadAll<AllyHero_SO>(string.Empty);
|
||||
HashSet<int> uniqueHeroIds = new HashSet<int>();
|
||||
int ownedCount = 0;
|
||||
|
||||
AllyHeroDeployLedger ledger = AllyHeroDeployLedger.EnsureInstance();
|
||||
ledger.InitializeIfNeeded();
|
||||
|
||||
for (int i = 0; i < loadedHeroes.Length; i++)
|
||||
{
|
||||
AllyHero_SO hero = loadedHeroes[i];
|
||||
if (hero == null || !uniqueHeroIds.Add(hero.ally_heroID))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
hero.ally_battleDeployCount = ledger.GetDeployCount(hero.ally_heroID);
|
||||
if (hero.isUnlocked)
|
||||
{
|
||||
ownedCount++;
|
||||
}
|
||||
}
|
||||
|
||||
return ownedCount;
|
||||
}
|
||||
|
||||
private static SongStats CollectSongStats()
|
||||
{
|
||||
SongData[] songs = Resources.LoadAll<SongData>(SongResourcesPath);
|
||||
HashSet<int> uniqueSongIds = new HashSet<int>();
|
||||
SongStats stats = new SongStats();
|
||||
|
||||
for (int i = 0; i < songs.Length; i++)
|
||||
{
|
||||
SongData song = songs[i];
|
||||
if (song == null || !uniqueSongIds.Add(song.songID))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
song.LoadPersistent();
|
||||
|
||||
if (song.isUnlocked)
|
||||
{
|
||||
stats.ownedSongCount++;
|
||||
}
|
||||
|
||||
stats.totalGameEnterCount += Mathf.Max(0, song.game_enterTimes);
|
||||
stats.totalPlaySeconds += Math.Max(0f, song.time_totalPlayingTime);
|
||||
}
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
private static string FormatPlayTime(double totalSeconds)
|
||||
{
|
||||
TimeSpan span = TimeSpan.FromSeconds(Math.Max(0d, totalSeconds));
|
||||
if (span.TotalHours >= 1d)
|
||||
{
|
||||
return string.Format("{0:D2}\u5c0f\u65f6{1:D2}\u5206\u949f", (int)span.TotalHours, span.Minutes);
|
||||
}
|
||||
|
||||
if (span.TotalMinutes >= 1d)
|
||||
{
|
||||
return string.Format("{0:D2}\u5206\u949f{1:D2}\u79d2", (int)span.TotalMinutes, span.Seconds);
|
||||
}
|
||||
|
||||
return string.Format("{0:D2}\u79d2", Math.Max(0, span.Seconds));
|
||||
}
|
||||
|
||||
private IEnumerator LoadSteamProfileAsync(bool isSteamOnline)
|
||||
{
|
||||
int initRetry = 0;
|
||||
while (initRetry < 25 && !SteamManager.Initialized)
|
||||
{
|
||||
initRetry++;
|
||||
yield return new WaitForSecondsRealtime(0.2f);
|
||||
}
|
||||
|
||||
if (!SteamManager.Initialized)
|
||||
{
|
||||
ApplySteamUnavailable();
|
||||
yield break;
|
||||
}
|
||||
|
||||
int retryCount = 0;
|
||||
while (retryCount < 20)
|
||||
{
|
||||
if (TryPopulateSteamProfile(isSteamOnline))
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
retryCount++;
|
||||
yield return new WaitForSecondsRealtime(0.25f);
|
||||
}
|
||||
|
||||
ApplySteamUnavailable();
|
||||
}
|
||||
|
||||
private void ApplySteamUnavailable()
|
||||
{
|
||||
if (userNameText != null)
|
||||
{
|
||||
userNameText.text = "Steam Unavailable";
|
||||
}
|
||||
|
||||
if (userIDText != null)
|
||||
{
|
||||
userIDText.text = "-";
|
||||
}
|
||||
|
||||
if (userSource != null)
|
||||
{
|
||||
userSource.text = ChannelLabel;
|
||||
userSource.color = Color.black;
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsSteamOnline()
|
||||
{
|
||||
if (!SteamManager.Initialized)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return SteamFriends.GetPersonaState() != EPersonaState.k_EPersonaStateOffline;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryPopulateSteamProfile(bool isSteamOnline)
|
||||
{
|
||||
try
|
||||
{
|
||||
CSteamID steamId = SteamUser.GetSteamID();
|
||||
string personaName = SteamFriends.GetPersonaName();
|
||||
|
||||
if (!steamId.IsValid() || string.IsNullOrWhiteSpace(personaName))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (userNameText != null)
|
||||
{
|
||||
userNameText.text = personaName;
|
||||
}
|
||||
|
||||
if (userIDText != null)
|
||||
{
|
||||
userIDText.text = steamId.m_SteamID.ToString();
|
||||
}
|
||||
|
||||
if (userSource != null)
|
||||
{
|
||||
userSource.text = ChannelLabel;
|
||||
userSource.color = isSteamOnline ? SteamOnlineColor : Color.black;
|
||||
}
|
||||
|
||||
return TryApplySteamAvatar(steamId) || userProfileImage == null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryApplySteamAvatar(CSteamID steamId)
|
||||
{
|
||||
if (userProfileImage == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
int imageId = SteamFriends.GetLargeFriendAvatar(steamId);
|
||||
if (imageId == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (imageId == 0)
|
||||
{
|
||||
imageId = SteamFriends.GetMediumFriendAvatar(steamId);
|
||||
}
|
||||
|
||||
if (imageId < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
uint width;
|
||||
uint height;
|
||||
if (!SteamUtils.GetImageSize(imageId, out width, out height) || width == 0 || height == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
byte[] imageBuffer = new byte[width * height * 4];
|
||||
if (!SteamUtils.GetImageRGBA(imageId, imageBuffer, imageBuffer.Length))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Texture2D sourceTexture = new Texture2D((int)width, (int)height, TextureFormat.RGBA32, false);
|
||||
sourceTexture.LoadRawTextureData(imageBuffer);
|
||||
sourceTexture.Apply();
|
||||
|
||||
Texture2D flippedTexture = new Texture2D((int)width, (int)height, TextureFormat.RGBA32, false);
|
||||
for (int y = 0; y < (int)height; y++)
|
||||
{
|
||||
Color[] rowPixels = sourceTexture.GetPixels(0, y, (int)width, 1);
|
||||
flippedTexture.SetPixels(0, (int)height - 1 - y, (int)width, 1, rowPixels);
|
||||
}
|
||||
|
||||
flippedTexture.Apply();
|
||||
userProfileImage.sprite = Sprite.Create(
|
||||
flippedTexture,
|
||||
new Rect(0, 0, flippedTexture.width, flippedTexture.height),
|
||||
new Vector2(0.5f, 0.5f));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private struct UserInfoSnapshot
|
||||
{
|
||||
public string registerDate;
|
||||
public int ownedHeroCount;
|
||||
public int ownedSongCount;
|
||||
public int totalGameEnterCount;
|
||||
public double totalPlaySeconds;
|
||||
public bool isSteamOnline;
|
||||
}
|
||||
|
||||
private struct SongStats
|
||||
{
|
||||
public int ownedSongCount;
|
||||
public int totalGameEnterCount;
|
||||
public double totalPlaySeconds;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01cdae7333ce2284fbd8246a1d450c3e
|
||||
@@ -0,0 +1,10 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class pInfoPrefab : MonoBehaviour
|
||||
{
|
||||
public Text this_iTitle;
|
||||
public Text this_iDetail;
|
||||
|
||||
public CanvasGroup this_cGroup;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00d9c70de03d5584caa4f58f04471b5b
|
||||
@@ -0,0 +1,302 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3594751955591054238
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7844838762169233749}
|
||||
- component: {fileID: 8249222467498812482}
|
||||
- component: {fileID: 6848707442284099788}
|
||||
m_Layer: 5
|
||||
m_Name: btm
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7844838762169233749
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3594751955591054238}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1539763450377334860}
|
||||
- {fileID: 5807069226747538177}
|
||||
m_Father: {fileID: 7358548625640972063}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8249222467498812482
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3594751955591054238}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6848707442284099788
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3594751955591054238}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 7f3b1220317607e44bbb8f0e1998044a, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &5781423114854912448
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1539763450377334860}
|
||||
- component: {fileID: 3784454099600438642}
|
||||
- component: {fileID: 358120151119990818}
|
||||
m_Layer: 5
|
||||
m_Name: title
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1539763450377334860
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5781423114854912448}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7844838762169233749}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 27.6}
|
||||
m_SizeDelta: {x: 160, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3784454099600438642
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5781423114854912448}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &358120151119990818
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5781423114854912448}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 3
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: "\u6807\u9898"
|
||||
--- !u!1 &6256686326704969565
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5807069226747538177}
|
||||
- component: {fileID: 4141175763355791591}
|
||||
- component: {fileID: 1252686709029270882}
|
||||
m_Layer: 5
|
||||
m_Name: info
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5807069226747538177
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6256686326704969565}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7844838762169233749}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 160, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4141175763355791591
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6256686326704969565}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1252686709029270882
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6256686326704969565}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3}
|
||||
m_FontSize: 16
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 3
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: "\u4FE1\u606F"
|
||||
--- !u!1 &8840060924241115349
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7358548625640972063}
|
||||
- component: {fileID: 6252520831482713548}
|
||||
- component: {fileID: 3983549219482858809}
|
||||
m_Layer: 5
|
||||
m_Name: pInfoPrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7358548625640972063
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8840060924241115349}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7844838762169233749}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &6252520831482713548
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8840060924241115349}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 00d9c70de03d5584caa4f58f04471b5b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
this_iTitle: {fileID: 358120151119990818}
|
||||
this_iDetail: {fileID: 1252686709029270882}
|
||||
this_cGroup: {fileID: 3983549219482858809}
|
||||
--- !u!225 &3983549219482858809
|
||||
CanvasGroup:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8840060924241115349}
|
||||
m_Enabled: 1
|
||||
m_Alpha: 1
|
||||
m_Interactable: 1
|
||||
m_BlocksRaycasts: 1
|
||||
m_IgnoreParentGroups: 0
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54a993fe0ba0c4b48b7486f77418c8fc
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user