WIP Butterfly can be set free, now only missing forcing the couple to look.

This commit is contained in:
2025-11-13 16:23:52 +01:00
parent c3639bbb93
commit c08fc4a720
6 changed files with 196 additions and 66 deletions

View File

@@ -433210,7 +433210,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &318146997
Transform:
m_ObjectHideFlags: 0
@@ -433221,7 +433221,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: -0.5}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 495112254}
@@ -434738,7 +434738,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &423383083
Transform:
m_ObjectHideFlags: 0
@@ -434749,7 +434749,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.5, z: 0.5}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1807522040}
@@ -438951,7 +438951,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -0.5, z: 0.5}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 495112254}
@@ -445569,7 +445569,7 @@ Transform:
m_GameObject: {fileID: 971772283}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 19.54, y: 42.61, z: 0}
m_LocalPosition: {x: 23.4, y: 45.12, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -446023,7 +446023,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.21, y: 0.21, z: 0.21}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1807522040}
@@ -447368,13 +447368,14 @@ GameObject:
- component: {fileID: 1046094549}
- component: {fileID: 1046094550}
- component: {fileID: 1046094551}
m_Layer: 0
- component: {fileID: 1046094552}
m_Layer: 10
m_Name: Trapped
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &1046094549
Transform:
m_ObjectHideFlags: 0
@@ -447412,9 +447413,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1046094548}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73d6494a73174ffabc6a7d3089d51e73, type: 3}
m_Script: {fileID: 11500000, guid: 833a4ccef651449e973e623d9107bef5, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Interactions.InteractableBase
m_EditorClassIdentifier: AppleHillsScripts::Interactions.OneClickInteraction
isOneTime: 0
cooldown: -1
characterToInteract: 2
@@ -447430,18 +447431,64 @@ MonoBehaviour:
interactionComplete:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: Core.SaveLoad.AppleMachine, AppleHillsScripts
m_MethodName:
- m_Target: {fileID: 1471606857}
m_TargetAssemblyTypeName: ButterFlyState, AppleHillsScripts
m_MethodName: stateSwitch
m_Mode: 5
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_StringArgument: Flying
m_BoolArgument: 0
m_CallState: 2
--- !u!61 &1046094552
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1046094548}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 0
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 4.43, y: 4.39}
m_EdgeRadius: 0
--- !u!1 &1052177242
GameObject:
m_ObjectHideFlags: 0
@@ -453771,13 +453818,14 @@ GameObject:
m_Component:
- component: {fileID: 1339904432}
- component: {fileID: 1339904433}
- component: {fileID: 1339904434}
m_Layer: 0
m_Name: Free
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &1339904432
Transform:
m_ObjectHideFlags: 0
@@ -453787,7 +453835,7 @@ Transform:
m_GameObject: {fileID: 1339904431}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 49.15, y: -5.5, z: 1.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -453806,6 +453854,19 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
--- !u!114 &1339904434
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1339904431}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6821f70f6ac4b85418b15ce068ddc6da, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
butterflyRef: {fileID: 0}
--- !u!1001 &1347210919
PrefabInstance:
m_ObjectHideFlags: 0
@@ -456431,7 +456492,7 @@ GameObject:
m_Component:
- component: {fileID: 1471606854}
- component: {fileID: 1471606856}
- component: {fileID: 1471606855}
- component: {fileID: 1471606857}
m_Layer: 0
m_Name: ButterflyStateMachine
m_TagString: Untagged
@@ -456457,7 +456518,7 @@ Transform:
- {fileID: 1339904432}
m_Father: {fileID: 971772284}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1471606855
--- !u!114 &1471606856
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -456466,12 +456527,24 @@ MonoBehaviour:
m_GameObject: {fileID: 1471606853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f56763d30b94bf6873d395a6c116eb5, type: 3}
m_Script: {fileID: 11500000, guid: 55938fb1577dd4ad3af7e994048c86f6, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleMachine
m_EditorClassIdentifier: PixelplacementAssembly::Pixelplacement.Initialization
--- !u!114 &1471606857
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471606853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b889d915f28f8ac4ebeb12013bcaa4ce, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
defaultState: {fileID: 1046094548}
currentState: {fileID: 0}
_unityEventsFolded: 1
_unityEventsFolded: 0
verbose: 0
allowReentry: 0
returnToDefaultOnDisable: 1
@@ -456494,18 +456567,6 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
customSaveId:
--- !u!114 &1471606856
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1471606853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 55938fb1577dd4ad3af7e994048c86f6, type: 3}
m_Name:
m_EditorClassIdentifier: PixelplacementAssembly::Pixelplacement.Initialization
--- !u!95 &1476225951 stripped
Animator:
m_CorrespondingSourceObject: {fileID: 876931666302761994, guid: 2b23896b733c2ae4cba6dcf21193402b, type: 3}
@@ -458960,7 +459021,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.21, y: 0.21, z: 0.21}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 495112254}
@@ -461197,7 +461258,7 @@ GameObject:
- component: {fileID: 1731509962}
- component: {fileID: 1731509961}
m_Layer: 0
m_Name: Animation
m_Name: ButterflyFlying
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -461216,7 +461277,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2136071208}
m_Father: {fileID: 2143678520}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &1731509961
Animator:
@@ -462915,7 +462976,7 @@ Transform:
m_GameObject: {fileID: 1807522039}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 23.17, y: -1.5, z: 1.5}
m_LocalPosition: {x: 49.15, y: -5.5, z: 1.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -467533,7 +467594,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: -0.5}
m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507}
m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1807522040}
@@ -470183,7 +470244,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1731509960}
- {fileID: 2143678520}
- {fileID: 495112254}
- {fileID: 1807522040}
m_Father: {fileID: 1471606854}
@@ -470217,7 +470278,10 @@ MonoBehaviour:
defaultTangentMode: 0
direction: 0
loop: 0
followers: []
followers:
- target: {fileID: 2143678520}
percentage: 0
faceDirection: 0
--- !u!114 &2136071211
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -470230,11 +470294,43 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f8cd0ca91dab0404daaa3fa1dc722658, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::ButterFlyBehaviour
butterStateMachine: {fileID: 1471606857}
butterflightSpline: {fileID: 2136071210}
butterflyObject: {fileID: 1731509960}
butterflyObject: {fileID: 2143678520}
flightDuration: 2
flightDelay: 0
startPercentage: 0
--- !u!1 &2143678519
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2143678520}
m_Layer: 0
m_Name: Animation
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2143678520
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2143678519}
serializedVersion: 2
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: 1731509960}
m_Father: {fileID: 2136071208}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &2144703707 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 9067462609398217044, guid: 6cbcaf4eb20e63e4fb462f6fb1ada3a7, type: 3}

