Files
Magical-Jumping-Bean/Library/metadata/52/526f285e8d4fb8140b4cdfeb9102d8cb
T

217 lines
13 KiB
Plaintext
Raw Normal View History

2019-09-29 19:40:54 -04:00
í542019.2.3f1þÿÿÿÿÿ’3$øÌuñ옲e+ Í=^7€ÿÿÿÿ€¦€²€Ѐ¦€¦€¦€#¦€+H€3ÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€ Q€j€
H€<ÿÿÿÿ €1€1€ÿÿÿÿ @Þ€€
Q€j€Õ€Iÿÿÿÿ€1€1€ÿÿÿÿÀÞ€€H€j€ÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€™€PAssetMetaDataguiddata[0]data[1]data[2]data[3]pathNameoriginalNamelabelsassetStoreRef ÿÿfš†!ë5˜9Ý4QÁóBí7€ÿÿÿÿ€¦€²€
E€ Þ€#€.€,€5a€ Þ€#€.€,€†€r€ Þ€# €.€,
€H€«€ÿÿÿÿ €1€1€ÿÿÿÿ @Þ€€
Q€j€ñ€JÿÿÿÿÀ1€1€ÿÿÿÿ€Þ€€€j€ÿÿÿÿ€\›€ÿÿÿÿ€H€rÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€H€wÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€H€€ÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€y€
€ Þ€#!€.€,"€€…ÿÿÿÿ#@1€1€ÿÿÿÿ$Þ€€%.€j€&Õ€“ÿÿÿÿ'€1€1€ÿÿÿÿ(ÀÞ€€)€j€ÿÿÿÿ*€H€›€ÿÿÿÿ+€1€1€ÿÿÿÿ,@Þ€€-Q€j€.y€
€ /Þ€#0€.€,1€ €§2@¾€¶ 3@Þ€#4€.€,5€H€»ÿÿÿÿ6€1€1€ÿÿÿÿ7@Þ€€8Q€j€9H€Æÿÿÿÿ:€1€1€ÿÿÿÿ;@Þ€€<Q€j€=H€Øÿÿÿÿ>€1€1€ÿÿÿÿ?@Þ€€@Q€j€AMonoImporterPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_UsedFileIDsm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariantsÿÿ£Gñ×Ü�Z56 :!@iÁJ*�€7€ÿÿÿÿ€¦€²€E€ Þ€€.€€(a€ Þ€€.€€†€r€ Þ€ €.€
€H€«€ÿÿÿÿ €1€1€ÿÿÿÿ @Þ€€
Q€j€H€ê€ÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€ñ€=ÿÿÿÿ€1€1€ÿÿÿÿ€Þ€€€j€ÿÿÿÿ€H€›€ÿÿÿÿ€1€1€ÿÿÿÿ@Þ€€Q€j€y€
€ Þ€€.€€y€Q Þ€€.€ €Þ€X!H€iÿÿÿÿ"€1€1€ÿÿÿÿ#@Þ€€$Q€j€%H€uÿÿÿÿ&€1€1€ÿÿÿÿ'@Þ€€(Q€j€)PPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacehh\ày¯È\!%ö‚åØô‹A°Äý¾ �¼@Packages/com.unity.timeline/Editor/Utilities/BreadcrumbDrawer.csày¯BreadcrumbDrawerÙ using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;
namespace UnityEditor.Timeline
{
enum TitleMode
{
None,
DisabledComponent,
Prefab,
PrefabOutOfContext,
Asset,
GameObject
}
struct BreadCrumbTitle
{
public string name;
public TitleMode mode;
}
class BreadcrumbDrawer
{
static readonly GUIContent s_TextContent = new GUIContent();
static readonly string k_DisabledComponentText = L10n.Tr("The PlayableDirector is disabled");
static readonly string k_PrefabOutOfContext = L10n.Tr("Prefab Isolation not enabled. Click to Enable.");
static readonly GUIStyle k_BreadCrumbLeft = "GUIEditor.BreadcrumbLeft";
static readonly GUIStyle k_BreadCrumbMid = "GUIEditor.BreadcrumbMid";
static readonly GUIStyle k_BreadCrumbMidSelected;
static readonly Texture k_TimelineIcon;
const string k_Elipsis = "…";
static BreadcrumbDrawer()
{
k_BreadCrumbMidSelected = new GUIStyle(k_BreadCrumbMid);
k_BreadCrumbMidSelected.normal = k_BreadCrumbMidSelected.onNormal;
k_TimelineIcon = EditorGUIUtility.IconContent("TimelineAsset Icon").image;
}
static string FitTextInArea(float areaWidth, string text, GUIStyle style)
{
var borderWidth = style.border.left + style.border.right;
var textWidth = style.CalcSize(EditorGUIUtility.TextContent(text)).x;
if (borderWidth + textWidth < areaWidth)
return text;
// Need to truncate the text to fit in the areaWidth
var textAreaWidth = areaWidth - borderWidth;
var pixByChar = textWidth / text.Length;
var charNeeded = (int)Mathf.Floor(textAreaWidth / pixByChar);
charNeeded -= k_Elipsis.Length;
if (charNeeded <= 0)
return k_Elipsis;
if (charNeeded <= text.Length)
return k_Elipsis + " " + text.Substring(text.Length - charNeeded);
return k_Elipsis;
}
public static void Draw(float breadcrumbAreaWidth, List<BreadCrumbTitle> labels, Action<int> navigateToBreadcrumbIndex)
{
GUILayout.BeginHorizontal(GUILayout.Width(breadcrumbAreaWidth));
{
var labelWidth = (int)(breadcrumbAreaWidth / labels.Count);
for (var i = 0; i < labels.Count; i++)
{
var label = labels[i];
var style = i == 0 ? k_BreadCrumbLeft : k_BreadCrumbMid;
if (i == labels.Count - 1)
{
if (i > 0)
{
// Only tint last breadcrumb if we are dug-in
DrawBreadcrumbAsSelectedSubSequence(labelWidth, label, k_BreadCrumbMidSelected);
}
else
{
DrawActiveBreadcrumb(labelWidth, label, style);
}
}
else
{
var previousContentColor = GUI.contentColor;
GUI.contentColor = new Color(previousContentColor.r,
previousContentColor.g,
previousContentColor.b,
previousContentColor.a * 0.6f);
var content = GetTextContent(labelWidth, label, style);
if (GUI.Button(GetBreadcrumbLayoutRect(content, style), content, style))
{
navigateToBreadcrumbIndex.Invoke(i);
}
GUI.contentColor = previousContentColor;
}
}
}
GUILayout.EndHorizontal();
}
static GUIContent GetTextContent(int width, BreadCrumbTitle text, GUIStyle style)
{
s_TextContent.tooltip = string.Empty;
s_TextContent.image = null;
if (text.mode == TitleMode.DisabledComponent)
{
s_TextContent.tooltip = k_DisabledComponentText;
s_TextContent.image = EditorGUIUtility.GetHelpIcon(MessageType.Warning);
}
else if (text.mode == TitleMode.Prefab)
s_TextContent.image = PrefabUtility.GameObjectStyles.prefabIcon;
else if (text.mode == TitleMode.GameObject)
s_TextContent.image = PrefabUtility.GameObjectStyles.gameObjectIcon;
else if (text.mode == TitleMode.Asset)
s_TextContent.image = k_TimelineIcon;
else if (text.mode == TitleMode.PrefabOutOfContext)
{
s_TextContent.image = PrefabUtility.GameObjectStyles.prefabIcon;
if (!TimelineWindow.instance.locked)
s_TextContent.tooltip = k_PrefabOutOfContext;
}
if (s_TextContent.image != null)
width = Math.Max(0, width - s_TextContent.image.width);
s_TextContent.text = FitTextInArea(width, text.name, style);
return s_TextContent;
}
static void DrawBreadcrumbAsSelectedSubSequence(int width, BreadCrumbTitle label, GUIStyle style)
{
var rect = DrawActiveBreadcrumb(width, label, style);
const float underlineThickness = 2.0f;
const float underlineVerticalOffset = 1.0f;
var underlineHorizontalOffset = style.border.right * 0.333f;
var underlineRect = Rect.MinMaxRect(
rect.xMin - underlineHorizontalOffset,
rect.yMax - underlineThickness - underlineVerticalOffset,
rect.xMax - underlineHorizontalOffset,
rect.yMax - underlineVerticalOffset);
EditorGUI.DrawRect(underlineRect, DirectorStyles.Instance.customSkin.colorSubSequenceDurationLine);
}
static Rect GetBreadcrumbLayoutRect(GUIContent content, GUIStyle style)
{
// the image makes the button far too big compared to non-image versions
var image = content.image;
content.image = null;
var size = style.CalcSizeWithConstraints(content, Vector2.zero);
content.image = image;
if (image != null)
size.x += size.y; // assumes square image, constrained by height
return GUILayoutUtility.GetRect(content, style, GUILayout.MaxWidth(size.x));
}
static Rect DrawActiveBreadcrumb(int width, BreadCrumbTitle label, GUIStyle style)
{
var content = GetTextContent(width, label, style);
var rect = GetBreadcrumbLayoutRect(content, style);
if (GUI.Button(rect, content, style))
{
UnityEngine.Object target = TimelineEditor.inspectedDirector;
if (target == null)
target = TimelineEditor.inspectedAsset;
if (target != null)
{
bool ping = true;
if (label.mode == TitleMode.PrefabOutOfContext)
{
var gameObject = PrefabUtility.GetRootGameObject(target);
if (gameObject != null)
{
target = gameObject; // ping the prefab root if it's locked.
if (!TimelineWindow.instance.locked)
{
var assetPath = AssetDatabase.GetAssetPath(gameObject);
if (!string.IsNullOrEmpty(assetPath))
{
var stage = Experimental.SceneManagement.PrefabStageUtility.OpenPrefab(assetPath);
if (stage != null)
ping = false;
}
}
}
}
if (ping)
{
EditorGUIUtility.PingObject(target);
}
}
}
return rect;