timeline居然没看懂,那个点击估计得重写
这种要怎么侦测呀
This commit is contained in:
2025-02-21 19:36:03 +08:00
parent 6781de4d53
commit 65992750b0
26 changed files with 24998 additions and 23113 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,361 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5062281803715349131
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1701355791749099970}
- component: {fileID: 6048834329859472097}
- component: {fileID: 1508165143461133131}
- component: {fileID: 5420725020538884635}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1701355791749099970
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062281803715349131}
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: 8279910253617674445}
m_Father: {fileID: 2006873362860915601}
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: 25, y: 25}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6048834329859472097
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062281803715349131}
m_CullTransparentMesh: 1
--- !u!114 &1508165143461133131
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062281803715349131}
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: 10905, guid: 0000000000000000f000000000000000, type: 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 &5420725020538884635
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062281803715349131}
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: 1508165143461133131}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 67623903627768998}
m_TargetAssemblyTypeName: SubTab, Assembly-CSharp
m_MethodName: GetClick
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 &5293594113484323338
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2006873362860915601}
- component: {fileID: 4020345575828402432}
- component: {fileID: 8098324973162580063}
- component: {fileID: 67623903627768998}
m_Layer: 5
m_Name: SubTab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2006873362860915601
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5293594113484323338}
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: 1701355791749099970}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4020345575828402432
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5293594113484323338}
m_CullTransparentMesh: 1
--- !u!114 &8098324973162580063
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5293594113484323338}
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.23529413, g: 0.23529413, b: 0.23529413, 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!114 &67623903627768998
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5293594113484323338}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8aff442fe127d534ba6f0236328cff84, type: 3}
m_Name:
m_EditorClassIdentifier:
connectObj: []
button: {fileID: 5420725020538884635}
Time: 0
--- !u!1 &9106615841642673279
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8279910253617674445}
- component: {fileID: 5331965244510821103}
- component: {fileID: 7071832813025461856}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8279910253617674445
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9106615841642673279}
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: 1701355791749099970}
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 &5331965244510821103
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9106615841642673279}
m_CullTransparentMesh: 1
--- !u!114 &7071832813025461856
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9106615841642673279}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 1
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 22.35
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 1
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

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

View File

@@ -92,6 +92,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
Title: {fileID: 120879144137107311}
connectedGameElement: {fileID: 0}
ElementPrefab: {fileID: 67623903627768998, guid: 43149b488eb37d14185b05d5d2ee0a9a,
type: 3}
GelementPointer: []
--- !u!1 &1843458013635033358
GameObject:
@@ -158,7 +160,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
m_text: 1
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 3944eaaf70beffa4097d8c293604125e, type: 2}
m_sharedMaterial: {fileID: 7159369417392969216, guid: 3944eaaf70beffa4097d8c293604125e,
@@ -186,7 +188,7 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14.2
m_fontSize: 21.35
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -18,7 +18,24 @@ namespace Ichni.Editor
HierarchyTab tab = Instantiate(hierarchyTabPrefab, tabContainer).GetComponent<HierarchyTab>();
//if(parentElement.connectedTab!=null)tab.transform.SetSiblingIndex(parentElement.connectedTab.transform.GetSiblingIndex());
tab.SetTab(targetElement, parentElement);
tabList.Add(tab);
return tab;
}
public void FindTab(GameElement targetElement, bool findparent = false)
{
if (targetElement.connectedTab != null)
{
targetElement.connectedTab.tabButton.onClick.Invoke();
}
else
{
FindTab(targetElement.parentElement, true);
}
if (findparent && targetElement.connectedTab != null)
{
targetElement.connectedTab.expandButton.onClick.Invoke();
}
}
}
}

View File

@@ -87,7 +87,7 @@ namespace Ichni.Editor
return c;
}
private void SelectGameElement()
public void SelectGameElement()
{
EditorManager.instance.operationManager.SelectElement(connectedGameElement);
EditorManager.instance.uiManager.inspector.SetInspector(connectedGameElement);
@@ -134,6 +134,7 @@ namespace Ichni.Editor
{
parentTab.childTabList.Remove(this);
Destroy(gameObject);
EditorManager.instance.uiManager.hierarchy.tabList.Remove(this);
}
}
}

View File

@@ -0,0 +1,46 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Ichni;
using Ichni.Editor;
using Ichni.RhythmGame;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class SubTab : MonoBehaviour
{
public List<GameElement> connectObj = new();
public Button button;
//private SongInformation songInformation = EditorManager.instance.songInformation;
private TimePointerModule timePointerModule;
private Timeline timeline;
public float Time;
public void Set(GameElement Objs, float time)
{
timePointerModule = EditorManager.instance.uiManager.timeline.timePointerModule;
timeline = EditorManager.instance.uiManager.timeline;
Time = time;
connectObj.Add(Objs);
button.GetComponentInChildren<TMP_Text>().text = connectObj.Count().ToString();
}
public void Update()
{
Vector3 newPOs = B2P(Time);
transform.position = newPOs;
}
public void GetClick()
{
EditorManager.instance.uiManager.hierarchy.FindTab(connectObj[0]);
}
public Vector3 B2P(float Time)
{
Vector3 i = new(Time / timeline.timePerBeat * timePointerModule.timePointerInterval + 15f - timePointerModule.delayDistanceOffset + 150, transform.position.y, 0);
return i;
}
}