View File

@@ -4,52 +4,50 @@ using Core.SaveLoad;
public class ButterFlyBehaviour : MonoBehaviour
{
public AppleMachine butterStateMachine;
public Spline butterflightSpline;
public Transform butterflyObject;
public float flightDuration = 2f;
public float flightDelay = 0f;
[Range(0, 1)] public float startPercentage = 0f;
private const float AnchorThreshold = 0.05f;
private Animator butterflyAnimator;
// Called when entering the butterfly flight state
public void OnEnterState()
public void OnEnable()
{
if (butterflightSpline == null || butterflyObject == null)
{
Debug.LogWarning("ButterFlyBehaviour: Missing spline or butterfly object reference.");
return;
}
butterflyObject.position = butterflightSpline.GetPosition(startPercentage);
float distanceToStart = Mathf.Abs(startPercentage - 0f);
float distanceToEnd = Mathf.Abs(startPercentage - 1f);
float targetPercentage;
float duration;
if (distanceToStart < distanceToEnd)
if (butterflyObject != null )
{
targetPercentage = 1f;
duration = flightDuration * (1f - startPercentage);
}
else
{
targetPercentage = 0f;
duration = flightDuration * startPercentage;
butterflyAnimator = butterflyObject.GetComponentInChildren<Animator>();
}
butterflyAnimator.SetTrigger("BrokeOut");
Tween.Spline(
butterflightSpline,
butterflyObject,
startPercentage,
targetPercentage,
0,
1,
false,
duration,
flightDuration,
flightDelay,
Tween.EaseInOut,
Tween.LoopType.None
Tween.LoopType.None, HandleTweenStarted, HandleTweenFinished
);
}
public void HandleTweenStarted()
{
}
public void HandleTweenFinished()
{
butterStateMachine.ChangeState("Free");
}
}

View File

@@ -0,0 +1,13 @@
using Core.SaveLoad;
using Core;
using UnityEngine;
public class ButterFlyState : AppleMachine
{
public void stateSwitch(string StateName)
{
Logging.Debug("State Switch to: " + StateName);
ChangeState(StateName);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b889d915f28f8ac4ebeb12013bcaa4ce

View File

@@ -0,0 +1,19 @@
using Pixelplacement;
using UnityEngine;
using Core.SaveLoad;
public class ButterflyFreeBehaviour : MonoBehaviour
{
public GameObject butterflyRef;
private Animator butterflyAnimator;
public void OnEnable()
{
if (butterflyRef != null)
{
butterflyAnimator = butterflyRef.GetComponentInChildren<Animator>();
}
butterflyAnimator.SetTrigger("IsFree");
Debug.Log("ButterflyFreeBehaviour enabled");
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6821f70f6ac4b85418b15ce068ddc6da