This commit is contained in:
2026-04-03 22:46:17 +07:00
parent 72f2a5f3e8
commit 95b94260ac
367 changed files with 94940 additions and 648 deletions

View File

@@ -0,0 +1,31 @@
namespace Fusion.Statistics {
using UnityEngine;
[RequireComponent(typeof(NetworkObject)), DisallowMultipleComponent]
[AddComponentMenu("Fusion/Statistics/Network Object Statistics")]
public class FusionNetworkObjectStatistics : MonoBehaviour {
[HideInInspector]
public NetworkObject NetworkObject;
private void ToggleMonitoring(bool value) {
NetworkObject = GetComponent<NetworkObject>();
if (NetworkObject.Runner && NetworkObject.Runner.IsRunning) {
if (NetworkObject.Runner.TryGetComponent<FusionStatistics>(out var statistics)) {
if (statistics.MonitorNetworkObject(NetworkObject, this, value))
return;
}
}
// If not running or don't have the statistics manager or NO is already added on the graph, destroy for now.
Destroy(this);
}
private void OnEnable() {
ToggleMonitoring(true);
}
private void OnDisable() {
ToggleMonitoring(false);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 526b142195d343c39a9184405f9ed5e0
timeCreated: 1711133243

View File

@@ -0,0 +1,92 @@
namespace Fusion.Statistics {
using System;
using UnityEngine;
using UnityEngine.UI;
[Flags]
internal enum NetworkObjectStat{
InBandwidth = 1 << 0,
OutBandwidth = 1 << 1,
InPackets = 1 << 2,
OutPackets = 1 << 3,
AverageInPacketSize = 1 << 4,
AverageOutPacketSize = 1 << 5
}
public class FusionNetworkObjectStatsGraph : FusionStatsGraphBase {
[SerializeField] private Text _description;
private NetworkId _id;
private NetworkObjectStat _stat;
private FusionNetworkObjectStatsGraphCombine _combineParentGraph;
public override void UpdateGraph(NetworkRunner runner, FusionStatisticsManager statisticsManager, ref DateTime now) {
AddValueToBuffer(GetNetworkObjectStatValue(statisticsManager), ref now);
}
private float GetNetworkObjectStatValue(FusionStatisticsManager statisticsManager) {
if (statisticsManager.ObjectStatisticsManager.GetNetworkObjectStatistics(_id, out var snapshot)) {
switch (_stat) {
case NetworkObjectStat.InBandwidth:
return snapshot.InBandwidth;
case NetworkObjectStat.OutBandwidth:
return snapshot.OutBandwidth;
case NetworkObjectStat.InPackets:
return snapshot.InPackets;
case NetworkObjectStat.OutPackets:
return snapshot.OutPackets;
case NetworkObjectStat.AverageInPacketSize:
return snapshot.InBandwidth / Mathf.Max(1, snapshot.InPackets);
case NetworkObjectStat.AverageOutPacketSize:
return snapshot.OutBandwidth / Mathf.Max(1, snapshot.OutPackets);
}
}
return -1;
}
internal void SetupNetworkObjectStat(NetworkId id, NetworkObjectStat stat) {
_id = id;
_stat = stat;
_description.text = _stat.ToString();
string valueTextFormat;
float threshold1 = 0, threshold2 = 0, threshold3 = 0;
float valueTextMultiplier = 1;
bool ignoreZeroOnAverage = false, ignoreZeroOnBuffer = false;
int accumulateTimeMs = 0;
switch (stat) {
case NetworkObjectStat.InBandwidth:
case NetworkObjectStat.OutBandwidth:
valueTextFormat = "{0:0} B";
accumulateTimeMs = 1000;
_description.text += " (Per second)";
break;
case NetworkObjectStat.AverageInPacketSize:
case NetworkObjectStat.AverageOutPacketSize:
valueTextFormat = "{0:0} B";
ignoreZeroOnAverage = true;
ignoreZeroOnBuffer = true;
break;
case NetworkObjectStat.InPackets:
case NetworkObjectStat.OutPackets:
valueTextFormat = "{0:0}";
accumulateTimeMs = 1000;
_description.text += " (Per second)";
break;
default:
valueTextFormat = "{0:0}";
break;
}
SetValueTextFormat(valueTextFormat);
SetValueTextMultiplier(valueTextMultiplier);
SetThresholds(threshold1, threshold2, threshold3);
SetIgnoreZeroValues(ignoreZeroOnAverage, ignoreZeroOnBuffer);
Initialize(accumulateTimeMs);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6c65e6f8cc0e421195e5884e060e7ead
timeCreated: 1711029971

View File

@@ -0,0 +1,139 @@
namespace Fusion.Statistics {
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.UI;
using System;
public class FusionNetworkObjectStatsGraphCombine : MonoBehaviour {
[SerializeField] private Text _titleText;
[SerializeField] private Dropdown _statDropdown;
[SerializeField] private NetworkObjectStat _statsToRender;
[SerializeField] private RectTransform _rect;
[SerializeField] private RectTransform _combinedGraphRender;
[SerializeField] private Button _toggleButton;
private float _headerHeight = 50;
private float _graphHeight = 150;
private Dictionary<NetworkObjectStat, FusionNetworkObjectStatsGraph> _statsGraphs;
[SerializeField]
private FusionNetworkObjectStatsGraph _statsGraphPrefab;
private ContentSizeFitter _parentContentSizeFitter;
/// <summary>
/// Gets the unique identifier of the network object.
/// </summary>
/// <value>
/// The network object identifier.
/// </value>
public NetworkId NetworkObjectID => _networkObject.Id;
private NetworkObject _networkObject;
private FusionStatistics _fusionStatistics;
private FusionNetworkObjectStatistics _objectStatisticsInstance;
public void SetupNetworkObject(NetworkObject networkObject, FusionStatistics fusionStatistics, FusionNetworkObjectStatistics objectStatisticsInstance) {
_networkObject = networkObject;
_fusionStatistics = fusionStatistics;
_objectStatisticsInstance = objectStatisticsInstance;
}
private void Start() {
_statsGraphs = new Dictionary<NetworkObjectStat, FusionNetworkObjectStatsGraph>();
_parentContentSizeFitter = GetComponentInParent<ContentSizeFitter>();
List<Dropdown.OptionData> options = new List<Dropdown.OptionData>();
options.Add(new Dropdown.OptionData("Toggle Stats"));
foreach (var option in Enum.GetNames(typeof(NetworkObjectStat))) {
options.Add(new Dropdown.OptionData(option));
}
_statDropdown.options = options;
_statDropdown.onValueChanged.AddListener(OnDropDownChanged);
UpdateHeight();
_titleText.text = _networkObject.Name;
}
private void OnDropDownChanged(int arg0) {
if (arg0 <= 0) return; // No stat selected.
arg0--; // Remove the first label
NetworkObjectStat stat = (NetworkObjectStat)(1 << arg0);
if ((_statsToRender & stat) == stat) {
_statsToRender &= ~stat; // Removed the flag
DestroyStatGraph(stat);
} else {
_statsToRender |= stat; // Set the flag
InstantiateStatGraph(stat);
}
UpdateHeight();
// Set the first label again.
_statDropdown.SetValueWithoutNotify(0);
}
private void InstantiateStatGraph(NetworkObjectStat stat) {
FusionNetworkObjectStatsGraph graph = Instantiate(_statsGraphPrefab, _combinedGraphRender);
graph.SetupNetworkObjectStat(NetworkObjectID, stat);
_statsGraphs.Add(stat, graph);
}
private void DestroyStatGraph(NetworkObjectStat stat) {
_statsGraphs[stat].gameObject.SetActive(false);
Destroy(_statsGraphs[stat].gameObject);
_statsGraphs.Remove(stat);
}
private void UpdateHeight(float overrideValue = -1) {
var sizeDelta = _rect.sizeDelta;
var height = overrideValue >= 0 ? overrideValue : _headerHeight + _statsGraphs.Count * _graphHeight;
_rect.sizeDelta = new Vector2(sizeDelta.x,height);
// Need to refresh vertical scroll
_parentContentSizeFitter.enabled = false;
_parentContentSizeFitter.enabled = true;
}
private void OnDisable() {
if (_statsGraphs == null) return;
foreach (var graph in _statsGraphs.Values) {
graph.gameObject.SetActive(false);
}
}
private void OnEnable() {
if (_statsGraphs == null) return;
foreach (var graph in _statsGraphs.Values) {
graph.gameObject.SetActive(true);
}
}
public void ToggleRenderDisplay() {
var active = _combinedGraphRender.gameObject.activeSelf;
_combinedGraphRender.gameObject.SetActive(!active);
if (active) {
OnDisable();
UpdateHeight(_headerHeight);
_toggleButton.transform.rotation = Quaternion.Euler(0, 0, 90);
} else {
OnEnable();
UpdateHeight();
_toggleButton.transform.rotation = Quaternion.identity;
}
}
public void DestroyCombinedGraph() {
_fusionStatistics.MonitorNetworkObject(_networkObject, _objectStatisticsInstance, false);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 19334f7ed30f4e8ea9f48a51534f09dd
timeCreated: 1711030624

View File

@@ -0,0 +1,262 @@
namespace Fusion.Statistics {
using System;
using UnityEngine;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.EventSystems;
using UnityEngine.Profiling;
using UnityEngine.Serialization;
[RequireComponent(typeof(NetworkRunner))]
[DisallowMultipleComponent]
[AddComponentMenu("Fusion/Statistics/Fusion Statistics")]
public class FusionStatistics : SimulationBehaviour, ISpawned {
internal List<FusionStatsGraphBase> ActiveGraphs => _statsGraph;
// Setup prefabs
private GameObject _statsCanvasPrefab;
private FusionNetworkObjectStatsGraphCombine _objectGraphCombinePrefab;
private const string STATS_CANVAS_PREFAB_PATH = "FusionStatsResources/FusionStatsRenderPanel";
private const string STATS_OBJECT_COMBINE_PREFAB_PATH = "FusionStatsResources/NetworkObjectStatistics";
private List<FusionStatsGraphBase> _statsGraph;
private FusionStatsPanelHeader _header;
private FusionStatsConfig _config;
private FusionStatsCanvas _statsCanvas;
private GameObject _statsPanelObject;
private Dictionary<FusionNetworkObjectStatistics, FusionNetworkObjectStatsGraphCombine> _objectStatsGraphCombines;
[InlineHelp]
[ExpandableEnum]
[SerializeField] private RenderSimStats _statsEnabled;
[InlineHelp]
[SerializeField] private CanvasAnchor _canvasAnchor = CanvasAnchor.TopRight;
[FormerlySerializedAs("_statsConfig")] [SerializeField]
[Header("Custom configuration to override default values.\nSelect only one stat flag per configuration.")]
private List<FusionStatisticsStatCustomConfig> _statsCustomConfig = new List<FusionStatisticsStatCustomConfig>();
internal List<FusionStatisticsStatCustomConfig> StatsCustomConfig => _statsCustomConfig;
/// <summary>
/// Gets a value indicating whether the statistics panel is active.
/// </summary>
public bool IsPanelActive => _statsPanelObject != false;
[System.Serializable]
public struct FusionStatisticsStatCustomConfig {
public RenderSimStats Stat;
public float Threshold1;
public float Threshold2;
public float Threshold3;
public bool IgnoreZeroOnBuffer;
public bool IgnoreZeroOnAverageCalculation;
public int AccumulateTimeMs;
}
private void Awake() {
_statsGraph = new List<FusionStatsGraphBase>();
_statsCanvasPrefab = Resources.Load<GameObject>(STATS_CANVAS_PREFAB_PATH);
_objectGraphCombinePrefab = Resources.Load<FusionNetworkObjectStatsGraphCombine>(STATS_OBJECT_COMBINE_PREFAB_PATH);
if (_statsCanvasPrefab == null || _objectGraphCombinePrefab == null) {
Log.Error($"Error loading the required assets for Fusion Statistics, destroying stats instance. Make sure that the following paths are valid for the Fusion Statistics resource assets: \n 1. {STATS_CANVAS_PREFAB_PATH} \n 2. {STATS_OBJECT_COMBINE_PREFAB_PATH}");
Destroy(this);
}
}
void ISpawned.Spawned() {
SetupStatisticsPanel();
}
/// <summary>
/// Sets the custom configuration for Fusion Statistics.
/// </summary>
/// <param name="customConfig">The list of custom configurations for Fusion Statistics.</param>
public void SetStatsCustomConfig(List<FusionStatisticsStatCustomConfig> customConfig) {
if (customConfig == default) {
Log.Warn("Trying to set a null Fusion Statistics custom stats config");
return;
}
_statsCustomConfig = customConfig;
ApplyCustomConfig();
}
/// <summary>
/// Sets the anchor position of the Fusion Statistics canvas.
/// </summary>
/// <param name="anchor">The anchor position of the canvas (TopLeft or TopRight).</param>
public void SetCanvasAnchor(CanvasAnchor anchor) {
_canvasAnchor = anchor;
if (_statsCanvas == false) return;
_statsCanvas.SetCanvasAnchor(anchor);
}
private void ApplyCustomConfig() {
if (!_header) return;
_header.ApplyStatsConfig(_statsCustomConfig);
}
/// <summary>
/// Called from a custom editor script.
/// Will update any editor information into the fusion statistics.
/// </summary>
public void OnEditorChange() {
RenderEnabledStats();
ApplyCustomConfig();
SetCanvasAnchor(_canvasAnchor);
}
private void RenderEnabledStats() {
if (IsPanelActive == false) return;
_header.SetStatsToRender(_statsEnabled);
}
internal void UpdateStatsEnabled(RenderSimStats stats) {
_statsEnabled = stats;
}
/// <summary>
/// Sets up the statistics panel for Fusion statistic tracking.
/// </summary>
public void SetupStatisticsPanel() {
if (IsPanelActive) return;
// Was not registered on the Runner yet
if (Runner == null) {
var runner = GetComponent<NetworkRunner>();
if (runner.IsRunning == false) {
Log.Warn($"Network Runner on ({runner.gameObject}) is not yet running.");
return;
}
runner.AddGlobal(this);
// Return because when spawned is called the setup method will be called again.
return;
}
_objectStatsGraphCombines = new Dictionary<FusionNetworkObjectStatistics, FusionNetworkObjectStatsGraphCombine>();
_statsPanelObject = Instantiate(_statsCanvasPrefab, transform);
_statsCanvas = _statsPanelObject.GetComponentInChildren<FusionStatsCanvas>();
_statsCanvas.SetupStatsCanvas(this, _canvasAnchor, DestroyStatisticsPanel);
_header = _statsPanelObject.GetComponentInChildren<FusionStatsPanelHeader>();
_header.SetupHeader(Runner.LocalPlayer.ToString(), this);
_config = _statsPanelObject.GetComponentInChildren<FusionStatsConfig>(true);
_statsPanelObject.AddComponent<FusionBasicBillboard>();
ApplyCustomConfig();
Runner.AddVisibilityNodes(_statsPanelObject);
if (_statsEnabled != 0)
RenderEnabledStats();
// Setup Event system
if (!EventSystem.current) {
Log.Debug("Fusion Statistics: No event system detected, creating one.");
new GameObject("EventSystem-FusionStatistics", typeof(EventSystem), typeof(StandaloneInputModule));
}
}
/// <summary>
/// Sets the world anchor for Fusion Statistics. Set null to return to screen space overlay.
/// </summary>
/// <param name="anchor">The FusionStatsWorldAnchor component that defines the anchor object. Null to return to screen space overlay.</param>
/// <param name="scale">The scale of the statistics panel.</param>
public void SetWorldAnchor(FusionStatsWorldAnchor anchor, float scale) {
_config.SetWorldCanvasScale(scale);
if (anchor == null) {
_config.ResetToCanvasAnchor();
} else {
_config.SetWorldAnchor(anchor.transform);
}
}
/// <summary>
/// Destroys the statistics panel.
/// </summary>
public void DestroyStatisticsPanel() {
var keys = _objectStatsGraphCombines?.Keys.ToArray();
if (keys != null) {
foreach (var fusionNetworkObjectStatistics in keys) {
MonitorNetworkObject(fusionNetworkObjectStatistics.NetworkObject, fusionNetworkObjectStatistics, false);
}
}
_objectStatsGraphCombines?.Clear();
_statsGraph.Clear();
Destroy(_statsPanelObject);
_statsPanelObject = null;
if (Runner) {
if (Runner.TryGetFusionStatistics(out var statisticsManager)) {
statisticsManager.ObjectStatisticsManager.ClearMonitoredNetworkObjects();
}
}
}
public bool MonitorNetworkObject(NetworkObject networkObject, FusionNetworkObjectStatistics objectStatisticsInstance, bool monitor) {
if (Runner.TryGetFusionStatistics(out var statisticsManager)) {
statisticsManager.ObjectStatisticsManager.MonitorNetworkObjectStatistics(networkObject.Id, monitor);
}
if (monitor) {
// If Id already monitored on the stats, return false to destroy the object statistics instance.
if (_objectStatsGraphCombines.ContainsKey(objectStatisticsInstance))
return false;
var graphCombine = Instantiate(_objectGraphCombinePrefab, _header.ContentRect);
graphCombine.SetupNetworkObject(networkObject, this, objectStatisticsInstance);
_objectStatsGraphCombines.Add(objectStatisticsInstance, graphCombine);
} else {
if (_objectStatsGraphCombines.Remove(objectStatisticsInstance, out var graphCombine)) {
Destroy(graphCombine.gameObject);
Destroy(objectStatisticsInstance);
}
}
return true;
}
void UpdateAllGraphs(FusionStatisticsManager statisticsManager) {
var now = DateTime.Now;
foreach (var statsGraphBase in _statsGraph) {
statsGraphBase.UpdateGraph(Runner, statisticsManager, ref now);
}
}
public void RegisterGraph(FusionStatsGraphBase graph) {
_statsGraph.Add(graph);
}
public void UnregisterGraph(FusionStatsGraphBase graph) {
_statsGraph.Remove(graph);
}
private void Update() {
// Safety exit
if (!Runner) return;
Profiler.BeginSample("Fusion Statistics Update Graph");
// Collect and update
if (Runner.TryGetFusionStatistics(out var statisticsManager)) {
UpdateAllGraphs(statisticsManager);
}
Profiler.EndSample();
}
}
}

View File

@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 9c6080750a33c9d428004642d0e07dd6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- _statsCanvasPrefab: {fileID: 6292187590335715622, guid: 367c5caf25960d8419724c6c96708538,
type: 3}
- _objectGraphCombinePrefab: {fileID: 7935946544523926548, guid: 7cc7f808e527f6e4f98257acbf47ad87,
type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,207 @@
namespace Fusion.Statistics {
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// The side to attach the statistics panel anchor.
/// </summary>
public enum CanvasAnchor {TopLeft, TopRight}
public class FusionStatsCanvas : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler {
[Header("General References")]
[SerializeField] private Canvas _canvas;
[SerializeField] private CanvasScaler _canvasScaler;
[SerializeField] private RectTransform _canvasPanel;
[Space] [Header("Panel References")]
[SerializeField] private RectTransform _contentPanel;
[SerializeField] private RectTransform _contentContainer;
[SerializeField] private RectTransform _bottomPanel;
[SerializeField] private FusionStatsPanelHeader _header;
[Space] [Header("Misc")]
[SerializeField] private Button _hideButton;
[SerializeField] private Button _closeButton;
[Space] [Header("World Anchor Panel Settings")]
[SerializeField] private FusionStatsConfig _config;
private bool _isColapsed => !_contentPanel.gameObject.activeSelf;
private CanvasAnchor _anchor;
private enum DragMode {None, DragCanvas, ResizeContent}
private DragMode _dragMode;
private static int _statsCanvasActiveCount = 0;
internal void SetupStatsCanvas(FusionStatistics fusionStatistics, CanvasAnchor canvasAnchor, UnityAction closeButtonAction) {
_anchor = canvasAnchor;
_canvasPanel.anchoredPosition = GetDefinedAnchorPosition();
var maxOffsetMultiplier = Mathf.Min(_statsCanvasActiveCount, 3);
_canvasPanel.anchoredPosition += Vector2.down * (FusionStatisticsHelper.DEFAULT_HEADER_HEIGHT * maxOffsetMultiplier);
//Setup buttons
_closeButton.onClick.RemoveAllListeners();
_closeButton.onClick.AddListener(closeButtonAction);
_hideButton.onClick.RemoveAllListeners();
_hideButton.onClick.AddListener(ToggleHide);
// Setup runner statistics ref
_config.SetupStatisticReference(fusionStatistics);
}
public void OnBeginDrag(PointerEventData eventData) {
if (_config.IsWorldAnchored) return;
if (_dragMode != DragMode.None) return; // Already dragging.
var dragBeginPos = eventData.pressPosition;
var rectT = _bottomPanel;
dragBeginPos = rectT.InverseTransformPoint(dragBeginPos);
var resize = rectT.rect.Contains(dragBeginPos) && eventData.button == PointerEventData.InputButton.Right;
_dragMode = resize ? DragMode.ResizeContent : DragMode.DragCanvas;
}
public void OnDrag(PointerEventData eventData) {
if (_config.IsWorldAnchored) return;
switch (_dragMode) {
case DragMode.DragCanvas:
_canvasPanel.anchoredPosition += eventData.delta / _canvas.scaleFactor;
break;
case DragMode.ResizeContent:
UpdateContentContainerHeight(eventData.delta.y / _canvas.scaleFactor);
break;
}
}
public void OnEndDrag(PointerEventData eventData) {
if (_config.IsWorldAnchored) return;
if (CheckDraggableRectVisibility(_canvasPanel) == false)
SnapPanelBackToOriginPos();
if (_dragMode == DragMode.ResizeContent) {
var currentSize = _contentPanel.sizeDelta.y;
var visibleGraphHeight = 0f;
var remaining = 0f;
for (int i = 0; i < _contentContainer.childCount; i++) {
var prevHeight = visibleGraphHeight;
visibleGraphHeight += ((RectTransform)_contentContainer.GetChild(i)).sizeDelta.y + 10;
if (visibleGraphHeight >= currentSize) {
if (currentSize - prevHeight < visibleGraphHeight - currentSize) {
remaining = currentSize - prevHeight;
} else {
remaining = -(visibleGraphHeight - currentSize);
}
break;
}
}
UpdateContentContainerHeight(remaining);
}
_dragMode = DragMode.None;
}
public void SnapPanelBackToOriginPos() {
_canvasPanel.anchoredPosition = GetDefinedAnchorPosition();
}
private void UpdateContentContainerHeight(float yDelta) {
var height = _contentPanel.sizeDelta.y;
var targetHeight = height - yDelta;
SetContentPanelHeight(targetHeight);
}
internal void ToggleHide() {
var active = _contentPanel.gameObject.activeSelf;
_hideButton.transform.rotation = active ? Quaternion.Euler(0, 0, 90) : Quaternion.identity;
_contentPanel.gameObject.SetActive(!active);
_bottomPanel.gameObject.SetActive(!active);
}
// Better offscreen check for later.
private bool CheckDraggableRectVisibility(RectTransform rectTransform) {
var anchoredPos = rectTransform.anchoredPosition;
var size = rectTransform.rect.size;
if (Mathf.Abs(anchoredPos.x) >= _canvasScaler.referenceResolution.x * .5f + size.x * .5f)
return false;
// anchor is on top.
if (anchoredPos.y >= _canvasScaler.referenceResolution.y * .5f + size.y || anchoredPos.y <= -_canvasScaler.referenceResolution.y * .5f)
return false;
return true;
}
private void SetContentPanelHeight(float value) {
if (value < FusionStatisticsHelper.DEFAULT_GRAPH_HEIGHT) {
value = FusionStatisticsHelper.DEFAULT_GRAPH_HEIGHT;
}else {
var maxHeight = Screen.height / _canvas.scaleFactor - 2 * FusionStatisticsHelper.DEFAULT_HEADER_HEIGHT;
if (value > maxHeight) {
value = maxHeight;
}
}
_contentPanel.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, value);
_contentPanel.gameObject.SetActive(false);
_contentPanel.gameObject.SetActive(true);
}
private void AdaptContentHeightToGraphs() {
var neededHeight = 0f;
for (int i = 0; i < _contentContainer.childCount; i++) {
neededHeight += ((RectTransform)_contentContainer.GetChild(i)).sizeDelta.y + 10; // +10 spacing
}
float maxHeight = Screen.height / _canvas.scaleFactor - 2 * FusionStatisticsHelper.DEFAULT_HEADER_HEIGHT;
if (neededHeight > maxHeight) {
neededHeight = maxHeight;
}
if (neededHeight < FusionStatisticsHelper.DEFAULT_GRAPH_HEIGHT) {
neededHeight = FusionStatisticsHelper.DEFAULT_GRAPH_HEIGHT;
}
SetContentPanelHeight(neededHeight);
}
private void OnEnable() {
_statsCanvasActiveCount++;
_header.OnRenderStatsUpdate += AdaptContentHeightToGraphs;
}
private void OnDisable() {
_statsCanvasActiveCount--;
_header.OnRenderStatsUpdate -= AdaptContentHeightToGraphs;
}
public void SetCanvasAnchor(CanvasAnchor anchor) {
_anchor = anchor;
SnapPanelBackToOriginPos();
}
private Vector2 GetDefinedAnchorPosition() {
var refRes = _canvasScaler.referenceResolution;
switch (_anchor) {
case CanvasAnchor.TopRight:
return refRes * .5f - Vector2.right * (_canvasPanel.sizeDelta.x * .5f);
case CanvasAnchor.TopLeft:
refRes.x *= -1;
return refRes * .5f + Vector2.right * (_canvasPanel.sizeDelta.x * .5f);
default:
return Vector2.zero;
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 25ab394f9fec45f692c631c30839e2ee
timeCreated: 1712603842

View File

@@ -0,0 +1,107 @@
namespace Fusion.Statistics {
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
public class FusionStatsConfig : MonoBehaviour {
public bool IsWorldAnchored => _worldTransformAnchor != null;
[SerializeField] private Button _worldAnchorButtonPrefab;
[SerializeField] private Transform _worldAnchorListContainer;
[SerializeField] private GameObject _configPanel;
[SerializeField] private Canvas _canvas;
[SerializeField] private RectTransform _renderPanelRectTransform;
private Transform _worldTransformAnchor;
private float _worldCanvasScale = 0.005f;
private FusionStatistics _fusionStatistics;
private static List<Transform> _worldAnchorCandidates = new List<Transform>();
private static event Action _onWorldAnchorCandidatesUpdate;
internal static void SetWorldAnchorCandidate(Transform candidate, bool register) {
if (register) {
if (_worldAnchorCandidates.Contains(candidate) == false)
_worldAnchorCandidates.Add(candidate);
} else {
_worldAnchorCandidates.Remove(candidate);
}
_onWorldAnchorCandidatesUpdate?.Invoke();
}
internal void SetupStatisticReference(FusionStatistics fusionStatistics) {
_fusionStatistics = fusionStatistics;
}
public void ToggleConfigPanel() {
_configPanel.SetActive(!_configPanel.activeSelf);
}
public void ToggleUseWorldAnchor(bool value) {
// If true, the buttons will trigger the re-parenting logic.
if (value == false) {
ResetToCanvasAnchor();
}
}
internal void SetWorldAnchor(Transform worldTransformAnchor) {
_canvas.renderMode = RenderMode.WorldSpace;
_renderPanelRectTransform.localScale = Vector3.one * _worldCanvasScale;
_renderPanelRectTransform.localPosition = Vector3.zero;
if (worldTransformAnchor == _worldTransformAnchor) return;
_renderPanelRectTransform.SetParent(worldTransformAnchor);
_worldTransformAnchor = worldTransformAnchor;
_renderPanelRectTransform.localPosition = Vector3.zero;
}
public void SetWorldCanvasScale(float value) {
_worldCanvasScale = value;
}
internal void ResetToCanvasAnchor() {
// Was called from editor destroy
if (!_fusionStatistics)
return;
var childPanel = (RectTransform)_renderPanelRectTransform.GetChild(0);
_renderPanelRectTransform.SetParent(_fusionStatistics.transform);
_canvas.renderMode = RenderMode.ScreenSpaceOverlay;
_renderPanelRectTransform.localScale = Vector3.one;
_renderPanelRectTransform.localPosition = Vector3.zero;
childPanel.localPosition = Vector3.zero;
childPanel.anchoredPosition = Vector3.zero;
_worldTransformAnchor = default;
}
private void UpdateWorldAnchorButtons() {
// Clear all old buttons, ok because it should not be frequent
for (int i = _worldAnchorListContainer.childCount-1; i >= 0 ; i--) {
Destroy(_worldAnchorListContainer.GetChild(i).gameObject);
}
foreach (var candidate in _worldAnchorCandidates) {
var button = Instantiate(_worldAnchorButtonPrefab, _worldAnchorListContainer);
button.onClick.AddListener(() => SetWorldAnchor(candidate));
button.GetComponentInChildren<Text>().text = candidate.name;
}
}
private void OnEnable() {
_onWorldAnchorCandidatesUpdate -= UpdateWorldAnchorButtons;
_onWorldAnchorCandidatesUpdate += UpdateWorldAnchorButtons;
UpdateWorldAnchorButtons();
}
private void OnDestroy() {
_onWorldAnchorCandidatesUpdate -= UpdateWorldAnchorButtons;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 586894e5cee94d0e857cf1dbc7716646
timeCreated: 1712679394

View File

@@ -0,0 +1,59 @@
namespace Fusion.Statistics {
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FusionStatsGraphDefault : FusionStatsGraphBase {
internal RenderSimStats Stat => _selectedStats;
private RenderSimStats _selectedStats;
[SerializeField] private Text _descriptionText;
protected override void Initialize(int accumulateTimeMs) {
base.Initialize(accumulateTimeMs);
_descriptionText.text = _selectedStats.ToString();
if (_statsAdditionalInfo.TryGetValue(Stat, out var info)) {
_descriptionText.text += $" {info}";
}
}
public override void UpdateGraph(NetworkRunner runner, FusionStatisticsManager statisticsManager,
ref DateTime now) {
var value = FusionStatisticsHelper.GetStatDataFromSnapshot(_selectedStats, statisticsManager.CompleteSnapshot);
AddValueToBuffer(value, ref now);
}
public virtual void ApplyCustomStatsConfig(FusionStatistics.FusionStatisticsStatCustomConfig config) {
SetThresholds(config.Threshold1, config.Threshold2, config.Threshold3);
SetIgnoreZeroValues(config.IgnoreZeroOnAverageCalculation, config.IgnoreZeroOnBuffer);
SetAccumulateTime(config.AccumulateTimeMs);
}
internal void SetupDefaultGraph(RenderSimStats stat) {
_selectedStats = stat;
FusionStatisticsHelper.GetStatGraphDefaultSettings(_selectedStats, out var valueTextFormat,
out var valueTextMultiplier, out var ignoreZeroOnAverage, out var ignoreZeroOnBuffer, out var bufferTimeSpan);
SetValueTextFormat(valueTextFormat);
SetValueTextMultiplier(valueTextMultiplier);
SetIgnoreZeroValues(ignoreZeroOnAverage, ignoreZeroOnBuffer);
Initialize(bufferTimeSpan);
}
private Dictionary<RenderSimStats, string> _statsAdditionalInfo = new Dictionary<RenderSimStats, string>() {
{ RenderSimStats.InPackets, "(Per second)" },
{ RenderSimStats.OutPackets, "(Per second)" },
{ RenderSimStats.InObjectUpdates, "(Per second)" },
{ RenderSimStats.OutObjectUpdates, "(Per second)" },
{ RenderSimStats.InBandwidth, "(Per second)" },
{ RenderSimStats.OutBandwidth, "(Per second)" },
{ RenderSimStats.InputInBandwidth, "(Per second)" },
{ RenderSimStats.InputOutBandwidth, "(Per second)" },
{ RenderSimStats.WordsWrittenSize, "(Per second)" },
{ RenderSimStats.WordsWrittenCount, "(Per second)" },
{ RenderSimStats.WordsReadCount, "(Per second)" },
{ RenderSimStats.WordsReadSize, "(Per second)" },
};
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a1c807bdcb1b9874697735bf2b27b24c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,89 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FusionStatsGraphMaterial
m_Shader: {fileID: 4800000, guid: f723a494700aee146aa96072604b48c0, type: 3}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _FadeColorIntensity: 0.25
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _LinesThickness: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _PointsThickness: 2
- _SideFalloff: 1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _AverageColor: {r: 1, g: 1, b: 1, a: 0}
- _BaseColor: {r: 0, g: 1, b: 0, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Threshold1Color: {r: 1, g: 1, b: 0, a: 1}
- _Threshold2Color: {r: 1, g: 0.5019608, b: 0, a: 1}
- _Threshold3Color: {r: 1, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 20f9b98d6ad29584c912ad547627b2cf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,176 @@
Shader "Fusion/Fusion Stats Graph"
{
Properties
{
_BaseColor ("Base Color", Color) = (0.0, 1.0, 0.0, 1.0)
_AverageColor ("Average Color", Color) = (1.0, 1.0, 1.0, 0.0)
_Threshold1Color ("Threshold 1 Color", Color) = (1.0, 1.0, 0.0, 1.0)
_Threshold2Color ("Threshold 2 Color", Color) = (1.0, 0.5, 0.0, 1.0)
_Threshold3Color ("Threshold 3 Color", Color) = (1.0, 0.0, 0.0, 1.0)
_FadeColorIntensity ("Fade Color Intensity", Float) = 1.0
_PointsThickness ("Points Thickness", Float) = 1.0
_LinesThickness ("Lines Thickness", Float) = 1.0
_SideFalloff ("Side Falloff", Float) = 1.0
}
SubShader
{
Tags
{
"Queue" = "Transparent"
"RenderType" = "Transparent"
"PreviewType" = "Plane"
"IgnoreProjector" = "True"
"CanUseSpriteAtlas" = "True"
}
Cull Off
Lighting Off
ZWrite Off
ZTest Off
Blend One OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_OUTPUT_STEREO
};
fixed4 _BaseColor;
fixed4 _AverageColor;
fixed4 _Threshold1Color;
fixed4 _Threshold2Color;
fixed4 _Threshold3Color;
fixed _Threshold1;
fixed _Threshold2;
fixed _Threshold3;
fixed _FadeColorIntensity;
fixed _PointsThickness;
fixed _LinesThickness;
fixed _SideFalloff;
uniform float _Values[512];
uniform float _Samples;
uniform float _Average;
v2f vert(appdata input)
{
v2f output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_INITIALIZE_OUTPUT(v2f, output);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
output.vertex = UnityObjectToClipPos(input.vertex);
output.texcoord = input.texcoord;
output.color = input.color;
return output;
}
fixed4 frag(v2f input) : SV_Target
{
fixed4 color = input.color;
fixed x = input.texcoord.x;
fixed y = input.texcoord.y;
float value = _Values[floor(x * _Samples)];
color = _BaseColor;
if (_Threshold1 > 0.0 && value >= _Threshold1)
{
color = _Threshold1Color;
}
if (_Threshold2 > 0.0 && value >= _Threshold2)
{
color = _Threshold2Color;
}
if (_Threshold3 > 0.0 && value >= _Threshold3)
{
color = _Threshold3Color;
}
if (y > value)
{
color.a = 0.0;
}
else if (y < value - 0.01 * _PointsThickness)
{
color.a = y * _FadeColorIntensity;
}
else
{
color.a = 1.0;
}
if (_LinesThickness > 0.0)
{
if (_AverageColor.a > 0.0 && y < _Average && y > _Average - 0.01 * _LinesThickness)
{
color = _AverageColor;
}
if (_Threshold1Color.a > 0.0 && y < _Threshold1 && y > _Threshold1 - 0.01 * _LinesThickness)
{
color = _Threshold1Color;
}
if (_Threshold2Color.a > 0.0 && y < _Threshold2 && y > _Threshold2 - 0.01 * _LinesThickness)
{
color = _Threshold2Color;
}
if (_Threshold3Color.a > 0.0 && y < _Threshold3 && y > _Threshold3 - 0.01 * _LinesThickness)
{
color = _Threshold3Color;
}
}
if (_SideFalloff > 0.0)
{
float sideFalloff = 0.01 * _SideFalloff;
if (x < sideFalloff)
{
color.a *= 1.0 - (sideFalloff - x) / sideFalloff;
}
else if (x > 1.0 - sideFalloff)
{
color.a *= (1.0 - x) / sideFalloff;
}
}
color.rgb *= color.a;
return color;
}
ENDCG
}
}
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f723a494700aee146aa96072604b48c0
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,283 @@
namespace Fusion.Statistics {
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections.Generic;
/// <summary>
/// List of all simulation stats able to render on a graph.
/// </summary>
[Flags]
public enum RenderSimStats {
/// <summary>
/// Incoming packets.
/// </summary>
InPackets = 1 << 0,
/// <summary>
/// Outgoing packets.
/// </summary>
OutPackets = 1 << 1,
/// <summary>
/// Round Trip Time.
/// </summary>
RTT = 1 << 2,
/// <summary>
/// In Bandwidth in Bytes.
/// </summary>
InBandwidth = 1 << 3,
/// <summary>
/// Out Bandwidth in Bytes.
/// </summary>
OutBandwidth = 1 << 4,
/// <summary>
/// Amount of re-simulation ticks executed.
/// </summary>
Resimulations = 1 << 5,
/// <summary>
/// Amount of forward ticks executed.
/// </summary>
ForwardTicks = 1 << 6,
/// <summary>
/// Average measured time between two input/state packets (from same client) received by the server.
/// </summary>
InputReceiveDelta = 1 << 7,
/// <summary>
/// Time sync abruptly reset count.
/// </summary>
TimeResets = 1 << 8,
/// <summary>
/// Average measured time between two state packets (from server) received by the client.
/// </summary>
StateReceiveDelta = 1 << 9,
/// <summary>
/// Average buffering for prediction.
/// </summary>
SimulationTimeOffset = 1 << 10,
/// <summary>
/// How much the simulation is currently sped up / slowed down.
/// </summary>
SimulationSpeed = 1 << 11,
/// <summary>
/// Average buffering for interpolation.
/// </summary>
InterpolationOffset = 1 << 12,
/// <summary>
/// How much interpolation is currently sped up / slowed down.
/// </summary>
InterpolationSpeed = 1 << 13,
/// <summary>
/// Input in bandwidth.
/// </summary>
InputInBandwidth = 1 << 14,
/// <summary>
/// Input out bandwidth.
/// </summary>
InputOutBandwidth = 1 << 15,
/// <summary>
/// Average size for received packet.
/// </summary>
AverageInPacketSize = 1 << 16,
/// <summary>
/// Average size for sent packet.
/// </summary>
AverageOutPacketSize = 1 << 17,
/// <summary>
/// Amount of object updates received.
/// </summary>
InObjectUpdates = 1 << 18,
/// <summary>
/// Amount of object updates sent.
/// </summary>
OutObjectUpdates = 1 << 19,
/// <summary>
/// Memory in use for the object allocator.
/// </summary>
ObjectsAllocatedMemoryInUse = 1 << 20,
/// <summary>
/// Memory in use for the general allocator.
/// </summary>
GeneralAllocatedMemoryInUse = 1 << 21,
/// <summary>
/// Memory free for the object allocator.
/// </summary>
ObjectsAllocatedMemoryFree = 1 << 22,
/// <summary>
/// Memory free for the general allocator.
/// </summary>
GeneralAllocatedMemoryFree = 1 << 23,
/// <summary>
/// Amount of written words. How many networked changes are being sent.
/// </summary>
WordsWrittenCount = 1 << 24,
/// <summary>
/// Size of all last written words in Bytes.
/// </summary>
WordsWrittenSize = 1 << 25,
/// <summary>
/// Amount of read words. How many networked changes are being received.
/// </summary>
WordsReadCount = 1 << 26,
/// <summary>
/// Size of all last read words in Bytes.
/// </summary>
WordsReadSize = 1 << 27,
}
public class FusionStatsPanelHeader : MonoBehaviour {
public event Action OnRenderStatsUpdate;
[SerializeField] private Text _statsHeaderTitle;
[SerializeField] private Dropdown _statsDropdown;
[SerializeField] private FusionStatsGraphDefault _defaultGraphPrefab;
public RectTransform ContentRect;
private Dictionary<RenderSimStats,FusionStatsGraphDefault> _defaultStatsGraph;
private FusionStatistics _fusionStatistics;
private RenderSimStats _statsToRender;
public void SetupHeader(string title, FusionStatistics fusionStatistics) {
_statsHeaderTitle.text = title;
_fusionStatistics = fusionStatistics;
SetupDropdown();
}
private void SetupDropdown() {
_defaultStatsGraph = new Dictionary<RenderSimStats, FusionStatsGraphDefault>();
List<Dropdown.OptionData> options = new List<Dropdown.OptionData>();
options.Add(new Dropdown.OptionData("Toggle Stats"));
foreach (var option in Enum.GetNames(typeof(RenderSimStats))) {
options.Add(new Dropdown.OptionData(option));
}
_statsDropdown.options = options;
_statsDropdown.onValueChanged.AddListener(OnDropDownChanged);
}
internal void SetStatsToRender(RenderSimStats stats) {
// Early exit
if (stats == _statsToRender) return;
// For each possible stat
foreach (RenderSimStats renderSimStat in Enum.GetValues(typeof(RenderSimStats))) {
// If it is set on the stats received
if ((stats & renderSimStat) == renderSimStat) {
// And if it is not already set on the stats to render... add it
if ((_statsToRender & renderSimStat) != renderSimStat) {
AddStat(renderSimStat);
}
}
// else if is NOT set on the stats received
else {
// And if it is set on the stats to render... remove
if ((_statsToRender & renderSimStat) == renderSimStat) {
RemoveStat(renderSimStat);
}
}
}
// Make sure they are equal now.
_statsToRender = stats;
}
private void AddStat(RenderSimStats stat) {
_statsToRender |= stat; // Set the flag
InstantiateStatGraph(stat);
InvokeRenderStatsUpdate();
}
private void RemoveStat(RenderSimStats stat) {
_statsToRender &= ~stat; // Removed the flag
DestroyStatGraph(stat);
InvokeRenderStatsUpdate();
}
private void InvokeRenderStatsUpdate() {
OnRenderStatsUpdate?.Invoke();
}
private void OnDropDownChanged(int arg0) {
if (arg0 <= 0) return; // No stat selected.
arg0--; // Remove the first label
RenderSimStats stat = (RenderSimStats)(1 << arg0);
if ((_statsToRender & stat) == stat) {
RemoveStat(stat);
} else {
AddStat(stat);
}
// Set the first label again.
_statsDropdown.SetValueWithoutNotify(0);
_fusionStatistics.UpdateStatsEnabled(_statsToRender);
}
private void InstantiateStatGraph(RenderSimStats stat) {
FusionStatsGraphDefault graph = Instantiate(_defaultGraphPrefab, ContentRect);
graph.SetupDefaultGraph(stat);
TryApplyCustomStatConfig(graph);
_defaultStatsGraph.Add(stat, graph);
}
private void DestroyStatGraph(RenderSimStats stat) {
if (_defaultStatsGraph.Remove(stat, out var statsGraphDefault)) {
Destroy(statsGraphDefault.gameObject);
}
}
private void TryApplyCustomStatConfig(FusionStatsGraphDefault graph) {
// Need to do this way because unity cannot serialize a dictionary.
foreach (var config in _fusionStatistics.StatsCustomConfig) {
if (config.Stat == graph.Stat) {
ApplyCustomStatsConfig(graph, config);
}
}
}
private void ApplyCustomStatsConfig(FusionStatsGraphDefault graph, FusionStatistics.FusionStatisticsStatCustomConfig config) {
graph.ApplyCustomStatsConfig(config);
}
internal void ApplyStatsConfig(List<FusionStatistics.FusionStatisticsStatCustomConfig> statsConfig) {
foreach (var config in statsConfig) {
if (_defaultStatsGraph.TryGetValue(config.Stat, out var graph)) {
ApplyCustomStatsConfig(graph, config);
}
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0672ffa0bdc147e7b368e081ab5e7285
timeCreated: 1710192229

View File

@@ -0,0 +1,25 @@
namespace Fusion.Statistics {
using System;
using UnityEngine;
[DisallowMultipleComponent]
[AddComponentMenu("Fusion/Statistics/Statistics World Anchor")]
public class FusionStatsWorldAnchor : MonoBehaviour {
private void OnEnable() {
FusionStatsConfig.SetWorldAnchorCandidate(transform, true);
}
private void OnDisable() {
FusionStatsConfig.SetWorldAnchorCandidate(transform, false);
}
private void OnDestroy() {
// Saving stats if is child
var stats = transform.GetComponentInChildren<FusionStatsCanvas>();
if (stats) {
stats.transform.SetParent(null);
stats.GetComponentInChildren<FusionStatsConfig>(true).ResetToCanvasAnchor();
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b922ea457e8e4de6bfea00a8cc1eca80
timeCreated: 1712606226

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7bbab8d6d9806b548839f21543e696d4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,202 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3987400527868405841
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4827688222978096223}
- component: {fileID: 3929318550392185910}
- component: {fileID: 7855319467316828452}
- component: {fileID: 4920168020725175909}
m_Layer: 5
m_Name: FusionStatsSimpleButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4827688222978096223
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3987400527868405841}
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: 860521090280365962}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3929318550392185910
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3987400527868405841}
m_CullTransparentMesh: 1
--- !u!114 &7855319467316828452
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3987400527868405841}
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: 0.29411766, g: 0.29411766, b: 0.29411766, 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: 0}
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!114 &4920168020725175909
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3987400527868405841}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7855319467316828452}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &4034818165790845292
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 860521090280365962}
- component: {fileID: 8155235640972728683}
- component: {fileID: 889677207960826122}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &860521090280365962
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4034818165790845292}
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: 4827688222978096223}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000061035156, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8155235640972728683
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4034818165790845292}
m_CullTransparentMesh: 1
--- !u!114 &889677207960826122
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4034818165790845292}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Button

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8e3a30446d6463e48adea83d18ce9654
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,384 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1719597503058426708
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1719597503058426707}
- component: {fileID: 1719597503058426706}
m_Layer: 5
m_Name: NOStatGraph
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1719597503058426707
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1719597503058426708}
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: 6113166891111545665}
- {fileID: 6239836229493852532}
m_Father: {fileID: 0}
m_RootOrder: 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: 400, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1719597503058426706
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1719597503058426708}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6c65e6f8cc0e421195e5884e060e7ead, type: 3}
m_Name:
m_EditorClassIdentifier:
_render: {fileID: 6113166891111545665}
_header: {fileID: 6239836229493852532}
_targetImage: {fileID: 4962068735173936647}
_toggleButton: {fileID: 0}
_ignoreZeroedValuesOnAverageCalculation: 0
_ignoreZeroedValuesOnBuffer: 0
_valuesTextUpdateDelay: 0.1
_valueTextMultiplier: 1
_averageValueText: {fileID: 5977692791235129321}
_peakValueText: {fileID: 5180300036338728672}
_currentValueText: {fileID: 8872655689014498417}
_threshold1: 0
_threshold2: 0
_threshold3: 0
_threshold1Text: {fileID: 574183341331817218}
_threshold2Text: {fileID: 4974124732164616916}
_threshold3Text: {fileID: 7292999253169489219}
_maxSamples: 128
_valueTextFormat: '{0:0}'
_description: {fileID: 391098838509034737}
--- !u!1 &6453443907668438141
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1788213164568613159}
- component: {fileID: 4074940008736195761}
- component: {fileID: 391098838509034737}
m_Layer: 5
m_Name: Description
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1788213164568613159
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6453443907668438141}
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: 6239836229493852532}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.8, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4074940008736195761
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6453443907668438141}
m_CullTransparentMesh: 1
--- !u!114 &391098838509034737
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6453443907668438141}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Description
--- !u!1 &8718060512283005892
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6239836229493852532}
- component: {fileID: 384158204715830663}
- component: {fileID: 423454910494282654}
m_Layer: 5
m_Name: Header
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6239836229493852532
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8718060512283005892}
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: 1788213164568613159}
m_Father: {fileID: 1719597503058426707}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.85}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &384158204715830663
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8718060512283005892}
m_CullTransparentMesh: 1
--- !u!114 &423454910494282654
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8718060512283005892}
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: 0.3529412, g: 0.5882353, 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: 0}
m_Type: 0
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!1001 &1719597502569185417
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1719597503058426707}
m_Modifications:
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchorMax.y
value: 0.85
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9126926557282158578, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_Name
value: StatisticsRenderGraph
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a09170bc25723ba48b6d4d36f6201acd, type: 3}
--- !u!114 &574183341331817218 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1164976986725983115, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &4962068735173936647 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5981329958659966606, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &4974124732164616916 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5970252233686725213, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &5180300036338728672 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5780690898318835305, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &5977692791235129321 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4983298122956582752, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &6113166891111545665 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7292999253169489219 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8280093310795793866, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &8872655689014498417 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7854063927993816312, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 1719597502569185417}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 302a42a4eb4d5e540b803b1f86597505
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,625 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2059135424099053782
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2059135424099053777}
- component: {fileID: 2059135424099053778}
- component: {fileID: 2059135424099053776}
m_Layer: 5
m_Name: ToggleButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2059135424099053777
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2059135424099053782}
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: 6870472896872226928}
m_Father: {fileID: 6662754291284625420}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2059135424099053778
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2059135424099053782}
m_CullTransparentMesh: 1
--- !u!114 &2059135424099053776
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2059135424099053782}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2059135424270465704}
m_TargetAssemblyTypeName: Fusion.Stats.FusionStatsGraphBase, Fusion.Unity
m_MethodName: ToggleRenderDisplay
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &2059135424237535789
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2059135424237535788}
- component: {fileID: 2059135424270465704}
m_Layer: 5
m_Name: SingleStatistics
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2059135424237535788
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2059135424237535789}
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: 1070322759179670889}
- {fileID: 6662754291284625420}
m_Father: {fileID: 0}
m_RootOrder: 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: 400, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2059135424270465704
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2059135424237535789}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a1c807bdcb1b9874697735bf2b27b24c, type: 3}
m_Name:
m_EditorClassIdentifier:
_render: {fileID: 1070322759179670889}
_header: {fileID: 6662754291284625420}
_targetImage: {fileID: 2220300178287962159}
_toggleButton: {fileID: 2059135424099053776}
_ignoreZeroedValuesOnAverageCalculation: 0
_ignoreZeroedValuesOnBuffer: 0
_valuesTextUpdateDelay: 0.1
_valueTextMultiplier: 1
_averageValueText: {fileID: 646794221100057025}
_peakValueText: {fileID: 2155191676243792072}
_currentValueText: {fileID: 2391087390145165913}
_threshold1: 0
_threshold2: 0
_threshold3: 0
_threshold1Text: {fileID: 6772060006189485354}
_threshold2Text: {fileID: 2237018056329157884}
_threshold3Text: {fileID: 4555716653057387371}
_maxSamples: 128
_valueTextFormat: '{0:0}'
_selectedStats: 0
_descriptionText: {fileID: 3003985804431238575}
--- !u!1 &2885396740209662036
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6662754291284625420}
- component: {fileID: 6532386780719339218}
- component: {fileID: 3096909071055530399}
m_Layer: 5
m_Name: Header
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6662754291284625420
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2885396740209662036}
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: 8019411793580211070}
- {fileID: 2059135424099053777}
m_Father: {fileID: 2059135424237535788}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -12.5}
m_SizeDelta: {x: 0, y: 25}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6532386780719339218
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2885396740209662036}
m_CullTransparentMesh: 1
--- !u!114 &3096909071055530399
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2885396740209662036}
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: 0.39215687, g: 0.39215687, b: 0.39215687, 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: 0}
m_Type: 0
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 &4311662245131508133
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6870472896872226928}
- component: {fileID: 4798023581314036480}
- component: {fileID: 3314414533859350682}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6870472896872226928
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4311662245131508133}
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: 2059135424099053777}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4798023581314036480
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4311662245131508133}
m_CullTransparentMesh: 1
--- !u!114 &3314414533859350682
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4311662245131508133}
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: 330babd635d5dfc4691ae3151ffc4491, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5877711169838791531
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8019411793580211070}
- component: {fileID: 4664219767356560693}
- component: {fileID: 3003985804431238575}
m_Layer: 5
m_Name: Description
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8019411793580211070
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5877711169838791531}
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: 6662754291284625420}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.1, y: 0}
m_AnchorMax: {x: 0.9, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: -4}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4664219767356560693
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5877711169838791531}
m_CullTransparentMesh: 1
--- !u!114 &3003985804431238575
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5877711169838791531}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Description
--- !u!1001 &5607514626138009249
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 2059135424237535788}
m_Modifications:
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_SizeDelta.y
value: 125
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 62.5
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9126926557282158578, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_Name
value: StatisticsRenderGraph
objectReference: {fileID: 0}
- target: {fileID: 9126926557282158578, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a09170bc25723ba48b6d4d36f6201acd, type: 3}
--- !u!114 &646794221100057025 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4983298122956582752, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &1070322759179670889 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4831069612263668680, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
--- !u!114 &2155191676243792072 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5780690898318835305, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2220300178287962159 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5981329958659966606, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2237018056329157884 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5970252233686725213, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2391087390145165913 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 7854063927993816312, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &4555716653057387371 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8280093310795793866, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &6772060006189485354 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 1164976986725983115, guid: a09170bc25723ba48b6d4d36f6201acd,
type: 3}
m_PrefabInstance: {fileID: 5607514626138009249}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 483568e790e53a243a4f436e924e90b9
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,958 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &724195450048490934
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2252466015236110801}
- component: {fileID: 8237614070168901424}
- component: {fileID: 1164976986725983115}
m_Layer: 5
m_Name: Threshold 1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2252466015236110801
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 724195450048490934}
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: 3852939355018933397}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8237614070168901424
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 724195450048490934}
m_CullTransparentMesh: 1
--- !u!114 &1164976986725983115
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 724195450048490934}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 8
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 5
m_MaxSize: 15
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 1
--- !u!1 &1346113333905028555
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1996528426999223811}
- component: {fileID: 7493037385389740767}
- component: {fileID: 5981329958659966606}
m_Layer: 5
m_Name: GraphRender
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1996528426999223811
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1346113333905028555}
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: 4831069612263668680}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7493037385389740767
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1346113333905028555}
m_CullTransparentMesh: 1
--- !u!114 &5981329958659966606
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1346113333905028555}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 20f9b98d6ad29584c912ad547627b2cf, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 2f112e6067c75b34f8c6233878db13b4, type: 3}
m_Type: 0
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 &1713622682841279402
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8245948005965945133}
- component: {fileID: 2944837472607786133}
- component: {fileID: 88432356876806002}
m_Layer: 5
m_Name: Current
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8245948005965945133
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713622682841279402}
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: 4831069612263668680}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.7, y: 0}
m_AnchorMax: {x: 0.85, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2944837472607786133
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713622682841279402}
m_CullTransparentMesh: 1
--- !u!114 &88432356876806002
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713622682841279402}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 'Current:'
--- !u!1 &1866382379870605257
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 630422623976466404}
- component: {fileID: 4635913912757587435}
- component: {fileID: 8280093310795793866}
m_Layer: 5
m_Name: Threshold 3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &630422623976466404
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1866382379870605257}
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: 3852939355018933397}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4635913912757587435
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1866382379870605257}
m_CullTransparentMesh: 1
--- !u!114 &8280093310795793866
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1866382379870605257}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 8
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 5
m_MaxSize: 15
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 3
--- !u!1 &2926125212941636726
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7767554146471260023}
- component: {fileID: 9159602532881435272}
- component: {fileID: 7854063927993816312}
m_Layer: 5
m_Name: CurrentValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7767554146471260023
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2926125212941636726}
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: 4831069612263668680}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.85, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9159602532881435272
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2926125212941636726}
m_CullTransparentMesh: 1
--- !u!114 &7854063927993816312
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2926125212941636726}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.0
--- !u!1 &3091450967103008972
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8724134812417612050}
- component: {fileID: 2037306754755500012}
- component: {fileID: 5780690898318835305}
m_Layer: 5
m_Name: PeakValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8724134812417612050
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3091450967103008972}
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: 4831069612263668680}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.15, y: 0}
m_AnchorMax: {x: 0.3, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2037306754755500012
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3091450967103008972}
m_CullTransparentMesh: 1
--- !u!114 &5780690898318835305
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3091450967103008972}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.0
--- !u!1 &3122924414019610630
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3141646064265744334}
- component: {fileID: 7432501649756783534}
- component: {fileID: 5759711218940510673}
m_Layer: 5
m_Name: Peak
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3141646064265744334
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3122924414019610630}
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: 4831069612263668680}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.15, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7432501649756783534
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3122924414019610630}
m_CullTransparentMesh: 1
--- !u!114 &5759711218940510673
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3122924414019610630}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 'Peak:'
--- !u!1 &4466228370271718180
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3852939355018933397}
m_Layer: 5
m_Name: Thresholds Texts
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3852939355018933397
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4466228370271718180}
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: 2252466015236110801}
- {fileID: 7848575700833239251}
- {fileID: 630422623976466404}
m_Father: {fileID: 4831069612263668680}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4748543092155706786
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1197363314016853701}
- component: {fileID: 6559507284176787114}
- component: {fileID: 4983298122956582752}
m_Layer: 5
m_Name: AverageValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1197363314016853701
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4748543092155706786}
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: 4831069612263668680}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.55, y: 0}
m_AnchorMax: {x: 0.7, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6559507284176787114
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4748543092155706786}
m_CullTransparentMesh: 1
--- !u!114 &4983298122956582752
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4748543092155706786}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 0.0
--- !u!1 &6021428339324464465
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 517706616007655284}
- component: {fileID: 5597891647223780865}
- component: {fileID: 1335454418943084614}
m_Layer: 5
m_Name: Average
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &517706616007655284
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6021428339324464465}
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: 4831069612263668680}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.3, y: 0}
m_AnchorMax: {x: 0.55, y: 0}
m_AnchoredPosition: {x: 0, y: 25}
m_SizeDelta: {x: 0, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5597891647223780865
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6021428339324464465}
m_CullTransparentMesh: 1
--- !u!114 &1335454418943084614
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6021428339324464465}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 10
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 'Average:'
--- !u!1 &6109184620530364220
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4722110937780803752}
- component: {fileID: 2696435566306223433}
- component: {fileID: 5094385119256644395}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4722110937780803752
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6109184620530364220}
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: 4831069612263668680}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2696435566306223433
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6109184620530364220}
m_CullTransparentMesh: 1
--- !u!114 &5094385119256644395
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6109184620530364220}
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: 0, g: 0, b: 0, a: 0.627451}
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: 0}
m_Type: 0
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 &6188757312191444877
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7848575700833239251}
- component: {fileID: 5649024345479520547}
- component: {fileID: 5970252233686725213}
m_Layer: 5
m_Name: Threshold 2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7848575700833239251
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6188757312191444877}
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: 3852939355018933397}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5649024345479520547
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6188757312191444877}
m_CullTransparentMesh: 1
--- !u!114 &5970252233686725213
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6188757312191444877}
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: 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_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 8
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 5
m_MaxSize: 15
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 2
--- !u!1 &9126926557282158578
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4831069612263668680}
m_Layer: 5
m_Name: StatisticsRenderGraph
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4831069612263668680
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9126926557282158578}
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: 4722110937780803752}
- {fileID: 1996528426999223811}
- {fileID: 8245948005965945133}
- {fileID: 7767554146471260023}
- {fileID: 517706616007655284}
- {fileID: 1197363314016853701}
- {fileID: 3141646064265744334}
- {fileID: 8724134812417612050}
- {fileID: 3852939355018933397}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a09170bc25723ba48b6d4d36f6201acd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7fb8caeac2583754bba8211a64c5937d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 48d535affc4755b4ca6cc5030fcefe8e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 367c5caf25960d8419724c6c96708538
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7cc7f808e527f6e4f98257acbf47ad87
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9547e9072f77f75438aff775104614e7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,135 @@
fileFormatVersion: 2
guid: 5853bc00e6bfda84ea9030e0486a1c44
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 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: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
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
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,108 @@
fileFormatVersion: 2
guid: 604f27d227e3caa44a1d6626d599fbdb
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 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: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
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
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 128
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 128
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

View File

@@ -0,0 +1,108 @@
fileFormatVersion: 2
guid: d3f33adb909e26443914391fba875e4c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 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: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
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
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,108 @@
fileFormatVersion: 2
guid: 330babd635d5dfc4691ae3151ffc4491
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 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: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
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
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 128
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 128
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant: