From 4e8abbff3ca1325341abbad522d2d0e8097410ba Mon Sep 17 00:00:00 2001 From: go38coz Date: Sun, 7 Jun 2026 01:26:00 +0200 Subject: [PATCH] Made EndTree --- Game/Assets/Prefabs/PlayerDroplet.prefab | 21 ++++++ Game/Assets/Prefabs/Tree.prefab | 29 ++++++++ Game/Assets/Scenes/0_MainScene.unity | 88 +++++++----------------- Game/Assets/Scripts/PatternSelecter.cs | 7 -- Game/Assets/Scripts/TreeSpawner.cs | 36 ++++++++-- 5 files changed, 106 insertions(+), 75 deletions(-) diff --git a/Game/Assets/Prefabs/PlayerDroplet.prefab b/Game/Assets/Prefabs/PlayerDroplet.prefab index f76e71a..8b641e6 100644 --- a/Game/Assets/Prefabs/PlayerDroplet.prefab +++ b/Game/Assets/Prefabs/PlayerDroplet.prefab @@ -15,6 +15,7 @@ GameObject: - component: {fileID: -8535381027169538} - component: {fileID: 5971260404453589572} - component: {fileID: 4218697106962905645} + - component: {fileID: 1010887118096952450} m_Layer: 0 m_Name: PlayerDroplet m_TagString: Player @@ -189,6 +190,7 @@ MonoBehaviour: dashingCooldown: 1 tr: {fileID: 0} animator: {fileID: 4218697106962905645} + fallingAnimationVelocityThreshold: 3 --- !u!111 &5971260404453589572 Animation: m_ObjectHideFlags: 0 @@ -229,3 +231,22 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &1010887118096952450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141180002423843430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b3b9fc97a2d39d2d84c4be43a79247a, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DamageHandler + threshold: 10 + multiplier: 0.05 + maxHealth: 1 + health: 0 + minSize: 0.4 + maxFallingTime: 2 + fallingAnimTreshold: 0.2 diff --git a/Game/Assets/Prefabs/Tree.prefab b/Game/Assets/Prefabs/Tree.prefab index 92e60e1..df4bd06 100644 --- a/Game/Assets/Prefabs/Tree.prefab +++ b/Game/Assets/Prefabs/Tree.prefab @@ -11,6 +11,8 @@ GameObject: - component: {fileID: 3683337692723927349} - component: {fileID: 8100904432411870408} - component: {fileID: 8092102445200365313} + - component: {fileID: 5615831806268684012} + - component: {fileID: 2764455090306147063} m_Layer: 0 m_Name: Tree m_TagString: Untagged @@ -114,3 +116,30 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &5615831806268684012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8851845362353968682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e2ad5a7116f03541a6489c22953c195, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::PatternSelecter +--- !u!114 &2764455090306147063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8851845362353968682} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 021d37d1b6e71b143adc6f4842f7d76c, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::TreeSpawner + treePrefab: {fileID: 8851845362353968682} + treeEndPrefab: {fileID: 8851845362353968682, guid: 04f205e87b1c6a220854a46b28504af3, type: 3} + maxTreeCount: 8 diff --git a/Game/Assets/Scenes/0_MainScene.unity b/Game/Assets/Scenes/0_MainScene.unity index 05e8035..13df40f 100644 --- a/Game/Assets/Scenes/0_MainScene.unity +++ b/Game/Assets/Scenes/0_MainScene.unity @@ -3113,38 +3113,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 8851845362353968682, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} m_PrefabInstance: {fileID: 1681788161} m_PrefabAsset: {fileID: 0} ---- !u!114 &526821483 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 526821479} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 021d37d1b6e71b143adc6f4842f7d76c, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::TreeSpawner - treePrefab: {fileID: 526821479} - player: {fileID: 662084242} --- !u!4 &526821486 stripped Transform: m_CorrespondingSourceObject: {fileID: 3683337692723927349, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} m_PrefabInstance: {fileID: 1681788161} m_PrefabAsset: {fileID: 0} ---- !u!114 &526821489 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 526821479} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8e2ad5a7116f03541a6489c22953c195, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::PatternSelecter - lastTreeNumber: 2 --- !u!1001 &527539761 PrefabInstance: m_ObjectHideFlags: 0 @@ -3781,11 +3754,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: be3a9de7cfa00b3c4b66acee4ff178f6, type: 3} ---- !u!1 &614828868 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 2141180002423843430, guid: d56297e435f8410a584581d73d99d2e4, type: 3} - m_PrefabInstance: {fileID: 1445156949} - m_PrefabAsset: {fileID: 0} --- !u!4 &616256297 stripped Transform: m_CorrespondingSourceObject: {fileID: 9198730630941053147, guid: 09646d5b25a07904aa2ddf7399b3b075, type: 3} @@ -4127,25 +4095,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 6566899495513628888, guid: d56297e435f8410a584581d73d99d2e4, type: 3} m_PrefabInstance: {fileID: 1445156949} m_PrefabAsset: {fileID: 0} ---- !u!114 &662084249 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 614828868} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2b3b9fc97a2d39d2d84c4be43a79247a, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::DamageHandler - threshold: 10 - multiplier: 0.05 - maxHealth: 1 - health: 0 - minSize: 0.4 - maxFallingTime: 2 - fallingAnimTreshold: 0.2 --- !u!1001 &687478031 PrefabInstance: m_ObjectHideFlags: 0 @@ -8314,6 +8263,18 @@ PrefabInstance: propertyPath: m_ConstrainProportionsScale value: 1 objectReference: {fileID: 0} + - target: {fileID: 7565136154044711909, guid: d56297e435f8410a584581d73d99d2e4, type: 3} + propertyPath: treePrefab + value: + objectReference: {fileID: 526821479} + - target: {fileID: 7565136154044711909, guid: d56297e435f8410a584581d73d99d2e4, type: 3} + propertyPath: maxTreeCount + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7565136154044711909, guid: d56297e435f8410a584581d73d99d2e4, type: 3} + propertyPath: treeEndPrefab + value: + objectReference: {fileID: 8851845362353968682, guid: 04f205e87b1c6a220854a46b28504af3, type: 3} - target: {fileID: 8298564220872302505, guid: d56297e435f8410a584581d73d99d2e4, type: 3} propertyPath: m_SortingLayer value: 0 @@ -8329,10 +8290,7 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 2141180002423843430, guid: d56297e435f8410a584581d73d99d2e4, type: 3} - insertIndex: -1 - addedObject: {fileID: 662084249} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d56297e435f8410a584581d73d99d2e4, type: 3} --- !u!1001 &1459355171 PrefabInstance: @@ -9744,6 +9702,14 @@ PrefabInstance: propertyPath: m_LocalPosition.y value: -2 objectReference: {fileID: 0} + - target: {fileID: 2764455090306147063, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} + propertyPath: player + value: + objectReference: {fileID: 662084242} + - target: {fileID: 2764455090306147063, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} + propertyPath: maxTreeCount + value: 2 + objectReference: {fileID: 0} - target: {fileID: 3683337692723927349, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} propertyPath: m_LocalScale.x value: 1 @@ -9796,6 +9762,10 @@ PrefabInstance: propertyPath: m_SortingOrder value: 2 objectReference: {fileID: 0} + - target: {fileID: 8420612515300817353, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} + propertyPath: player + value: + objectReference: {fileID: 662084242} - target: {fileID: 8851845362353968682, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} propertyPath: m_Name value: Tree @@ -9836,13 +9806,7 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 3683337692723927349, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} insertIndex: -1 addedObject: {fileID: 1293808330} - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 8851845362353968682, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} - insertIndex: -1 - addedObject: {fileID: 526821483} - - targetCorrespondingSourceObject: {fileID: 8851845362353968682, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} - insertIndex: -1 - addedObject: {fileID: 526821489} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 63a81e9c39aed7249bdeb557c0054e6c, type: 3} --- !u!1001 &1684265244 PrefabInstance: diff --git a/Game/Assets/Scripts/PatternSelecter.cs b/Game/Assets/Scripts/PatternSelecter.cs index 97c4f71..e8eb1fe 100644 --- a/Game/Assets/Scripts/PatternSelecter.cs +++ b/Game/Assets/Scripts/PatternSelecter.cs @@ -3,8 +3,6 @@ using UnityEngine; public class PatternSelecter : MonoBehaviour { - [SerializeField] - private int lastTreeNumber = 8; void Start() { @@ -17,11 +15,6 @@ public class PatternSelecter : MonoBehaviour { transform.GetChild(0).gameObject.SetActive(true); } - - else if (TreeSpawner.treeCount == lastTreeNumber) - { - transform.GetChild(transform.childCount - 1).gameObject.SetActive(true); - } else { int randomIndex = Random.Range(1, transform.childCount - 1); diff --git a/Game/Assets/Scripts/TreeSpawner.cs b/Game/Assets/Scripts/TreeSpawner.cs index 0c8a83c..68ab776 100644 --- a/Game/Assets/Scripts/TreeSpawner.cs +++ b/Game/Assets/Scripts/TreeSpawner.cs @@ -1,35 +1,59 @@ +using System; using UnityEngine; public class TreeSpawner : MonoBehaviour { - public GameObject treePrefab; + [SerializeField] + private GameObject treePrefab; + [SerializeField] + private GameObject treeEndPrefab; public Transform player; + [SerializeField] + private static int maxTreeCount = 1; private bool hasSpawned = false; public static int treeCount; + private SpriteRenderer spriteRenderer; + + private void Start() + { + spriteRenderer = GetComponent(); + } + void Update() { - if (hasSpawned == false) + if (hasSpawned == false && treeCount < maxTreeCount) { if (player.position.y < transform.position.y - 3f) { hasSpawned = true; - float treeHeight = GetComponent().bounds.size.y; + float treeHeight = spriteRenderer.bounds.size.y; Vector3 spawnPos = transform.position + Vector3.down * treeHeight + new Vector3(0, 0.2f, 0); - + treeCount++; - GameObject newTree = Instantiate(treePrefab, spawnPos, Quaternion.identity); + Debug.Log($"Spawned Treee{treeCount}"); + if(treeCount == maxTreeCount) + { + spawnPos += new Vector3(0.27f,0.54f,0); + Instantiate(treeEndPrefab, spawnPos, Quaternion.identity); + } + else Instantiate(treePrefab, spawnPos, Quaternion.identity); } } // Delete trees that are far above the player if (player.position.y < transform.position.y - 40f) { - Destroy(gameObject); + gameObject.SetActive(false); + } + else + { + gameObject.SetActive(true); } } + } \ No newline at end of file