UPF/Assets/Game/Scripts/Minigame/TrailMgr.cs
2022-12-01 22:41:35 +05:30

58 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrailMgr : MonoBehaviour
{
public SpaceshipController controller;
public TrailRenderer trail;
public Vector3[] positions;
public Transform trailPoolParent;
public GameObject trailColliderObj;
public List<GameObject> trailsPool;
void Start(){
}
// Update is called once per frame
void Update(){
// #if PLATFORM_ANDROID
if(AutoConnect.instance.isClient){return;}
positions = new Vector3[trail.positionCount];
int length = trail.GetPositions(positions);
if(length > trailsPool.Count){
//must create new trails
int missingCount = length - trailsPool.Count;
for(int i =0; i < missingCount; i++){
GameObject newTrail = Instantiate(trailColliderObj, trailPoolParent);
// Debug.Log("Spawned new trail obj " + newTrail.name);
newTrail.GetComponent<TrailCollider>().trailMgr = this;
trailsPool.Add(newTrail);
}
}
for(int i =0; i < trailsPool.Count; i++){
if(i < length){
trailsPool[i].SetActive(true);
trailsPool[i].transform.position = positions[i];
}else{
trailsPool[i].SetActive(false);
}
}
// #endif
}
public void OnColliderHit(Collider2D hit){
controller.TrailCollided(hit);
Debug.Log("Got hit:" +hit.name);
}
void OnValidate(){
if(controller==null){
controller = GetComponent<SpaceshipController>();
}
}
}