Simplified ghost starting direction logic

This commit is contained in:
2026-06-19 13:01:19 +02:00
parent 0a815c7a50
commit 8d23d1812f
3 changed files with 1020 additions and 1080 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -43,7 +43,7 @@ MonoBehaviour:
Data: Data:
- Name: - Name:
Entry: 12 Entry: 12
Data: 44 Data: 43
- Name: - Name:
Entry: 7 Entry: 7
Data: Data:
@@ -1771,13 +1771,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: faceInStartingDirectionUntilUnfrozen Data: kinematic
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 91|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 91|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: faceInStartingDirectionUntilUnfrozen Data: kinematic
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 62 Data: 62
@@ -1819,13 +1819,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: kinematic Data: specialLook
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 93|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 93|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: kinematic Data: specialLook
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 62 Data: 62
@@ -1867,13 +1867,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: specialLook Data: followingPredefinedPath
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 95|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 95|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: specialLook Data: followingPredefinedPath
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 62 Data: 62
@@ -1915,19 +1915,31 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: followingPredefinedPath Data: predefinedPath
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 97|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 97|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: followingPredefinedPath Data: predefinedPath
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 7
Data: 62 Data: 98|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: Marro.PacManUdon.Direction[], Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 7
Data: 62 Data: 99|System.RuntimeType, mscorlib
- Name:
Entry: 1
Data: System.Int32[], mscorlib
- Name:
Entry: 8
Data:
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -1942,7 +1954,8 @@ MonoBehaviour:
Data: false Data: false
- Name: _fieldAttributes - Name: _fieldAttributes
Entry: 7 Entry: 7
Data: 98|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib Data: 100|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
mscorlib
- Name: - Name:
Entry: 12 Entry: 12
Data: 0 Data: 0
@@ -1963,31 +1976,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: predefinedPath Data: predefinedPathIndex
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 99|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 101|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: predefinedPath Data: predefinedPathIndex
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 7 Entry: 9
Data: 100|System.RuntimeType, mscorlib Data: 8
- Name:
Entry: 1
Data: Marro.PacManUdon.Direction[], Assembly-CSharp
- Name:
Entry: 8
Data:
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 7 Entry: 9
Data: 101|System.RuntimeType, mscorlib Data: 8
- Name:
Entry: 1
Data: System.Int32[], mscorlib
- Name:
Entry: 8
Data:
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -2024,13 +2025,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: predefinedPathIndex Data: <Index>k__BackingField
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 103|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 103|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: predefinedPathIndex Data: <Index>k__BackingField
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 8 Data: 8
@@ -2073,13 +2074,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: <Index>k__BackingField Data: animatorKeyDirection
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 105|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 105|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: <Index>k__BackingField Data: animatorKeyDirection
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 8 Data: 8
@@ -2122,13 +2123,13 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: animatorKeyDirection Data: animatorKeyGhostType
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 107|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 107|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: animatorKeyDirection Data: animatorKeyGhostType
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 8 Data: 8
@@ -2171,19 +2172,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: animatorKeyGhostType Data: cardinalDirections
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 109|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 109|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: animatorKeyGhostType Data: cardinalDirections
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 8 Data: 98
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 8 Data: 99
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -2220,19 +2221,19 @@ MonoBehaviour:
Data: Data:
- Name: $k - Name: $k
Entry: 1 Entry: 1
Data: cardinalDirections Data: horizontalDirections
- Name: $v - Name: $v
Entry: 7 Entry: 7
Data: 111|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor Data: 111|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField - Name: <Name>k__BackingField
Entry: 1 Entry: 1
Data: cardinalDirections Data: horizontalDirections
- Name: <UserType>k__BackingField - Name: <UserType>k__BackingField
Entry: 9 Entry: 9
Data: 100 Data: 98
- Name: <SystemType>k__BackingField - Name: <SystemType>k__BackingField
Entry: 9 Entry: 9
Data: 101 Data: 99
- Name: <SyncMode>k__BackingField - Name: <SyncMode>k__BackingField
Entry: 7 Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
@@ -2264,55 +2265,6 @@ MonoBehaviour:
- Name: - Name:
Entry: 8 Entry: 8
Data: Data:
- Name:
Entry: 7
Data:
- Name: $k
Entry: 1
Data: horizontalDirections
- Name: $v
Entry: 7
Data: 113|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
- Name: <Name>k__BackingField
Entry: 1
Data: horizontalDirections
- Name: <UserType>k__BackingField
Entry: 9
Data: 100
- Name: <SystemType>k__BackingField
Entry: 9
Data: 101
- Name: <SyncMode>k__BackingField
Entry: 7
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
- Name:
Entry: 6
Data:
- Name:
Entry: 8
Data:
- Name: <IsSerialized>k__BackingField
Entry: 5
Data: false
- Name: _fieldAttributes
Entry: 7
Data: 114|System.Collections.Generic.List`1[[System.Attribute, mscorlib]],
mscorlib
- Name:
Entry: 12
Data: 0
- Name:
Entry: 13
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name:
Entry: 8
Data:
- Name: - Name:
Entry: 13 Entry: 13
Data: Data:

View File

@@ -76,7 +76,6 @@ namespace Marro.PacManUdon
private int housePelletCounter; private int housePelletCounter;
private bool housePelletCounterActive; private bool housePelletCounterActive;
private int housePelletCounterLimit; private int housePelletCounterLimit;
private bool faceInStartingDirectionUntilUnfrozen;
// Cutscene // Cutscene
private bool kinematic; private bool kinematic;
@@ -133,6 +132,11 @@ namespace Marro.PacManUdon
if (startState == PacManGhostStartState.TargetingIdlePosition1) if (startState == PacManGhostStartState.TargetingIdlePosition1)
{ {
SetOffGridTarget(idlePosition1, false); SetOffGridTarget(idlePosition1, false);
SetTargetDirection(Direction.Up);
}
else
{
SetTargetDirection(Direction.Down);
} }
ghostState = PacManGhostState.Entering; ghostState = PacManGhostState.Entering;
OffGridTargetReached(); OffGridTargetReached();
@@ -148,7 +152,6 @@ namespace Marro.PacManUdon
rngState = 1; rngState = 1;
UpdateSpeed(); UpdateSpeed();
faceInStartingDirectionUntilUnfrozen = true;
UpdateAnimator(); UpdateAnimator();
// Debug.Log($"{gameObject} reset with state: {state}, target: {target}, offGrid: {offGrid}"); // Debug.Log($"{gameObject} reset with state: {state}, target: {target}, offGrid: {offGrid}");
@@ -519,15 +522,7 @@ namespace Marro.PacManUdon
} }
} }
if (faceInStartingDirectionUntilUnfrozen && startState == PacManGhostStartState.TargetingIdlePosition1) if (specialLook || targetDirection != Direction.Zero)
{
SetAnimatorDirection((int)Direction.Up);
}
else if (faceInStartingDirectionUntilUnfrozen && startState == PacManGhostStartState.TargetingIdlePosition2)
{
SetAnimatorDirection((int)Direction.Down);
}
else if (specialLook || targetDirection != Direction.Zero)
{ {
SetAnimatorDirection((int)targetDirection); SetAnimatorDirection((int)targetDirection);
} }
@@ -680,12 +675,6 @@ namespace Marro.PacManUdon
frozenState = PacManGhostFrozenState.NotFrozen; frozenState = PacManGhostFrozenState.NotFrozen;
} }
animator.speed = frozen && !keepAnimating ? 0 : 1; // This would cause issues if the returning sprite was animated, luckily it isn't :) animator.speed = frozen && !keepAnimating ? 0 : 1; // This would cause issues if the returning sprite was animated, luckily it isn't :)
if (frozen == false && faceInStartingDirectionUntilUnfrozen)
{
faceInStartingDirectionUntilUnfrozen = false;
UpdateAnimator();
}
} }
public void SetHousePelletCounterActive(bool active) public void SetHousePelletCounterActive(bool active)
@@ -789,7 +778,6 @@ namespace Marro.PacManUdon
data.AppendAsByte(housePelletCounter, ref index); data.AppendAsByte(housePelletCounter, ref index);
data.Append(housePelletCounterActive, ref index); data.Append(housePelletCounterActive, ref index);
data.AppendAsByte(housePelletCounterLimit, ref index); data.AppendAsByte(housePelletCounterLimit, ref index);
data.Append(faceInStartingDirectionUntilUnfrozen, ref index);
base.CollectSyncedData(data, ref index, eventType); base.CollectSyncedData(data, ref index, eventType);
} }
@@ -817,7 +805,6 @@ namespace Marro.PacManUdon
housePelletCounter = data.ReadByte(ref index); housePelletCounter = data.ReadByte(ref index);
housePelletCounterActive = data.ReadBool(ref index); housePelletCounterActive = data.ReadBool(ref index);
housePelletCounterLimit = data.ReadByte(ref index); housePelletCounterLimit = data.ReadByte(ref index);
faceInStartingDirectionUntilUnfrozen = data.ReadBool(ref index);
return base.WriteSyncedData(data, ref index, eventType); return base.WriteSyncedData(data, ref index, eventType);
} }