sidrana level design, Cut scenes and VO

This commit is contained in:
szczuras4
2025-11-09 17:51:32 +01:00
parent 0a353ad8c9
commit d8c8957bc5
11 changed files with 7136 additions and 594 deletions

View File

@@ -0,0 +1,524 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-9059634948709463017
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 15c38f6fa1940124db1ab7f6fe7268d1, type: 3}
m_Name: Signal Emitter
m_EditorClassIdentifier:
m_Time: 1.1333333333333333
m_Retroactive: 0
m_EmitOnce: 0
m_Asset: {fileID: 11400000, guid: 0a1df7f560a646945aa4f2abeebdd841, type: 2}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: Sidranna's TreeTimeline
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: 7081698521859630790}
- {fileID: 92748151968134434}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!74 &53202226414185987
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: -0.011932209, y: 0.025444837, z: -0.0016861632, w: 0.99960357}
inSlope: {x: 0, y: 0, z: 0, w: 0}
outSlope: {x: 0.0011260977, y: -0.000067637535, z: 0.0011095384, w: 0.000014333782}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
- serializedVersion: 3
time: 8.316667
value: {x: -0.110459104, y: -0.20246284, z: -0.0069852388, w: 0.9730153}
inSlope: {x: 0.0007982125, y: 0.000007166891, z: 0.001324979, w: 0.000100336474}
outSlope: {x: 0, y: 0, z: 0, w: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334, w: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 8.316667
value: {x: -2.0611877, y: -0.069869995, z: 14.723343}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 0
attribute: 2
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 8.316667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -2.0611877
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -0.069869995
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: 14.723343
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.011932209
inSlope: 0
outSlope: 0.0011260977
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -0.110459104
inSlope: 0.0007982125
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalRotation.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.025444837
inSlope: 0
outSlope: -0.000067637535
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -0.20246284
inSlope: 0.000007166891
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalRotation.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.0016861632
inSlope: 0
outSlope: 0.0011095384
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -0.0069852388
inSlope: 0.001324979
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalRotation.z
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.99960357
inSlope: 0
outSlope: 0.000014333782
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: 0.9730153
inSlope: 0.000100336474
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalRotation.w
path:
classID: 4
script: {fileID: 0}
flags: 0
m_EulerEditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -1.362
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: 347.421
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAngles.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 2.919
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: -23.71
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAngles.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.228
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 8.316667
value: 361.828
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAngles.z
path:
classID: 4
script: {fileID: 0}
flags: 0
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []
--- !u!114 &92748151968134434
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b46e36075dd1c124a8422c228e75e1fb, type: 3}
m_Name: Signal Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips: []
m_Markers:
m_Objects:
- {fileID: -9059634948709463017}
--- !u!114 &7081698521859630790
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: -7.09171, y: 34.80344, z: 215.37437}
m_InfiniteClipOffsetEulerAngles: {x: 4.469854, y: 27.956383, z: 0.14931132}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 53202226414185987}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3962852c9018c9042b3d9d3694df5de8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: d63770b2abbfd4dac9512f8f548398b2 guid: 1be821ff9c6ccec4db23fc04f12527a2
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000

View File

