Made presser properly press
This commit is contained in:
@@ -1,5 +1,100 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1570872871484658396
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8817646919675700749}
|
||||||
|
- component: {fileID: 6499977455909793586}
|
||||||
|
- component: {fileID: 8140780552350643576}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: AOE
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8817646919675700749
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1570872871484658396}
|
||||||
|
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: 3484520099208115360}
|
||||||
|
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: 100, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!61 &6499977455909793586
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1570872871484658396}
|
||||||
|
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: 1
|
||||||
|
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: 150, y: 110}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!114 &8140780552350643576
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1570872871484658396}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7a471a3a004424f44aed18516c22740e, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.TriggerDetector
|
||||||
--- !u!1 &4125748828694197055
|
--- !u!1 &4125748828694197055
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -37,6 +132,7 @@ RectTransform:
|
|||||||
- {fileID: 4096697452073127701}
|
- {fileID: 4096697452073127701}
|
||||||
- {fileID: 6793262744715789825}
|
- {fileID: 6793262744715789825}
|
||||||
- {fileID: 7373586313877545823}
|
- {fileID: 7373586313877545823}
|
||||||
|
- {fileID: 8817646919675700749}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
@@ -61,6 +157,7 @@ MonoBehaviour:
|
|||||||
PresserAnimator: {fileID: 2069929881663685092}
|
PresserAnimator: {fileID: 2069929881663685092}
|
||||||
TopCollider: {fileID: 2714168551213278428}
|
TopCollider: {fileID: 2714168551213278428}
|
||||||
BottomCollider: {fileID: 8580655252957421185}
|
BottomCollider: {fileID: 8580655252957421185}
|
||||||
|
EffectTrigger: {fileID: 8140780552350643576}
|
||||||
--- !u!222 &329628596091536199
|
--- !u!222 &329628596091536199
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -257,7 +354,7 @@ BoxCollider2D:
|
|||||||
drawMode: 0
|
drawMode: 0
|
||||||
adaptiveTiling: 0
|
adaptiveTiling: 0
|
||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 120, y: 16}
|
m_Size: {x: 88, y: 16}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
--- !u!1 &6685246690386729584
|
--- !u!1 &6685246690386729584
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -329,7 +426,7 @@ BoxCollider2D:
|
|||||||
m_UsedByEffector: 0
|
m_UsedByEffector: 0
|
||||||
m_CompositeOperation: 0
|
m_CompositeOperation: 0
|
||||||
m_CompositeOrder: 0
|
m_CompositeOrder: 0
|
||||||
m_Offset: {x: -70, y: 0}
|
m_Offset: {x: -62, y: 0}
|
||||||
m_SpriteTilingProperty:
|
m_SpriteTilingProperty:
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
pivot: {x: 0, y: 0}
|
pivot: {x: 0, y: 0}
|
||||||
@@ -339,7 +436,7 @@ BoxCollider2D:
|
|||||||
drawMode: 0
|
drawMode: 0
|
||||||
adaptiveTiling: 0
|
adaptiveTiling: 0
|
||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 20, y: 120}
|
m_Size: {x: 36, y: 120}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
--- !u!1 &7642770092097174314
|
--- !u!1 &7642770092097174314
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -421,7 +518,7 @@ BoxCollider2D:
|
|||||||
drawMode: 0
|
drawMode: 0
|
||||||
adaptiveTiling: 0
|
adaptiveTiling: 0
|
||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 120, y: 12}
|
m_Size: {x: 88, y: 16}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
--- !u!1 &8718160904021803034
|
--- !u!1 &8718160904021803034
|
||||||
GameObject:
|
GameObject:
|
||||||
@@ -493,7 +590,7 @@ BoxCollider2D:
|
|||||||
m_UsedByEffector: 0
|
m_UsedByEffector: 0
|
||||||
m_CompositeOperation: 0
|
m_CompositeOperation: 0
|
||||||
m_CompositeOrder: 0
|
m_CompositeOrder: 0
|
||||||
m_Offset: {x: 70, y: 0}
|
m_Offset: {x: 62, y: 0}
|
||||||
m_SpriteTilingProperty:
|
m_SpriteTilingProperty:
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
pivot: {x: 0, y: 0}
|
pivot: {x: 0, y: 0}
|
||||||
@@ -503,5 +600,5 @@ BoxCollider2D:
|
|||||||
drawMode: 0
|
drawMode: 0
|
||||||
adaptiveTiling: 0
|
adaptiveTiling: 0
|
||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 20, y: 120}
|
m_Size: {x: 36, y: 120}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
using Fruitomation.Global;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Fruitomation.Game.Items;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Scripting;
|
using UnityEngine.Scripting;
|
||||||
|
using Fruitomation.Global;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Fruitomation.Game
|
namespace Fruitomation.Game
|
||||||
{
|
{
|
||||||
@@ -11,6 +14,20 @@ namespace Fruitomation.Game
|
|||||||
[SerializeField] private Animator PresserAnimator;
|
[SerializeField] private Animator PresserAnimator;
|
||||||
[SerializeField] private Collider2D TopCollider;
|
[SerializeField] private Collider2D TopCollider;
|
||||||
[SerializeField] private Collider2D BottomCollider;
|
[SerializeField] private Collider2D BottomCollider;
|
||||||
|
[SerializeField] private TriggerDetector EffectTrigger;
|
||||||
|
|
||||||
|
private HashSet<GameObject> CurrentContainedObjects = new();
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
EffectTrigger.SetAction(other => CurrentContainedObjects.Add(other.gameObject),
|
||||||
|
TriggerType.Enter
|
||||||
|
);
|
||||||
|
|
||||||
|
EffectTrigger.SetAction(other => CurrentContainedObjects.Remove(other.gameObject),
|
||||||
|
TriggerType.Exit
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
@@ -33,37 +50,32 @@ namespace Fruitomation.Game
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Preserve, UsedImplicitly]
|
[Preserve, UsedImplicitly] public void OpenTop() => TopCollider.enabled = false;
|
||||||
public void OpenTop()
|
[Preserve, UsedImplicitly] public void CloseTop() => TopCollider.enabled = true;
|
||||||
{
|
[Preserve, UsedImplicitly] public void OpenBottom() => BottomCollider.enabled = false;
|
||||||
Debug.Log(nameof(OpenTop));
|
[Preserve, UsedImplicitly] public void CloseBottom() => BottomCollider.enabled = true;
|
||||||
TopCollider.enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Preserve, UsedImplicitly]
|
|
||||||
public void CloseTop()
|
|
||||||
{
|
|
||||||
Debug.Log(nameof(CloseTop));
|
|
||||||
TopCollider.enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Preserve, UsedImplicitly]
|
|
||||||
public void OpenBottom()
|
|
||||||
{
|
|
||||||
Debug.Log(nameof(OpenBottom));
|
|
||||||
BottomCollider.enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Preserve, UsedImplicitly]
|
|
||||||
public void CloseBottom()
|
|
||||||
{
|
|
||||||
Debug.Log(nameof(CloseBottom));
|
|
||||||
BottomCollider.enabled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Preserve, UsedImplicitly] public void Press()
|
[Preserve, UsedImplicitly] public void Press()
|
||||||
{
|
{
|
||||||
Debug.Log("Presser Press");
|
GameObject[] gameObjects = CurrentContainedObjects.ToArray();
|
||||||
|
foreach (GameObject go in gameObjects)
|
||||||
|
{
|
||||||
|
bool isItem = go.transform.parent.TryGetComponent(out ItemBehaviour item);
|
||||||
|
if (!isItem)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
item.CurrentType = item.CurrentType switch
|
||||||
|
{
|
||||||
|
ItemType.Apple => ItemType.AppleJuice,
|
||||||
|
ItemType.Grape => ItemType.GrapeJuice,
|
||||||
|
ItemType.Kiwi => ItemType.KiwiJuice,
|
||||||
|
ItemType.PitayaSkin => ItemType.PitayaFoodDye,
|
||||||
|
|
||||||
|
var _ => item.CurrentType // Default
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,15 +6,15 @@ namespace Fruitomation.Game
|
|||||||
public enum TriggerType
|
public enum TriggerType
|
||||||
{
|
{
|
||||||
Enter,
|
Enter,
|
||||||
Stay
|
Stay,
|
||||||
|
Exit
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TriggerDetector : MonoBehaviour
|
public class TriggerDetector : MonoBehaviour
|
||||||
{
|
{
|
||||||
private Action<Collider2D> RegisteredActionStay;
|
private Action<Collider2D> RegisteredActionStay;
|
||||||
private Action<Collider2D> RegisteredActionEnter;
|
private Action<Collider2D> RegisteredActionEnter;
|
||||||
|
private Action<Collider2D> RegisteredActionExit;
|
||||||
private TriggerType Type;
|
|
||||||
|
|
||||||
public void SetAction(Action<Collider2D> action, TriggerType type)
|
public void SetAction(Action<Collider2D> action, TriggerType type)
|
||||||
{
|
{
|
||||||
@@ -28,6 +28,10 @@ namespace Fruitomation.Game
|
|||||||
RegisteredActionEnter = action;
|
RegisteredActionEnter = action;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
case TriggerType.Exit:
|
||||||
|
RegisteredActionExit = action;
|
||||||
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
||||||
}
|
}
|
||||||
@@ -35,5 +39,6 @@ namespace Fruitomation.Game
|
|||||||
|
|
||||||
private void OnTriggerEnter2D(Collider2D other) => RegisteredActionEnter?.Invoke(other);
|
private void OnTriggerEnter2D(Collider2D other) => RegisteredActionEnter?.Invoke(other);
|
||||||
private void OnTriggerStay2D(Collider2D other) => RegisteredActionStay?.Invoke(other);
|
private void OnTriggerStay2D(Collider2D other) => RegisteredActionStay?.Invoke(other);
|
||||||
|
private void OnTriggerExit2D(Collider2D other) => RegisteredActionExit?.Invoke(other);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user