Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop

This commit is contained in:
hirokei 2021-10-29 18:06:46 +09:00
commit 189ed1c365
8 changed files with 495 additions and 43 deletions

View File

@ -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

View File

@ -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

View File

@ -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:
@ -802,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
@ -1522,7 +1597,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 +1981,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 +2381,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
animationDuration: 0.5
fertilizerFinishWaitTime: 2.21
cornSortingOrder: 40
uiVisibleController: {fileID: 1859409048}
sideButtons: {fileID: 1735316554}
promoteGrowthButton: {fileID: 730756546}
@ -2320,7 +2396,8 @@ MonoBehaviour:
fertilizerButtonView: {fileID: 525465089}
brotherFertilizerAnimation: {fileID: 715847677}
counterView: {fileID: 1507187603938887411}
animationTarget: {fileID: 1373978114}
additionView: {fileID: 347092272}
animationTarget: {fileID: 1881129199}
plantLines:
- {fileID: 1656378502}
- {fileID: 1192216301}
@ -2673,9 +2750,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
@ -3104,7 +3181,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &1106859980
RectTransform:
m_ObjectHideFlags: 0
@ -3117,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
@ -3747,12 +3824,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
@ -14738,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}

View File

@ -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<PlantLine> plantLines = new List<PlantLine>();
@ -88,6 +90,7 @@ public class CornField : MonoBehaviour
TransitionManager.Instance.LoadSceneAdditive(GameScenes.StoreLevel);
}).AddTo(this);
counterView.Initialize(gameData.CornSeed);
additionView.Initialize(0);
SetData();
// 畑リセット
@ -115,6 +118,7 @@ public class CornField : MonoBehaviour
GameDataManager.SaveGameData();
isFertilizing = true;
additionView.IsStopDisapper = true;
SoundManager.Instance.PlayBGM("bgm_fertilizer");
brotherFertilizerAnimation.StartAnimation();
// button非表示
@ -164,6 +168,8 @@ public class CornField : MonoBehaviour
this.CallWaitForSeconds(fertilizerFinishWaitTime, () =>
{
isFertilizing = false;
additionView.IsStopDisapper = false;
additionView.PlayEffect();
// ボタン表示復活
promoteGrowthButton.gameObject.SetActive(true);
sideButtons.SetActive(true);
@ -197,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)
@ -221,7 +227,10 @@ public class CornField : MonoBehaviour
this.CallWaitForSeconds(animationStartDelay * Mathf.FloorToInt((float)j++ / animationDivisor), () =>
{
harvested.enabled = false;
harvested.GetComponentInChildren<SpriteRenderer>().sortingOrder = 40;
var spriteRenderer = harvested.GetComponentInChildren<SpriteRenderer>();
spriteRenderer.sortingOrder = cornSortingOrder;
// Layer 5:UI 決め打ち
spriteRenderer.gameObject.layer = 5;
var beginPos = harvested.transform.position;
this.CallLerp(animationDuration, f =>
{
@ -229,15 +238,22 @@ public class CornField : MonoBehaviour
}, () =>
{
Destroy(harvested.gameObject);
counterView.PlayEffect();
additionView.PlayEffect();
});
});
});
this.CallWaitForSeconds(animationDuration, () =>
{
counterView.SetHarvestedCount(x.count);
additionView.AddHarvestedCount(x.count);
});
}).AddTo(this);
var counterTotalCorn = gameData.CornSeed;
additionView.EndObservable.Subscribe(addCount =>
{
counterTotalCorn += addCount;
counterView.PlayEffect();
counterView.SetHarvestedCount(counterTotalCorn);
}).AddTo(this);
}
public void SetCornField(bool useFertilizer = false)

View File

@ -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)

View File

@ -0,0 +1,105 @@
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;
[NonSerialized] public bool IsStopDisapper;
private static readonly string harvestedCountFormat = "{0}";
private static readonly string hasCountFormat = "{0}";
private readonly Subject<Unit> playEffectObserve = new Subject<Unit>();
private bool flag;
private int latestCount;
public IObservable<int> EndObservable => endObservable;
private readonly Subject<int> endObservable = new Subject<int>();
private Coroutine disapperCoroutine;
private void Start()
{
playEffectObserve.AddTo(this);
playEffectObserve
.ThrottleFirst(TimeSpan.FromSeconds(triggerThrottle))
.Subscribe(_ =>
{
transform.SetLocalScale(1);
this.SafeStopCoroutine(disapperCoroutine);
if (flag)
{
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))
.Where(_ => !IsStopDisapper)
.Subscribe(_ =>
{
endObservable.OnNext(latestCount);
SetHarvestedCount(0);
disapperCoroutine = this.CallWaitForSeconds(countDuration, () =>
{
Reset();
counterAnimator.SetTrigger(Disappear);
});
}).AddTo(this);
}
public void Initialize(int count)
{
transform.SetLocalScale(0);
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);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 36e90b93a284494f950c1e35f9b68535
timeCreated: 1634295489

View File

@ -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<Unit> playEffectObserve = new Subject<Unit>();
@ -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()