@@ -38419,6 +38419,200 @@ MonoBehaviour:
height: 30 height: 30
canvasScrollPosition: {x: 0, y: 0} canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1 canvasZoom: 1
- id: 135
fields:
- title: Title
value: CH02/RUINEDTOWN/CH02_ruinedtown_vo_Sidranna_wonderer_01
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 2
type: 5
typeString: CustomFieldType_Actor
overrideSettings:
useOverrides: 0
overrideSubtitleSettings: 0
showNPCSubtitlesDuringLine: 1
showNPCSubtitlesWithResponses: 1
showPCSubtitlesDuringLine: 0
skipPCSubtitleAfterResponseMenu: 0
subtitleCharsPerSecond: 30
minSubtitleSeconds: 2
continueButton: 0
overrideSequenceSettings: 0
defaultSequence:
defaultPlayerSequence:
defaultResponseMenuSequence:
overrideInputSettings: 0
alwaysForceResponseMenu: 1
includeInvalidEntries: 0
responseTimeout: 0
cancelSubtitle:
key: 27
buttonName:
cancelConversation:
key: 27
buttonName:
nodeColor:
dialogueEntries:
- id: 0
fields:
- title: Title
value: START
type: 0
typeString:
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString:
- title: Actor
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 2
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString:
- title: Dialogue Text
value:
type: 0
typeString:
- title: Parenthetical
value:
type: 0
typeString:
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString:
- title: Sequence
value: None()
type: 0
typeString:
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 135
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction:
conditionPriority: 2
outgoingLinks:
- originConversationID: 135
originDialogueID: 0
destinationConversationID: 135
destinationDialogueID: 1
isConnector: 0
priority: 2
conditionsString:
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 30
width: 160
height: 30
- id: 1
fields:
- title: Title
value:
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 2
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: Sidranna's tree! Choked by these cursed roots. I will free her!
type: 0
typeString: CustomFieldType_Text
- title: Parenthetical
value:
type: 0
typeString: CustomFieldType_Text
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value:
type: 0
typeString: CustomFieldType_Text
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 135
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction: Block
conditionPriority: 2
outgoingLinks: []
conditionsString:
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 81
width: 160
height: 30
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1
syncInfo: syncInfo:
syncActors: 0 syncActors: 0
syncItems: 0 syncItems: 0

View File

