From 5f84e67316d5aa9794748c4e21b9a6422ab04ac1 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 29 Oct 2021 16:49:11 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=E3=82=AB=E3=82=A6=E3=83=B3=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E3=83=A9=E3=82=B9=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Animation/StockCorn_addition.anim | 2 +- .../Animation/StockCorn_addition.controller | 269 +++++++++++++++++- .../Scripts/HarvestedAdditionView.cs | 109 +++++++ .../Scripts/HarvestedAdditionView.cs.meta | 3 + 4 files changed, 376 insertions(+), 7 deletions(-) create mode 100644 popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs create mode 100644 popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs.meta diff --git a/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.anim b/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.anim index a1171b8a..531a553c 100644 --- a/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.anim +++ b/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.anim @@ -104,7 +104,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 1 + m_LoopTime: 0 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.controller b/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.controller index 9b376fe0..d16eab3b 100644 --- a/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.controller +++ b/popcorn/Assets/MyGame/Resource/Animation/StockCorn_addition.controller @@ -1,5 +1,30 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-8642731778310273473 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Appear + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7636538999637159995} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0.24 + m_ExitTime: 1 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &-7636538999637159995 AnimatorState: serializedVersion: 5 @@ -10,6 +35,58 @@ AnimatorState: m_Name: StockCorn_addition_appear m_Speed: 1 m_CycleOffset: 0 + m_Transitions: + - {fileID: 3383956810922778620} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: a4e9d84ee63cf8441912c536b0a82c86, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-6879587025651168406 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Add + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -788033614754781971} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.15 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-3946120656019495017 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: StockCorn_addition_disappear + m_Speed: -1 + m_CycleOffset: 0 m_Transitions: [] m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} @@ -36,7 +113,9 @@ AnimatorState: m_Name: StockCorn_addition m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -6879587025651168406} + - {fileID: 719906150159968281} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -60,7 +139,31 @@ AnimatorController: m_PrefabAsset: {fileID: 0} m_Name: StockCorn_addition serializedVersion: 5 - m_AnimatorParameters: [] + m_AnimatorParameters: + - m_Name: Add + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Appear + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Disappear + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: Wait + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -74,6 +177,78 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} +--- !u!1101 &705613616560957241 +AnimatorStateTransition: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 0} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 1 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &719906150159968281 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Wait + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2789945997106464607} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.1 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &797903091149478652 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Add + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -788033614754781971} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1107 &2098577713097479084 AnimatorStateMachine: serializedVersion: 5 @@ -85,12 +260,20 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: -788033614754781971} - m_Position: {x: 200, y: 0, z: 0} + m_Position: {x: 340, y: -40, z: 0} - serializedVersion: 1 m_State: {fileID: -7636538999637159995} - m_Position: {x: 230, y: 60, z: 0} + m_Position: {x: 540, y: 20, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2789945997106464607} + m_Position: {x: 340, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3946120656019495017} + m_Position: {x: 260, y: -150, z: 0} m_ChildStateMachines: [] - m_AnyStateTransitions: [] + m_AnyStateTransitions: + - {fileID: -8642731778310273473} + - {fileID: 8499302709827305042} m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] @@ -98,4 +281,78 @@ AnimatorStateMachine: m_EntryPosition: {x: 50, y: 120, z: 0} m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: -788033614754781971} + m_DefaultState: {fileID: 2789945997106464607} +--- !u!1102 &2789945997106464607 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Wait + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 797903091149478652} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &3383956810922778620 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -788033614754781971} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0.13288593 + m_ExitTime: 1 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &8499302709827305042 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Disappear + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3946120656019495017} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0.13 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs new file mode 100644 index 00000000..7b328789 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs @@ -0,0 +1,109 @@ +using System; +using System.Text; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + + +public class HarvestedAdditionView : MonoBehaviour +{ + private static readonly int Add = Animator.StringToHash("Add"); + private static readonly int Appear = Animator.StringToHash("Appear"); + private static readonly int Disappear = Animator.StringToHash("Disappear"); + private static readonly int Wait = Animator.StringToHash("Wait"); + + [SerializeField] private Animator counterAnimator; + [SerializeField] private TextWithCountUpInt counter; + [Tooltip("揺れる頻度")] + [SerializeField] private float triggerThrottle = .1f; + [Tooltip("カウントアップ時間")] + [SerializeField] private float countDuration = .4f; + [Tooltip("コーンが来なくなってから待つ時間")] + [SerializeField] private float waitDisappeared = 2f; + private static readonly string harvestedCountFormat = "+{0}"; + private static readonly string hasCountFormat = "{0}"; + private readonly Subject playEffectObserve = new Subject(); + private bool flag; + private int latestCount; + + public IObservable EndObservable => endObservable; + private readonly Subject endObservable = new Subject(); + private Coroutine disapperCoroutine; + + private void Start() + { + playEffectObserve.AddTo(this); + playEffectObserve + .ThrottleFirst(TimeSpan.FromSeconds(triggerThrottle)) + .Subscribe(_ => + { + this.SafeStopCoroutine(disapperCoroutine); + if (flag) + { + counterAnimator.transform.SetLocalScale(1); + counterAnimator.SetTrigger(Appear); + } + else + { + counterAnimator.SetTrigger(Add); + } + flag = false; + }).AddTo(this); + // playEffectObserveが来なくなって0.15sで揺らすのを止める + playEffectObserve + .Throttle(TimeSpan.FromSeconds(.15f)) + .Subscribe(_ => + { + counterAnimator.ResetTrigger(Add); + counterAnimator.SetTrigger(Wait); + }).AddTo(this); + playEffectObserve + .Throttle(TimeSpan.FromSeconds(waitDisappeared)) + .Subscribe(_ => + { + endObservable.OnNext(latestCount); + SetHarvestedCount(0); + Debug.Log($"corn:{GameDataManager.GameData.CornSeed} {latestCount}"); + disapperCoroutine = this.CallWaitForSeconds(countDuration, () => + { + Reset(); + counterAnimator.SetTrigger(Disappear); + this.CallWaitForSeconds(.25f, () => + { + counterAnimator.transform.SetLocalScale(0); + }); + }); + }).AddTo(this); + } + + public void Initialize(int count) + { + counterAnimator.transform.SetLocalScale(0); + counterAnimator.SetTrigger(Disappear); + Reset(); + } + + private void Reset() + { + counter.ChangeValue(hasCountFormat, 0); + latestCount = 0; + flag = true; + } + + private void SetHarvestedCount(int count) + { + latestCount = count; + counter.CountUpAnimation($"{harvestedCountFormat}", latestCount, countDuration); + } + + public void AddHarvestedCount(int count) + { + latestCount += count; + counter.CountUpAnimation($"{harvestedCountFormat}", latestCount, countDuration); + } + + public void PlayEffect() + { + playEffectObserve.OnNext(default); + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs.meta b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs.meta new file mode 100644 index 00000000..b8e3e603 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 36e90b93a284494f950c1e35f9b68535 +timeCreated: 1634295489 \ No newline at end of file From 376d3713a432c8cadeee155e78c8668044ba3964 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 29 Oct 2021 16:51:08 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E3=82=AB=E3=82=A6=E3=83=B3=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E5=8B=95=E4=BD=9C=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/CornField/CornField.unity | 71 ++++++++++++++----- .../Scenes/CornField/Scripts/CornField.cs | 17 ++++- .../Scenes/CornField/Scripts/CornHarvester.cs | 7 +- .../CornField/Scripts/HarvestedCounterView.cs | 7 +- 4 files changed, 74 insertions(+), 28 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity index 7d55a05b..cc13094a 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity +++ b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity @@ -551,7 +551,6 @@ MonoBehaviour: harvestedSpawnTransform: {fileID: 1355152264} harvestedPrefab: {fileID: 2111766585493962378, guid: d52f3514ed7fd461b8ab77a202c122c6, type: 3} - harvestedSpawnTarget: {fileID: 0} thrust: 40 machineTarget: {fileID: 1491597820} cullCornRate: 0.9 @@ -756,10 +755,10 @@ RectTransform: m_Father: {fileID: 457045028} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 122.21785, y: -54} - m_SizeDelta: {x: 101.03571, y: 100} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &323920547 MonoBehaviour: @@ -1522,7 +1521,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: -32.99994, y: 15.999985} - m_SizeDelta: {x: 230.7357, y: 88} + m_SizeDelta: {x: 0, y: 88} m_Pivot: {x: 0, y: 1} --- !u!114 &457045029 MonoBehaviour: @@ -1906,7 +1905,7 @@ Camera: m_Depth: -1 m_CullingMask: serializedVersion: 2 - m_Bits: 23 + m_Bits: 4294967295 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -2306,6 +2305,7 @@ MonoBehaviour: m_EditorClassIdentifier: animationDuration: 0.5 fertilizerFinishWaitTime: 2.21 + cornSortingOrder: 40 uiVisibleController: {fileID: 1859409048} sideButtons: {fileID: 1735316554} promoteGrowthButton: {fileID: 730756546} @@ -2320,7 +2320,8 @@ MonoBehaviour: fertilizerButtonView: {fileID: 525465089} brotherFertilizerAnimation: {fileID: 715847677} counterView: {fileID: 1507187603938887411} - animationTarget: {fileID: 1373978114} + additionView: {fileID: 1106859982} + animationTarget: {fileID: 1881129199} plantLines: - {fileID: 1656378502} - {fileID: 1192216301} @@ -2673,9 +2674,9 @@ RectTransform: m_Father: {fileID: 457045028} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 39, y: -25} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 42} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &971086866 stripped @@ -3098,13 +3099,15 @@ GameObject: m_Component: - component: {fileID: 1106859980} - component: {fileID: 1106859981} + - component: {fileID: 1106859982} + - component: {fileID: 1106859983} m_Layer: 5 m_Name: StockCorn_addition_Animation m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &1106859980 RectTransform: m_ObjectHideFlags: 0 @@ -3144,6 +3147,44 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &1106859982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106859979} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 36e90b93a284494f950c1e35f9b68535, type: 3} + m_Name: + m_EditorClassIdentifier: + counterAnimator: {fileID: 1106859981} + counter: {fileID: 323920547} + triggerThrottle: 0.2 + countDuration: 0.5 + waitDisappeared: 3 +--- !u!223 &1106859983 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1106859979} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 1 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 39 + m_TargetDisplay: 0 --- !u!1 &1120224446 GameObject: m_ObjectHideFlags: 0 @@ -3747,12 +3788,6 @@ Transform: m_Father: {fileID: 282523123} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!224 &1373978114 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1507187602806663289, guid: 21599f8e6d1104a07b0b14b49f8c1429, - type: 3} - m_PrefabInstance: {fileID: 1507187603938887410} - m_PrefabAsset: {fileID: 0} --- !u!1 &1406886287 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index 67d31657..48721e5c 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -20,6 +20,7 @@ public class CornField : MonoBehaviour { [SerializeField] private float animationDuration = .3f; [SerializeField] private float fertilizerFinishWaitTime = 1f; + [SerializeField] private int cornSortingOrder = 40; [Space] [SerializeField] private UIVisibleController uiVisibleController; [SerializeField] private GameObject sideButtons; @@ -33,6 +34,7 @@ public class CornField : MonoBehaviour [SerializeField] private FertilizerButtonView fertilizerButtonView; [SerializeField] private BrotherFertilizerAnimation brotherFertilizerAnimation; [SerializeField] private HarvestedCounterView counterView; + [SerializeField] private HarvestedAdditionView additionView; [SerializeField] private Transform animationTarget; [Space] [SerializeField] private List plantLines = new List(); @@ -88,6 +90,7 @@ public class CornField : MonoBehaviour TransitionManager.Instance.LoadSceneAdditive(GameScenes.StoreLevel); }).AddTo(this); counterView.Initialize(gameData.CornSeed); + additionView.Initialize(0); SetData(); // 畑リセット @@ -221,7 +224,10 @@ public class CornField : MonoBehaviour this.CallWaitForSeconds(animationStartDelay * Mathf.FloorToInt((float)j++ / animationDivisor), () => { harvested.enabled = false; - harvested.GetComponentInChildren().sortingOrder = 40; + var spriteRenderer = harvested.GetComponentInChildren(); + spriteRenderer.sortingOrder = cornSortingOrder; + // Layer 5:UI 決め打ち + spriteRenderer.gameObject.layer = 5; var beginPos = harvested.transform.position; this.CallLerp(animationDuration, f => { @@ -229,15 +235,20 @@ public class CornField : MonoBehaviour }, () => { Destroy(harvested.gameObject); - counterView.PlayEffect(); + additionView.PlayEffect(); }); }); }); this.CallWaitForSeconds(animationDuration, () => { - counterView.SetHarvestedCount(x.count); + additionView.AddHarvestedCount(x.count); }); }).AddTo(this); + additionView.EndObservable.Subscribe(x => + { + counterView.PlayEffect(); + counterView.SetHarvestedCount(gameData.CornSeed); + }).AddTo(this); } public void SetCornField(bool useFertilizer = false) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornHarvester.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornHarvester.cs index 6b056feb..783fdb63 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornHarvester.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornHarvester.cs @@ -13,10 +13,10 @@ public class CornHarvester : MonoBehaviour private static readonly int PutOut = Animator.StringToHash("PutOut"); [SerializeField] private Transform harvestedSpawnTransform; [SerializeField] private GameObject harvestedPrefab; - [SerializeField] private GameObject harvestedSpawnTarget; [SerializeField] private float thrust = 100f; [SerializeField] private Transform machineTarget; // 収穫演出で出るコーンの数を制限 + [Space] [SerializeField] private float cullCornRate = .8f; [SerializeField] private int firstCornLimit = 200; [SerializeField] private int secondCornLimit = 300; @@ -45,7 +45,7 @@ public class CornHarvester : MonoBehaviour { machineAnimator?.SetTrigger(Wait); } - finishHarvested.OnNext((x.Current, list)); + finishHarvested.OnNext((x.Current - x.Previous, list)); })); }).AddTo(this); } @@ -74,6 +74,9 @@ public class CornHarvester : MonoBehaviour yield return null; } callback?.Invoke(finishedList); +#if UNITY_EDITOR + Debug.Log($"now:{harvestedSpawnTransform.childCount}"); +#endif } public void AddCount(int value) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedCounterView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedCounterView.cs index afd4cdc6..08a4bfd3 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedCounterView.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedCounterView.cs @@ -10,9 +10,7 @@ public class HarvestedCounterView : MonoBehaviour private static readonly int Add = Animator.StringToHash("Add"); [SerializeField] private Animator counterAnimator; [SerializeField] private TextWithCountUpInt counter; - private static readonly string harvestedCountFormat = "+{0}"; private static readonly string hasCountFormat = "{0}"; - private string hasCountText; private static readonly float duration = .5f; private readonly Subject playEffectObserve = new Subject(); @@ -29,13 +27,12 @@ public class HarvestedCounterView : MonoBehaviour public void Initialize(int count) { - hasCountText = string.Format(hasCountFormat, count.ToString()); - counter.ChangeValue(hasCountText, 0); + counter.ChangeValue(hasCountFormat, count); } public void SetHarvestedCount(int count) { - counter.CountUpAnimation($"{hasCountText}{harvestedCountFormat}", count, duration); + counter.CountUpAnimation(hasCountFormat, count, duration); } public void PlayEffect() From c19d676afaee8f38c6bb4c44f8b7a1312f9330ce Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 29 Oct 2021 17:13:11 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E3=82=AB=E3=82=A6=E3=83=B3=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E3=82=92=E8=82=A5=E6=96=99=E6=BC=94=E5=87=BA=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs | 3 +++ .../MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index 48721e5c..f3be40f8 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -118,6 +118,7 @@ public class CornField : MonoBehaviour GameDataManager.SaveGameData(); isFertilizing = true; + additionView.IsStopDisapper = true; SoundManager.Instance.PlayBGM("bgm_fertilizer"); brotherFertilizerAnimation.StartAnimation(); // button非表示 @@ -167,6 +168,8 @@ public class CornField : MonoBehaviour this.CallWaitForSeconds(fertilizerFinishWaitTime, () => { isFertilizing = false; + additionView.IsStopDisapper = false; + additionView.PlayEffect(); // ボタン表示復活 promoteGrowthButton.gameObject.SetActive(true); sideButtons.SetActive(true); diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs index 7b328789..eedc0e5c 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs @@ -20,6 +20,7 @@ public class HarvestedAdditionView : MonoBehaviour [SerializeField] private float countDuration = .4f; [Tooltip("コーンが来なくなってから待つ時間")] [SerializeField] private float waitDisappeared = 2f; + public bool IsStopDisapper; private static readonly string harvestedCountFormat = "+{0}"; private static readonly string hasCountFormat = "{0}"; private readonly Subject playEffectObserve = new Subject(); @@ -59,11 +60,11 @@ public class HarvestedAdditionView : MonoBehaviour }).AddTo(this); playEffectObserve .Throttle(TimeSpan.FromSeconds(waitDisappeared)) + .Where(_ => !IsStopDisapper) .Subscribe(_ => { endObservable.OnNext(latestCount); SetHarvestedCount(0); - Debug.Log($"corn:{GameDataManager.GameData.CornSeed} {latestCount}"); disapperCoroutine = this.CallWaitForSeconds(countDuration, () => { Reset(); From 15c6b856b3319a614f085c6aa0f782acef2495b3 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 29 Oct 2021 18:04:31 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=E3=82=AB=E3=82=A6=E3=83=B3=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/CornField/CornField.unity | 132 +++++++++++------- .../Scenes/CornField/Scripts/CornField.cs | 8 +- .../Scripts/HarvestedAdditionView.cs | 11 +- 3 files changed, 92 insertions(+), 59 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity index cc13094a..c515171c 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity +++ b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity @@ -801,6 +801,82 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 323920545} m_CullTransparentMesh: 0 +--- !u!1 &347092270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 347092271} + - component: {fileID: 347092273} + - component: {fileID: 347092272} + m_Layer: 5 + m_Name: StockCorn_addition + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &347092271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 347092270} + 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_Children: + - {fileID: 1106859980} + m_Father: {fileID: 387414334} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 66, y: -241} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &347092272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 347092270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 36e90b93a284494f950c1e35f9b68535, type: 3} + m_Name: + m_EditorClassIdentifier: + counterAnimator: {fileID: 1106859981} + counter: {fileID: 323920547} + triggerThrottle: 0.2 + countDuration: 0.5 + waitDisappeared: 3 +--- !u!223 &347092273 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 347092270} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 1 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 39 + m_TargetDisplay: 0 --- !u!1 &355725951 GameObject: m_ObjectHideFlags: 0 @@ -2320,7 +2396,7 @@ MonoBehaviour: fertilizerButtonView: {fileID: 525465089} brotherFertilizerAnimation: {fileID: 715847677} counterView: {fileID: 1507187603938887411} - additionView: {fileID: 1106859982} + additionView: {fileID: 347092272} animationTarget: {fileID: 1881129199} plantLines: - {fileID: 1656378502} @@ -3099,8 +3175,6 @@ GameObject: m_Component: - component: {fileID: 1106859980} - component: {fileID: 1106859981} - - component: {fileID: 1106859982} - - component: {fileID: 1106859983} m_Layer: 5 m_Name: StockCorn_addition_Animation m_TagString: Untagged @@ -3120,14 +3194,14 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 457045028} - m_Father: {fileID: 387414334} - m_RootOrder: 7 + m_Father: {fileID: 347092271} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 66, y: -241} + 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: 0, y: 0} - m_Pivot: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0.5} --- !u!95 &1106859981 Animator: serializedVersion: 3 @@ -3147,44 +3221,6 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorControllerStateOnDisable: 0 ---- !u!114 &1106859982 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106859979} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 36e90b93a284494f950c1e35f9b68535, type: 3} - m_Name: - m_EditorClassIdentifier: - counterAnimator: {fileID: 1106859981} - counter: {fileID: 323920547} - triggerThrottle: 0.2 - countDuration: 0.5 - waitDisappeared: 3 ---- !u!223 &1106859983 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1106859979} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 2 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 1 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 39 - m_TargetDisplay: 0 --- !u!1 &1120224446 GameObject: m_ObjectHideFlags: 0 @@ -14773,7 +14809,7 @@ PrefabInstance: - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, type: 3} propertyPath: m_RootOrder - value: 9 + value: 10 objectReference: {fileID: 0} - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, type: 3} diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index f3be40f8..76aa4df8 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -203,7 +203,7 @@ public class CornField : MonoBehaviour // 収穫カウンター+吸収演出 cornHarvester.FinishHarvested - .Scan((list, newList) => (newList.count, list.colliders.Concat(newList.colliders).ToList())) + .Scan((list, newList) => (list.count += newList.count, list.colliders.Concat(newList.colliders).ToList())) .Throttle(TimeSpan.FromSeconds(countThrottle)) .Take(1) .RepeatUntilDestroy(this) @@ -247,10 +247,12 @@ public class CornField : MonoBehaviour additionView.AddHarvestedCount(x.count); }); }).AddTo(this); - additionView.EndObservable.Subscribe(x => + var counterTotalCorn = gameData.CornSeed; + additionView.EndObservable.Subscribe(addCount => { + counterTotalCorn += addCount; counterView.PlayEffect(); - counterView.SetHarvestedCount(gameData.CornSeed); + counterView.SetHarvestedCount(counterTotalCorn); }).AddTo(this); } diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs index eedc0e5c..6220e2d6 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/HarvestedAdditionView.cs @@ -20,7 +20,7 @@ public class HarvestedAdditionView : MonoBehaviour [SerializeField] private float countDuration = .4f; [Tooltip("コーンが来なくなってから待つ時間")] [SerializeField] private float waitDisappeared = 2f; - public bool IsStopDisapper; + [NonSerialized] public bool IsStopDisapper; private static readonly string harvestedCountFormat = "+{0}"; private static readonly string hasCountFormat = "{0}"; private readonly Subject playEffectObserve = new Subject(); @@ -38,10 +38,10 @@ public class HarvestedAdditionView : MonoBehaviour .ThrottleFirst(TimeSpan.FromSeconds(triggerThrottle)) .Subscribe(_ => { + transform.SetLocalScale(1); this.SafeStopCoroutine(disapperCoroutine); if (flag) { - counterAnimator.transform.SetLocalScale(1); counterAnimator.SetTrigger(Appear); } else @@ -69,18 +69,13 @@ public class HarvestedAdditionView : MonoBehaviour { Reset(); counterAnimator.SetTrigger(Disappear); - this.CallWaitForSeconds(.25f, () => - { - counterAnimator.transform.SetLocalScale(0); - }); }); }).AddTo(this); } public void Initialize(int count) { - counterAnimator.transform.SetLocalScale(0); - counterAnimator.SetTrigger(Disappear); + transform.SetLocalScale(0); Reset(); }