Hi, I’m still new to programming and although I have code that works now, it’s very repetitive. I’m certain there are ways to simplify this, but I don’t know how. It would be a great learning opportunity if you could give me some tips on how to make this code simpler on the eyes and my limited hardware.
The main idea is to have static images that get swapped out as the player clicks on a collider. Basically movement of the player through a series of static images. The colliders connect the screens to one another and they all have their own tag.
Thanks everyone in advance!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public GameObject mainScreen;
public GameObject centerScreen;
public GameObject doorScreen;
public GameObject bedScreen;
public GameObject bedTopScreen;
public GameObject bedBottomScreen;
public GameObject tableScreen;
public GameObject tableTopScreen;
public GameObject tableBottomScreen;
public GameObject lampScreen;
public GameObject leftScreen;
public GameObject topShelfScreen;
public GameObject bottomShelfScreen;
public GameObject drawerMainScreen;
public GameObject safeMainScreen;
// Start is called before the first frame update
void Start()
{
mainScreen.SetActive(true);
centerScreen.SetActive(false);
doorScreen.SetActive(false);
bedScreen.SetActive(false);
bedTopScreen.SetActive(false);
bedBottomScreen.SetActive(false);
tableScreen.SetActive(false);
tableTopScreen.SetActive(false);
tableBottomScreen.SetActive(false);
lampScreen.SetActive(false);
leftScreen.SetActive(false);
topShelfScreen.SetActive(false);
bottomShelfScreen.SetActive(false);
drawerMainScreen.SetActive(false);
safeMainScreen.SetActive(false);
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// print("Click detected");
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast(mousePos, Vector2.zero);
if (hit.collider != null)
{
Debug.Log("Collider was hit (" + hit.collider.gameObject.tag + ")");
if (hit.collider.gameObject.tag == "ToCenter")
{
mainScreen.SetActive(false);
centerScreen.SetActive(true);
doorScreen.SetActive(false);
bedScreen.SetActive(false);
tableScreen.SetActive(false);
lampScreen.SetActive(false);
leftScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "BacktoMain")
{
mainScreen.SetActive(true);
centerScreen.SetActive(false);
lampScreen.SetActive(false);
leftScreen.SetActive(false);
safeMainScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToDoor")
{
mainScreen.SetActive(false);
centerScreen.SetActive(false);
doorScreen.SetActive(true);
bedScreen.SetActive(false);
tableScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToBed")
{
mainScreen.SetActive(false);
centerScreen.SetActive(false);
doorScreen.SetActive(false);
bedScreen.SetActive(true);
bedTopScreen.SetActive(false);
bedBottomScreen.SetActive(false);
safeMainScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToTopBed")
{
bedScreen.SetActive(false);
bedTopScreen.SetActive(true);
bedBottomScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToBottomBed")
{
bedScreen.SetActive(false);
bedTopScreen.SetActive(false);
bedBottomScreen.SetActive(true);
}
if (hit.collider.gameObject.tag == "ToTable")
{
mainScreen.SetActive(false);
centerScreen.SetActive(false);
doorScreen.SetActive(false);
tableScreen.SetActive(true);
tableTopScreen.SetActive(false);
tableBottomScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToTopTable")
{
tableScreen.SetActive(false);
tableTopScreen.SetActive(true);
tableBottomScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToBottomTable")
{
tableScreen.SetActive(false);
tableTopScreen.SetActive(false);
tableBottomScreen.SetActive(true);
}
if (hit.collider.gameObject.tag == "ToLamp")
{
mainScreen.SetActive(false);
centerScreen.SetActive(false);
lampScreen.SetActive(true);
}
if (hit.collider.gameObject.tag == "ToLeft")
{
mainScreen.SetActive(false);
centerScreen.SetActive(false);
leftScreen.SetActive(true);
topShelfScreen.SetActive(false);
bottomShelfScreen.SetActive(false);
drawerMainScreen.SetActive(false);
//window
}
if(hit.collider.gameObject.tag == "ToTopShelf")
{
leftScreen.SetActive(false);
topShelfScreen.SetActive(true);
bottomShelfScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToBottomShelf")
{
leftScreen.SetActive(false);
topShelfScreen.SetActive(false);
bottomShelfScreen.SetActive(true);
drawerMainScreen.SetActive(false);
}
if (hit.collider.gameObject.tag == "ToDrawer")
{
leftScreen.SetActive(false);
bottomShelfScreen.SetActive(false);
drawerMainScreen.SetActive(true);
}
if (hit.collider.gameObject.tag == "ToSafe")
{
mainScreen.SetActive(false);
safeMainScreen.SetActive(true);
}
}
else
{
Debug.Log("no collider detected");
}
}
}
}