diff --git a/Assets/Scenes/Orbs.unity b/Assets/Scenes/Orbs.unity index a23fe8fb2bb571ca5f6f90cb5ff029e2c7d3a1f9..84e0b784470c60d59f09758a6d26b39b6303edbe 100644 --- a/Assets/Scenes/Orbs.unity +++ b/Assets/Scenes/Orbs.unity @@ -1552,8 +1552,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: orbPrefab: - - {fileID: 0} - - {fileID: 0} + - {fileID: 244665682372652918, guid: 5b468d7bc77f27141b63444ccee67154, type: 3} + - {fileID: 2315383438013165124, guid: 68f3cc2e796b38b4b9ce1a8a149d8b7a, type: 3} --- !u!4 &1044198781 Transform: m_ObjectHideFlags: 0 @@ -2419,11 +2419,12 @@ MonoBehaviour: playerSpeed: {fileID: 1739364336} playerPower: {fileID: 1739364335} player: {fileID: 1739364337} - orb: {fileID: 0} + orb: {fileID: 244665682372652918, guid: 5b468d7bc77f27141b63444ccee67154, type: 3} spawnOrb: 0 spawnTime: 40 spawnPoints: - {fileID: 2099138956} + orbAmount: 1 factory: {fileID: 1044198780} --- !u!4 &1572031388 Transform: @@ -2454,11 +2455,12 @@ MonoBehaviour: playerSpeed: {fileID: 1739364336} playerPower: {fileID: 1739364335} player: {fileID: 1739364337} - orb: {fileID: 0} + orb: {fileID: 2315383438013165124, guid: 68f3cc2e796b38b4b9ce1a8a149d8b7a, type: 3} spawnOrb: 1 spawnTime: 40 spawnPoints: - {fileID: 2018607513} + orbAmount: 1 factory: {fileID: 1044198780} --- !u!1001 &1687477066 PrefabInstance: diff --git a/Assets/Scripts/Managers/OrbManager.cs b/Assets/Scripts/Managers/OrbManager.cs index 09af5c0d87c41acd5b81860847ca9fe18d23b4a6..68cb5b322e4d66290f39dee5110b4412cf0f933d 100644 --- a/Assets/Scripts/Managers/OrbManager.cs +++ b/Assets/Scripts/Managers/OrbManager.cs @@ -12,13 +12,14 @@ public class OrbManager : MonoBehaviour public int spawnOrb; public float spawnTime = 40f; public Transform[] spawnPoints; + public int orbAmount = 1; [SerializeField] MonoBehaviour factory; IFactory Factory { get { return factory as IFactory; } } void Start(){ - //Mengeksekusi fungs Spawn setiap beberapa detik sesui dengan nilai spawnTime + //Mengeksekusi fungsi Spawn setiap beberapa detik sesui dengan nilai spawnTime InvokeRepeating("Spawn", spawnTime, spawnTime); } @@ -28,12 +29,17 @@ public class OrbManager : MonoBehaviour return; } + if (orbAmount >= 8) + { + return; + } + // spawn di depan player, can be outside of world - float playerPosX = player.transform.position.x; - Vector3 playerDirection = player.transform.forward; - Quaternion playerRotation = player.transform.rotation; - float spawnDistance = 15; - Vector3 spawnPos = new Vector3(playerPosX, 1, 0) + playerDirection*spawnDistance; + // float playerPosX = player.transform.position.x; + // Vector3 playerDirection = player.transform.forward; + // Quaternion playerRotation = player.transform.rotation; + // float spawnDistance = 15; + // Vector3 spawnPos = new Vector3(playerPosX, 1, 0) + playerDirection*spawnDistance; // spawn randomly di dalem screen bound, masi ada dissolving bug // float distFromCamera = 2f; @@ -41,10 +47,15 @@ public class OrbManager : MonoBehaviour // Vector3 spawnPos = Camera.main.ViewportToWorldPoint(pos); // Menduplikasi orb - Instantiate(Factory.FactoryMethod(spawnOrb), spawnPos, Quaternion.identity); + // Instantiate(Factory.FactoryMethod(spawnOrb), spawnPos, Quaternion.identity); // spawn fully random, can be outside of camera bound // int spawnPointIndex = Random.Range (0, spawnPoints.Length); // Instantiate(Factory.FactoryMethod(spawnOrb), spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation); + Vector3 position = new Vector3(Random.Range(-10.0F, 10.0F), 1, Random.Range(-10.0F, 10.0F)); + Instantiate (Factory.FactoryMethod(spawnOrb), position, Quaternion.identity); + + orbAmount++; + } }