DetectionProgramming.png

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;

public class CubeActivator : MonoBehaviour { Transform cameraPos; [SerializeField] float distance; [SerializeField] float timeRequired; LayerMask cubeMask; bool cubeHit; bool sphereChange; bool timeCheck = false; BaseCube cube; private void Awake() { cameraPos = GetComponent<Transform>(); cubeMask = LayerMask.GetMask("CubeMask"); timeCheck = false; } private void Update() { CubeRay(); cubeReset(); //sphereChanger(); } void CubeRay() { RaycastHit hit; Physics.Raycast(cameraPos.position, cameraPos.forward, out hit, distance, cubeMask); if (hit.collider != null) { Debug.Log(hit.transform.gameObject.name); cubeHit = true; if (!timeCheck) { cube = hit.transform.GetComponent<BaseCube>(); Debug.Log("TimeCheck"); StartCoroutine(timeChecker()); } } else { cubeHit = false; sphereChange = false; StopAllCoroutines(); timeCheck = false; } } private void OnDrawGizmos() { if (cameraPos != null) { Gizmos.color = Color.black; Gizmos.DrawLine(cameraPos.position, cameraPos.forward * distance); } } IEnumerator timeChecker () { timeCheck = true; yield return new WaitForSeconds(timeRequired); if (cubeHit) { sphereChange = true; sphereChanger(); } else { sphereChange = false; } timeCheck = false; } void sphereChanger() { StopAllCoroutines(); //Cosa que no me he figurado todavia Debug.Log("Cambio de escena"); cube.sizeChange(); }

void cubeReset()
{
    if (!FindObjectOfType<WoWCube>().GetComponent<MeshRenderer>().enabled && !FindObjectOfType<NITWCube>().GetComponent<MeshRenderer>().enabled && !FindObjectOfType<KindWordsCube>().GetComponent<MeshRenderer>().enabled && !FindObjectOfType<TropicoCube>().GetComponent<MeshRenderer>().enabled)
    {
        FindObjectOfType<WoWCube>().GetComponent<MeshRenderer>().enabled = true;
        FindObjectOfType<WoWCube>().GetComponent<BoxCollider>().enabled = true;

        FindObjectOfType<NITWCube>().GetComponent<MeshRenderer>().enabled = true;
        FindObjectOfType<NITWCube>().GetComponent<BoxCollider>().enabled = true;

        FindObjectOfType<TropicoCube>().GetComponent<MeshRenderer>().enabled = true;
        FindObjectOfType<TropicoCube>().GetComponent<BoxCollider>().enabled = true;

        FindObjectOfType<KindWordsCube>().GetComponent<MeshRenderer>().enabled = true;
        FindObjectOfType<KindWordsCube>().GetComponent<BoxCollider>().enabled = true;
    }

}

}