収穫済みコーンのカウントと演出を追加

This commit is contained in:
kimura 2021-07-26 18:20:50 +09:00
parent aff9c76696
commit 4845dc8585
3 changed files with 410 additions and 45 deletions

View File

@ -1,6 +1,40 @@
using System;
using System.Linq;
using TMPro;
using UniRx;
using UnityEngine;
public class CornHarvester : MonoBehaviour
{
[SerializeField] private TextMeshPro cornCounter;
[SerializeField] private GameObject harvestedPrefab;
private float duration = .5f;
private string counterFormat = "{0}";
private Coroutine animationCoroutine;
private readonly ReactiveProperty<int> count = new ReactiveProperty<int>(0);
private void Start()
{
count.AddTo(this);
cornCounter.text = "0";
count.BatchFrame().Select(x => x.Sum()).Pairwise().Subscribe(x =>
{
this.SafeStopCoroutine(animationCoroutine);
animationCoroutine = this.CallLerpSmooth(duration, lerp => {
cornCounter.text = string.Format(counterFormat, (int)Mathf.Lerp(x.Previous, x.Current, lerp));
});
for (int i = 0; i < x.Current; i++)
{
var corn = Instantiate(harvestedPrefab, cornCounter.transform.position, Quaternion.identity);
corn.GetComponent<Rigidbody2D>().AddForce(Vector2.down * 20f, ForceMode2D.Impulse);
}
}).AddTo(this);
}
public void AddCount(int value)
{
count.Value += value;
}
}

View File