@@ -0,0 +1,41 @@
fileFormatVersion: 2
guid: 5ae21a99ae2a8bd46be39515bdb64e44
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 0
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides:
4:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 0
quality: 1
conversionMode: 0
preloadAudioData: 0
7:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,161 +0,0 @@
using UnityEditor;
using UnityEngine;
using System.Linq;
[InitializeOnLoad]
public static class CustomHierarchyDecorator
{
private static HierarchyDecoratorSettings settings;
static CustomHierarchyDecorator()
{
LoadSettings();
// Rejestracja funkcji odpowiedzialnej za rysowanie niestandardowych nag³ówków
EditorApplication.hierarchyWindowItemOnGUI -= OnHierarchyGUI;
EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI;
// Monitorowanie zmian w hierarchii
EditorApplication.hierarchyChanged += OnHierarchyChanged;
}
// Aktualizacja ustawieñ
public static void UpdateSettings(HierarchyDecoratorSettings newSettings)
{
settings = newSettings;
EditorApplication.RepaintHierarchyWindow();
}
// £adowanie ustawieñ
private static void LoadSettings()
{
settings = AssetDatabase.LoadAssetAtPath<HierarchyDecoratorSettings>("Assets/Scripts/Editor/HierarchyDecoratorSettings.asset");
if (settings == null)
{
Debug.LogWarning("HierarchyDecoratorSettings not found! Please create one in Assets/Scripts/Editor folder or check the path.");
return;
}
//Debug.Log("HierarchyDecoratorSettings loaded successfully.");
}
// Rysowanie nag³ówka
private static void OnHierarchyGUI(int instanceID, Rect selectionRect)
{
if (settings == null) return;
GameObject obj = EditorUtility.InstanceIDToObject(instanceID) as GameObject;
if (obj != null && obj.name.Contains("="))
{
DrawCustomHeader(selectionRect, obj);
// Ca³kowite zablokowanie zmiany nazwy w Hierarchii
Event e = Event.current;
if (e != null && e.type == EventType.MouseDown && e.clickCount == 2 && selectionRect.Contains(e.mousePosition))
{
// Zapobiegamy aktywacji trybu edycji nazwy
GUIUtility.keyboardControl = 0; // Zapobiegamy edytowaniu nazwy
e.Use();
}
}
}
// Funkcja rysuj¹ca niestandardowy nag³ówek
private static void DrawCustomHeader(Rect rect, GameObject obj)
{
if (obj.name.Trim().StartsWith("= Clean")) // <-- ZMIANA TUTAJ
{
// Jeœli nazwa zaczyna siê od "Clean", rysujemy tylko t³o
EditorGUI.DrawRect(rect, settings.cleanBackgroundColor);
return;
}
string[] parts = obj.name.Split(new[] { '=' }, System.StringSplitOptions.RemoveEmptyEntries);
if (parts.Length < 1) return;
string mainText = parts[0].Trim();
string descriptionText = parts.Length > 1 ? parts[1].Trim() : ""; // Jeœli istnieje drugi `=`, traktujemy go jako opis
// Obs³uga identyfikatora koloru
int colorIdentifier;
bool hasIdentifier = int.TryParse(parts[0].Trim(), out colorIdentifier);
if (hasIdentifier)
{
// Jeœli jest identyfikator, przypisujemy g³ówny tekst i opis
mainText = parts.Length > 1 ? parts[1].Trim() : parts[0].Trim();
descriptionText = parts.Length > 2 ? parts[2].Trim() : ""; // Jeœli jest opis, przypisujemy go
}
Color backgroundColor = obj.activeSelf ? settings.defaultBackgroundColor : settings.defaultInactiveBackgroundColor;
Color textColor = obj.activeSelf ? settings.defaultTextColor : settings.defaultInactiveTextColor;
Color descriptionTextColor = settings.descriptionTextColor;
if (hasIdentifier)
{
// Sprawdzamy identyfikator koloru i przypisujemy odpowiednie kolory
ColorScheme scheme = settings.colorSchemes.FirstOrDefault(s => s.identifier == colorIdentifier);
if (scheme != null)
{
backgroundColor = obj.activeSelf ? scheme.activeBackgroundColor : scheme.inactiveBackgroundColor;
textColor = obj.activeSelf ? scheme.activeTextColor : scheme.inactiveTextColor;
descriptionTextColor = scheme.activeTextColor;
}
}
// Rysujemy t³o dla obiektu
EditorGUI.DrawRect(rect, backgroundColor);
// Styl dla g³ównego tekstu (wycentrowany)
GUIStyle mainTextStyle = new GUIStyle(EditorStyles.boldLabel)
{
alignment = TextAnchor.MiddleLeft, // Wyrównanie do lewej strony
fontStyle = FontStyle.Bold,
normal = { textColor = textColor },
wordWrap = false // Wy³¹czenie zawijania tekstu
};
Rect mainTextRect = new Rect(rect.x + settings.mainTextOffset, rect.y, rect.width - 10, rect.height); // Zmniejszamy szerokoϾ
EditorGUI.LabelField(mainTextRect, new GUIContent(mainText), mainTextStyle);
// Jeœli istnieje opis, wyœwietlamy go mniejsz¹ czcionk¹ po prawej stronie
if (!string.IsNullOrEmpty(descriptionText))
{
GUIStyle descriptionStyle = new GUIStyle(EditorStyles.label)
{
alignment = TextAnchor.MiddleLeft, // Zmieniono na wyrównanie do lewej
fontSize = settings.descriptionFontSize, // Sta³a czcionka
normal = { textColor = descriptionTextColor },
wordWrap = false // Wy³¹czenie zawijania tekstu
};
// Opis wyrównany do koñca g³ównego tekstu, zawsze w tej samej odleg³oœci
float descriptionX = rect.x + settings.mainTextOffset + mainTextStyle.CalcSize(new GUIContent(mainText)).x + settings.descriptionOffset;
Rect descriptionRect = new Rect(descriptionX, rect.y, rect.width - descriptionX, rect.height); // Dostosowanie szerokoœci do g³ównego tekstu
EditorGUI.LabelField(descriptionRect, new GUIContent(descriptionText), descriptionStyle);
}
}
// Funkcja monitoruj¹ca zmiany w hierarchii (np. zablokowanie dodawania dzieci do separatorów)
private static void OnHierarchyChanged()
{
EditorApplication.delayCall += () =>
{
GameObject[] cleanSeparators = Object.FindObjectsByType<GameObject>(FindObjectsInactive.Include, FindObjectsSortMode.None)
.Where(obj => obj.name.Trim().StartsWith("= Clean")) // <-- ZMIANA TUTAJ
.ToArray();
foreach (var cleanObj in cleanSeparators)
{
for (int i = cleanObj.transform.childCount - 1; i >= 0; i--)
{
Transform child = cleanObj.transform.GetChild(i);
Undo.SetTransformParent(child, null, "Prevent Child to Clean Separator");
Debug.Log($"Blocked child object {child.name} from being added to {cleanObj.name}");
}
}
};
}
}

View File

@@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d6fa2d92fc1b3f34da284357edf89c3b, type: 3}
m_Name: CH02_ruinedtown_vo_Sidranna_wonderer_01
m_EditorClassIdentifier:

View File

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