From 42a8a004eccbf0d38ed4a805b26a06af3cb45257 Mon Sep 17 00:00:00 2001 From: "William G. Tresselt" <williagt@stud.ntnu.no> Date: Wed, 26 Oct 2022 10:52:15 +0200 Subject: [PATCH] Fixed bug for colored ground --- ChromeEnigma/Assets/Prefabs/GroundBlue.prefab | 2 +- .../Assets/Prefabs/GroundGreen.prefab | 2 +- ChromeEnigma/Assets/Prefabs/GroundRed.prefab | 2 +- ChromeEnigma/Assets/Scripts/ColorChanger.cs | 27 ++++++++++--------- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab b/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab index 886d9da..7bf36e0 100644 --- a/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab +++ b/ChromeEnigma/Assets/Prefabs/GroundBlue.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 7364672847754121426} m_Layer: 0 m_Name: GroundBlue - m_TagString: GroundBlue + m_TagString: GroundColored m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab b/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab index 2d6823a..8766805 100644 --- a/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab +++ b/ChromeEnigma/Assets/Prefabs/GroundGreen.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 7364672847754121426} m_Layer: 0 m_Name: GroundGreen - m_TagString: GroundGreen + m_TagString: GroundColored m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/ChromeEnigma/Assets/Prefabs/GroundRed.prefab b/ChromeEnigma/Assets/Prefabs/GroundRed.prefab index 8ede551..16eb39f 100644 --- a/ChromeEnigma/Assets/Prefabs/GroundRed.prefab +++ b/ChromeEnigma/Assets/Prefabs/GroundRed.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 7364672847754121426} m_Layer: 0 m_Name: GroundRed - m_TagString: GroundRed + m_TagString: GroundColored m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/ChromeEnigma/Assets/Scripts/ColorChanger.cs b/ChromeEnigma/Assets/Scripts/ColorChanger.cs index 418489c..d6f6d4f 100644 --- a/ChromeEnigma/Assets/Scripts/ColorChanger.cs +++ b/ChromeEnigma/Assets/Scripts/ColorChanger.cs @@ -1,5 +1,7 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; +using Unity.VisualScripting; using UnityEngine; public class ColorChanger : MonoBehaviour @@ -7,11 +9,7 @@ public class ColorChanger : MonoBehaviour private Renderer userrenderer; private Material material; - private List<ColorSubscriber> colorSubscribers = new List<ColorSubscriber>(); - private GameObject[] ground; - private GameObject[] groundRed; - private GameObject[] groundGreen; - private GameObject[] groundBlue; + private GameObject[] groundColored; // Start is called before the first frame update void Start() @@ -19,10 +17,7 @@ public class ColorChanger : MonoBehaviour userrenderer = GetComponent<Renderer>(); material = userrenderer.material; - if (ground == null) ground = GameObject.FindGameObjectsWithTag("Ground"); - if (groundRed == null) groundRed = GameObject.FindGameObjectsWithTag("GroundRed"); - if (groundGreen == null) groundGreen = GameObject.FindGameObjectsWithTag("GroundGreen"); - if (groundBlue == null) groundBlue = GameObject.FindGameObjectsWithTag("GroundBlue"); + if (groundColored == null) groundColored = GameObject.FindGameObjectsWithTag("GroundColored"); } // Update is called once per frame @@ -31,7 +26,7 @@ public class ColorChanger : MonoBehaviour if (Input.GetButtonDown(KeyCode.Alpha1.ToString())) { material.color = Color.red; - foreach (GameObject g in groundRed) + foreach (GameObject g in groundColored) { if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.red); } @@ -39,7 +34,7 @@ public class ColorChanger : MonoBehaviour if (Input.GetButtonDown(KeyCode.Alpha2.ToString())) { material.color = Color.green; - foreach (GameObject g in groundGreen) + foreach (GameObject g in groundColored) { if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.green); } @@ -47,10 +42,18 @@ public class ColorChanger : MonoBehaviour if (Input.GetButtonDown(KeyCode.Alpha3.ToString())) { material.color = Color.blue; - foreach (GameObject g in groundBlue) + foreach (GameObject g in groundColored) { if (g!=null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.blue); } } + if(Input.GetButtonDown(KeyCode.R.ToString())) + { + material.color = Color.white; + foreach (GameObject g in groundColored) + { + if (g != null) g.GetComponent<ColorSubscriber>().notifyColorChange(Color.white); + } + } } } -- GitLab