script added & managers for narration/subtitles
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
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<Body> 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<Body>(CreateBody, OnTakeBodyFromPool, OnReturnBodyToPool, OnDestroyBody, true, m_DefaultPoolCapacity, m_MaxPoolCapacity);
|
||||
|
||||
StartCoroutine(Spawn());
|
||||
}
|
||||
|
||||
private Body CreateBody()
|
||||
{
|
||||
Vector3 spawnPos = this.transform.position;
|
||||
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<Rigidbody>().AddForce(new Vector3(1, 1, 1));
|
||||
m_PelvisPosition = body.m_Pelvis.position;
|
||||
body.SetPool(m_Pool);
|
||||
return body;
|
||||
}
|
||||
|
||||
private void OnTakeBodyFromPool(Body body)
|
||||
{
|
||||
body.m_Pelvis.transform.position = m_PelvisPosition;
|
||||
body.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
private void OnReturnBodyToPool(Body body)
|
||||
{
|
||||
body.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void OnDestroyBody(Body body)
|
||||
{
|
||||
Destroy(body.gameObject);
|
||||
}
|
||||
|
||||
IEnumerator Spawn()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(m_SpawnTime);
|
||||
m_Pool.Get();
|
||||
StartCoroutine(Spawn());
|
||||
|
||||
}
|
||||
}
|
||||
11
Assets/8_Scripts/2_General/BodyManager.cs.meta
generated
11
Assets/8_Scripts/2_General/BodyManager.cs.meta
generated
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb69c2a4007c792419505438a2761ba7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user