HillClimb/Assets/Scripts/FuelPickup.cs
2023-01-22 15:59:13 +05:30

65 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FuelPickup : MonoBehaviour
{
public float sensorRadius = 2;
public float shrinkSpeed = 0.1f;
private Vector3 defaultSize;
private SpriteRenderer spriteRenderer;
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
defaultSize =transform.localScale;
Reposition();
}
// Update is called once per frame
void Update()
{
if(!isActive){return;}
Collider2D[] overlaps = Physics2D.OverlapCircleAll(transform.position, sensorRadius);
foreach(Collider2D overlap in overlaps){
if(overlap!=null){
if(overlap.tag == "Player"){
//Collect
isActive=false;
StartCoroutine(Collect());
FuelManager.instance.Refill();
}
}
}
}
bool isActive = true;
IEnumerator Collect(){
while(spriteRenderer.color.a > 0.2f){
transform.localScale = Vector3.Lerp(transform.localScale, Vector3.zero, shrinkSpeed);
spriteRenderer.color = new Color(spriteRenderer.color.r, spriteRenderer.color.g, spriteRenderer.color.b, Mathf.Lerp(spriteRenderer.color.a,0,shrinkSpeed));
yield return new WaitForEndOfFrame();
}
//Goto next position
Reposition();
isActive=true;
}
public void Reposition(){
transform.localScale = defaultSize;
spriteRenderer.color = new Color(spriteRenderer.color.r, spriteRenderer.color.g, spriteRenderer.color.b, 1);
int carIndex= (int)(carController.instance.transform.position.x / LevelGenerator.instance.xMultiplier);
float gap = Mathf.Clamp((carController.instance.transform.position.x / 2500f) * 150, 15,100);
Debug.Log(gap);
transform.position = LevelGenerator.instance.points[carIndex + (int)gap] + new Vector3(0,2);
}
void OnDrawGizmos(){
Gizmos.DrawWireSphere(transform.position, sensorRadius);
}
}