using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Assets.Scripts.InteractableObjects; namespace Assets.Scripts.Player { public class PlayerCamera : MonoBehaviour { UIHandler uihandler; GameObject interact; // Start is called before the first frame update void Start() { uihandler = GameObject.Find("UIHandler").GetComponent(); interact = GameObject.Find("pnlInteract"); interact.transform.localScale = new Vector3(0, 0, 0); } // Update is called once per frame void Update() { } private void FixedUpdate() { showInformation(); } public GameObject interactWithObject() { RaycastHit hit; if (Physics.Raycast(transform.position, transform.forward, out hit, 3)) { if (hit.collider.gameObject.tag.ToLower().Contains("object")) { return hit.collider.gameObject; } } return null; } public void lookAround(Vector2 view, float speed) { GameObject target = GameObject.Find("targetLooking"); target.transform.localPosition = target.transform.localPosition + new Vector3(0,view.y,0) * speed * Time.deltaTime; if(target.transform.localPosition.y >= 2){ target.transform.localPosition = new Vector3(target.transform.localPosition.x,2f,target.transform.localPosition.z); } if(target.transform.localPosition.y <= -1){ target.transform.localPosition = new Vector3(target.transform.localPosition.x,-1f,target.transform.localPosition.z); } } void showInformation() { RaycastHit hit; interact.transform.localScale = new Vector3(0, 0, 0); if (Physics.Raycast(transform.position, transform.forward, out hit, Mathf.Infinity)) { if (hit.collider.gameObject.tag.ToLower().Contains("object")) { string obj = hit.collider.gameObject.tag.Split(':')[1]; if (hit.distance <= 10 && !obj.ToLower().Equals("house")) { if (!uihandler.isPlayerInFight()) { interact.transform.localScale = new Vector3(1, 1, 1); } } switch (obj.ToLower()) { case "tree": displayInformation(TextHandler.getText("tree")); break; case "stone": displayInformation(TextHandler.getText("rock")); break; case "npc": displayInformation("NPC"); break; case "enemy": displayInformation(TextHandler.translate(hit.collider.gameObject.GetComponent().getEnemyName())); break; case "house": displayInformation(TextHandler.getText("house")); break; case "door": displayInformation(TextHandler.getText("door")); break; case "chest": displayInformation(TextHandler.getText("chest")); break; case "ore": if (hit.collider.gameObject.name.ToLower().Contains("iron")) { displayInformation(TextHandler.translate("Iron ore")); } else if (hit.collider.gameObject.name.ToLower().Contains("gold")) { displayInformation(TextHandler.translate("Gold ore")); } else if (hit.collider.gameObject.name.ToLower().Contains("copper")) { displayInformation(TextHandler.translate("Copper ore")); } else if (hit.collider.gameObject.name.ToLower().Contains("tin")) { displayInformation(TextHandler.translate("Tin ore")); } break; default: uihandler.hideInformation(); break; } } else { uihandler.hideInformation(); } } else { uihandler.hideInformation(); } } private void displayInformation(string information) { if (!uihandler.isPlayerInFight()) { uihandler.displayInformation(information); } else { uihandler.hideInformation(); } } } }