Adding spinning treat spawner
This commit is contained in:
@@ -2642,6 +2642,58 @@ PrefabInstance:
|
|||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
m_AddedComponents: []
|
m_AddedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 99cce68fc82caea44b5a140697be00a8, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 99cce68fc82caea44b5a140697be00a8, type: 3}
|
||||||
|
--- !u!1 &2200000000
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2200000001}
|
||||||
|
- component: {fileID: 2200000002}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Treat Spawner Center
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &2200000001
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2200000000}
|
||||||
|
serializedVersion: 2
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &2200000002
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2200000000}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 14b0bf07aa1abc44a8ebd00cecacd6f4, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::Spawner
|
||||||
|
objectToSpawn: {fileID: 262983251238298495, guid: 80c527a86ad6fc34dbc73ee80c1f2951, type: 3}
|
||||||
|
spawnInterval: 5
|
||||||
|
maxAlive: 0
|
||||||
|
spawnOnStart: 1
|
||||||
|
repeatSpawns: 1
|
||||||
|
launchForce: 4
|
||||||
|
launchRandomAngle: 360
|
||||||
|
spinSpeed: 180
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2671,3 +2723,4 @@ SceneRoots:
|
|||||||
- {fileID: 375061916}
|
- {fileID: 375061916}
|
||||||
- {fileID: 2100000001}
|
- {fileID: 2100000001}
|
||||||
- {fileID: 2100000101}
|
- {fileID: 2100000101}
|
||||||
|
- {fileID: 2200000001}
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ public class Spawner : MonoBehaviour
|
|||||||
[SerializeField] private int maxAlive = 0;
|
[SerializeField] private int maxAlive = 0;
|
||||||
[SerializeField] private bool spawnOnStart = true;
|
[SerializeField] private bool spawnOnStart = true;
|
||||||
[SerializeField] private bool repeatSpawns = true;
|
[SerializeField] private bool repeatSpawns = true;
|
||||||
|
[SerializeField] private float launchForce = 0f;
|
||||||
|
[SerializeField] private float launchRandomAngle = 0f;
|
||||||
|
[SerializeField] private float spinSpeed = 0f;
|
||||||
|
|
||||||
private readonly List<GameObject> spawned = new List<GameObject>();
|
private readonly List<GameObject> spawned = new List<GameObject>();
|
||||||
|
|
||||||
@@ -31,6 +34,14 @@ public class Spawner : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (spinSpeed != 0f)
|
||||||
|
{
|
||||||
|
transform.Rotate(0f, 0f, spinSpeed * Time.deltaTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private IEnumerator SpawnRoutine()
|
private IEnumerator SpawnRoutine()
|
||||||
{
|
{
|
||||||
// Infinite loop to keep spawning (can be modified)
|
// Infinite loop to keep spawning (can be modified)
|
||||||
@@ -66,6 +77,13 @@ public class Spawner : MonoBehaviour
|
|||||||
|
|
||||||
var instance = Instantiate(objectToSpawn, transform.position, Quaternion.identity);
|
var instance = Instantiate(objectToSpawn, transform.position, Quaternion.identity);
|
||||||
spawned.Add(instance);
|
spawned.Add(instance);
|
||||||
|
|
||||||
|
if (launchForce > 0f && instance.TryGetComponent<Rigidbody2D>(out var body))
|
||||||
|
{
|
||||||
|
var angleOffset = launchRandomAngle > 0f ? Random.Range(-launchRandomAngle, launchRandomAngle) : 0f;
|
||||||
|
var direction = Quaternion.Euler(0f, 0f, angleOffset) * transform.right;
|
||||||
|
body.AddForce(direction.normalized * launchForce, ForceMode2D.Impulse);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int CountAlive()
|
private int CountAlive()
|
||||||
|
|||||||
Reference in New Issue
Block a user