@ -172,6 +172,182 @@ Transform:
m_Father: {fileID: 1501215306}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &242576838
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 242576839}
- component: {fileID: 242576842}
- component: {fileID: 242576841}
- component: {fileID: 242576840}
m_Layer: 0
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &242576839
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 242576838}
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: []
m_Father: {fileID: 2138129848}
m_RootOrder: 0
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.8}
m_SizeDelta: {x: 1.8557076, y: 1.0995677}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &242576840
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 242576838}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 999
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 1ecb91d9b4f7d1b4d9ac80b14e928555, type: 2}
m_sharedMaterial: {fileID: 5374284371091958195, guid: 1ecb91d9b4f7d1b4d9ac80b14e928555,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4283487482
m_fontColor: {r: 0.98039216, g: 0.83137256, b: 0.3137255, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 4.76
m_fontSizeBase: 4.76
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 2
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 1
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 0
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 242576842}
m_maskType: 0
_SortingLayerID: 0
_SortingOrder: 0
--- !u!222 &242576841
CanvasRenderer:
m_ObjectHideFlags: 2
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 242576838}
m_CullTransparentMesh: 0
--- !u!23 &242576842
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 242576838}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 5374284371091958195, guid: 1ecb91d9b4f7d1b4d9ac80b14e928555, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 27
--- !u!1 &282523122
GameObject:
m_ObjectHideFlags: 0
@ -181,6 +357,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 282523123}
- component: {fileID: 282523124}
m_Layer: 0
m_Name: machine
m_TagString: Untagged
@ -205,6 +382,19 @@ Transform:
m_Father: {fileID: 1501215306}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &282523124
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 282523122}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 126d56890a16475f8bb5bf49970a50c8, type: 3}
m_Name:
m_EditorClassIdentifier:
cornCounter: {fileID: 242576840}
--- !u!4 &371589523 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 8524901521850801685, guid: e642499b3643dab4ba05b02e8c6bde1c,
@ -234,6 +424,66 @@ PrefabInstance:
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1174152333972670061, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1174152333972670061, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1174152333972670061, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_SizeDelta.x
value: 91.25
objectReference: {fileID: 0}
- target: {fileID: 1174152333972670061, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 89.625
objectReference: {fileID: 0}
- target: {fileID: 1174152333972670061, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -25
objectReference: {fileID: 0}
- target: {fileID: 1174152334443072208, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_SizeDelta.x
value: 135.25
objectReference: {fileID: 0}
- target: {fileID: 1174152334443072209, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1174152334880891973, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1174152334880891973, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1174152334880891973, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_SizeDelta.x
value: 44
objectReference: {fileID: 0}
- target: {fileID: 1174152334880891973, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 22
objectReference: {fileID: 0}
- target: {fileID: 1174152334880891973, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -22
objectReference: {fileID: 0}
- target: {fileID: 3664916832310506794, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_AnchorMax.y
@ -414,6 +664,11 @@ PrefabInstance:
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4348639590627783772, guid: caaa748dbeed576499e8cae74d33f689,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: caaa748dbeed576499e8cae74d33f689, type: 3}
--- !u!1 &536970157
@ -615,6 +870,7 @@ MonoBehaviour:
harvestPrefab: {fileID: 8524901521850801684, guid: e642499b3643dab4ba05b02e8c6bde1c,
type: 3}
harvestInsertPosition: {fileID: 895001959}
cornHarvester: {fileID: 282523124}
plantLines: []
centerPlants:
- {fileID: 1059216306}
@ -754,6 +1010,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 371589523}
- {fileID: 2041127587}
m_Father: {fileID: 1501215306}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -983,6 +1240,26 @@ PrefabInstance:
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2975087781723360421, guid: 90ea860c4ec589d4aab99bfc127949f4,
type: 3}
propertyPath: m_text
value: x1
objectReference: {fileID: 0}
- target: {fileID: 2975087781723360421, guid: 90ea860c4ec589d4aab99bfc127949f4,
type: 3}
propertyPath: m_sharedMaterial
value:
objectReference: {fileID: 2100000, guid: 6b0ec8d08c1e64575b9889e8f2732bd0, type: 2}
- target: {fileID: 2975087781723360421, guid: 90ea860c4ec589d4aab99bfc127949f4,
type: 3}
propertyPath: m_HorizontalAlignment
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6894893683192387336, guid: 90ea860c4ec589d4aab99bfc127949f4,
type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 6b0ec8d08c1e64575b9889e8f2732bd0, type: 2}
- target: {fileID: 8144837015556047765, guid: 90ea860c4ec589d4aab99bfc127949f4,
type: 3}
propertyPath: m_AnchoredPosition.x
@ -1522,6 +1799,12 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &2041127587 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
m_PrefabInstance: {fileID: 3833948995124101854}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2138129847
GameObject:
m_ObjectHideFlags: 0
@ -1532,7 +1815,6 @@ GameObject:
m_Component:
- component: {fileID: 2138129848}
- component: {fileID: 2138129849}
- component: {fileID: 2138129851}
- component: {fileID: 2138129850}
m_Layer: 0
m_Name: machine_a
@ -1541,25 +1823,21 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2138129848
RectTransform:
--- !u!4 &2138129848
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2138129847}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalPosition: {x: 0, y: -4.88, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Children:
- {fileID: 242576839}
m_Father: {fileID: 282523123}
m_RootOrder: 0
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: -4.88}
m_SizeDelta: {x: 8.88, y: 6.38}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!212 &2138129849
SpriteRenderer:
m_ObjectHideFlags: 0
@ -1610,47 +1888,28 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &2138129850
MonoBehaviour:
--- !u!68 &2138129850
EdgeCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2138129847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 938a43f7855884176a5aafbe11ed912d, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Density: 1
m_Material: {fileID: 0}
m_Color: {r: 0.98039216, g: 0.83137256, b: 0.3137255, a: 1}
m_RaycastTarget: 0
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: b5532e9ce15694f55a0893a76a98cd78, type: 3}
m_FontSize: 50
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 5
m_MaxSize: 50
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 100
--- !u!222 &2138129851
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2138129847}
m_CullTransparentMesh: 0
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
m_EdgeRadius: 0.64
m_Points:
- {x: -3.931622, y: -1.2346358}
- {x: -3.2924247, y: -2.953443}
- {x: -1.7156212, y: -3.625627}
- {x: 1.7783345, y: -3.7068028}
- {x: 3.4502363, y: -2.8666859}
- {x: 3.9558334, y: -1.2588444}
--- !u!1001 &875275074606616260
PrefabInstance:
m_ObjectHideFlags: 0
@ -1829,3 +2088,72 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 90ea860c4ec589d4aab99bfc127949f4, type: 3}
--- !u!1001 &3833948995124101854
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 895001959}
m_Modifications:
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalPosition.x
value: 0.05
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalPosition.y
value: -3.6
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962375, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2111766585493962378, guid: d52f3514ed7fd461b8ab77a202c122c6,
type: 3}
propertyPath: m_Name
value: HarvestedCorn
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d52f3514ed7fd461b8ab77a202c122c6, type: 3}

View File

@ -11,7 +11,8 @@ public class CornField : MonoBehaviour
{
[SerializeField] private Button promoteGrowthButton;
[SerializeField] private GameObject harvestPrefab;
[SerializeField] private Transform harvestInsertPosition;
[SerializeField] private Transform harvestInsertPosition;
[SerializeField] private CornHarvester cornHarvester;
[Space]
[SerializeField] private List<PlantLine> plantLines = new List<PlantLine>();
[SerializeField] private List<CornSeedling> centerPlants = new List<CornSeedling>();
@ -65,6 +66,8 @@ public class CornField : MonoBehaviour
harvest.transform.position = Vector3.Lerp(beginPos, harvestInsertPosition.position, f.EaseInCubic());
}, () =>
{
var seedCount = 25;
cornHarvester.AddCount(seedCount);
Destroy(harvest);
});
});