View File

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

View File

@@ -24,7 +24,8 @@ namespace Ichni.Editor
public float intervalUnit;
public float timePointerInterval;
public float sizeNegative, sizePositive;
public int negativePointerAmount, positivePointerAmount, totalPointerAmount;
public int negativePointerAmount; // 负方向指示线的数量
public int positivePointerAmount, totalPointerAmount;
/// <summary>
/// delay时间区间中(-delay, 0)的距离偏移量
/// </summary>
@@ -71,9 +72,12 @@ namespace Ichni.Editor
intervalUnit = (60f / bpm) / beatDivider * 1000;
sizeNegative = delay * beatDivider / timeline.timePerBeat;
// 计算负方向指示线的数量
negativePointerAmount = Mathf.CeilToInt(sizeNegative);
sizePositive = songInformation.song.length * beatDivider / timeline.timePerBeat;
negativePointerAmount = Mathf.CeilToInt(sizeNegative);
positivePointerAmount = Mathf.CeilToInt(sizePositive);
totalPointerAmount = negativePointerAmount + positivePointerAmount;
@@ -143,9 +147,13 @@ namespace Ichni.Editor
/// </summary>
public void UpdatePointers()
{
// 计算延迟距离偏移量
delayDistanceOffset = timePointerInterval * (negativePointerAmount - sizeNegative);
// 更新指示线区域的大小
timePointerArea.sizeDelta = new Vector2(timePointerInterval * totalPointerAmount, 55f);
// 更新每个指示线的位置
foreach (var pointer in timePointerList)
{
pointer.GetComponent<RectTransform>().anchoredPosition =

View File

@@ -33,6 +33,7 @@ namespace Ichni.Editor
public void Update()
{
if (musicPlayer.isPlaying) UpdateTime();
if (RectTransformUtility.RectangleContainsScreenPoint(GetinputArea, Mouse.current.position.ReadValue()))
{
@@ -112,8 +113,35 @@ namespace Ichni.Editor
public Dictionary<Type, TimelineTab> timelineTabList = new Dictionary<Type, TimelineTab>();
public void SetTimeLine(GameElement element)
{
//在做了
for (int i = timelineTabList.Count - 1; i >= 0; i--)
{
Destroy(timelineTabList.ElementAt(i).Value.gameObject);
timelineTabList.Remove(timelineTabList.ElementAt(i).Key);
}
if (element is Track) Trackfind(element);
}
public void Trackfind(GameElement Track)
{
foreach (var i in Track.childElementList)
{
if (i is NoteBase)
{
if (!timelineTabList.ContainsKey(i.GetType()))
{
TimelineTab timelineTab = Instantiate(timelineTabPrefab, timelineTabRect.transform);
timelineTab.SetTab(i, i.GetType());
timelineTabList.Add(i.GetType(), timelineTab);
}
else
{
timelineTabList[i.GetType()].AddElement(i);
}
}
}
}
}
}

View File

@@ -9,15 +9,34 @@ public class TimelineTab : MonoBehaviour
{
public TMP_Text Title;
public GameElement connectedGameElement;
public SubTab ElementPrefab;
public List<GameElement> GelementPointer;
public Dictionary<float, SubTab> SubTabs = new();
public void SetTab(GameElement element, Type DisplayType)
{
connectedGameElement = element;
Title.text = DisplayType.ToString();
foreach (var i in element.childElementList) if (i.GetType() == DisplayType) GelementPointer.Add(i);
AddElement(element);
}
public void AddElement(GameElement gameElement)
{
GelementPointer.Add(gameElement);
if (gameElement is NoteBase)
{
float Judgetime = ((NoteBase)gameElement).exactJudgeTime;
print(Judgetime);
if (SubTabs.ContainsKey(Judgetime)) SubTabs[Judgetime].Set(gameElement, Judgetime);
else
{
SubTab i = Instantiate(ElementPrefab, transform);
i.Set(gameElement, Judgetime);
SubTabs.Add(Judgetime, i);
}
}
}
}

View File

@@ -10,11 +10,11 @@ namespace Ichni.Editor
public class SceneCamera : MonoBehaviour, IBaseElement
{
public Camera camera;
public GameCamera.CameraViewType viewType;
public float perspectiveAngle;
public float orthographicSize;
public BaseElement_BM matchedBM { get; set; }
public void SetUpInspector()
@@ -29,12 +29,12 @@ namespace Ichni.Editor
{
camera.orthographic = viewType == GameCamera.CameraViewType.Orthographic;
});
perspectiveAngleField.AddListenerFunction(_ =>
{
camera.fieldOfView = perspectiveAngle;
});
orthographicSizeField.AddListenerFunction(_ =>
{
camera.orthographicSize = orthographicSize;
@@ -45,7 +45,7 @@ namespace Ichni.Editor
string GetEulerAngles() => $"Euler Angles: {camera.transform.eulerAngles}";
var eulerAnglesText = inspector.GenerateHintText(this, container, GetEulerAngles);
}
public void MoveCamera(Vector3 delta)
{
camera.transform.position += delta;

View File

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

File diff suppressed because one or more lines are too long