using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Pool; public class BodyManager : MonoBehaviour { public static BodyManager _instance { get; private set; } public Body m_Rigidbody; public ObjectPool
m_Pool; public float m_SpawnTime; public int m_DefaultPoolCapacity; public int m_MaxPoolCapacity; public Transform m_Parent; private Vector3 m_PelvisPosition; private void Awake() { if (_instance != null) Destroy(this); else _instance = this; } private void Start() { if (m_Rigidbody == null) Debug.Log($"Rigidbody is null"); m_Pool = new ObjectPool(CreateBody, OnTakeBodyFromPool, OnReturnBodyToPool, OnDestroyBody, true, m_DefaultPoolCapacity, m_MaxPoolCapacity); StartCoroutine(Spawn()); } private Body CreateBody() { Vector3 spawnPos = new Vector3(this.transform.position.x + Random.Range(-0.5f, 0.5f), this.transform.position.y, this.transform.position.z + Random.Range(-0.5f, .5f)); Body body = Instantiate(m_Rigidbody, spawnPos, new Quaternion(Random.Range(0, 180), Random.Range(0, 180), Random.Range(0, 180), Random.Range(0, 180)), m_Parent); body.m_Pelvis.gameObject.GetComponent