Files
ColorBall/Assets/Scripts/ColorManager.cs

51 lines
1.7 KiB
C#
Raw Permalink Normal View History

2022-07-13 20:33:37 +02:00
using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
2023-06-07 14:48:48 +02:00
public enum Colors { //maybe change this to a class to add abilites
2022-07-13 20:33:37 +02:00
None = -1,
Grey,
Red,
Blue,
Green,
Yellow,
Rainbow
};
public class ColorManager : MonoBehaviour
{
public Material[] colorMaterials = new Material[Enum.GetNames(typeof(Colors)).Length];
public void WashColor(GameObject washed) {
SetColor(Colors.Grey, washed);
}
public void SetColor(Colors color, GameObject toPaint, Collision collision = null) {
if(color == Colors.None) {
if (collision.transform.CompareTag("ColorChanger")) {
2022-07-15 16:26:40 +02:00
toPaint.GetComponent<Renderer>().material.color = collision.transform.GetComponent<Renderer>().material.color;
2022-07-13 20:33:37 +02:00
}
} else {
toPaint.GetComponent<Renderer>().material.color = colorMaterials[(int)color].color;
}
}
public void CheckGroundColor(GameObject collided) {
if (transform.GetComponent<Renderer>().material.color != collided.transform.GetComponent<Renderer>().material.color) {
Debug.Log("The colors are not the same! GroundColor: " + collided.transform.GetComponent<Renderer>().material.color + " PlayerColor: "
+ transform.GetComponent<Renderer>().material.color);
}
}
2022-07-15 16:26:40 +02:00
private void OnCollisionEnter(Collision collision) {
if (collision.collider.CompareTag("Water")) {
WashColor(collision.gameObject);
} else if (collision.collider.CompareTag("Ground")) {
CheckGroundColor(collision.gameObject);
} else if (collision.collider.CompareTag("ColorChanger")) {
SetColor(Colors.None, transform.gameObject, collision);
}
}
2022-07-13 20:33:37 +02:00
}