반응형
- 코드 구현
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float raycastDistance = 3f; //인식할 수 있는 범위
RaycastHit hit;
Ray ray;
void Update()
{
Debug.DrawLine(ray.origin, ray.origin + ray.direction * raycastDistance, Color.red); //씬에서 내가 보고있는 방향을 표시
ray = new Ray(transform.position, transform.forward); //보고있는 방향으로 살펴보기
//ray = Camera.main.ScreenPointToRay(Input.mousePosition); //마우스로 살펴보기
if (Input.GetKeyDown(KeyCode.E)) //키보드 E를 눌렀을 때
{
if (Physics.Raycast(ray, out hit, raycastDistance)) //인식할 수 있는 범위 안에서 물체 확인
{
GameObject hitObject = hit.collider.gameObject; //주변 물체의 정보를 가져옵니다.
if (hitObject != null) //물체가 있을 경우
{
UIManager.instance.ShowCanvasText(hitObject.tag);
}
}
}
}
}
- UI 처리
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UIManager : MonoBehaviour
{
public static UIManager instance;
public GameObject Background;
public TMP_Text CanvasText;
private void Awake()
{
instance = this;
Background.SetActive(false);
CanvasText.text = "";
}
public void ShowCanvasText(string str) //캔버스에 정보를 표시합니다
{
Background.SetActive(true); //흰색 바탕을 켭니다
if (str == "Chair")
{
CanvasText.text = "의자입니다";
}
else if(str == "Window")
{
CanvasText.text = "창문입니다";
}
else if (str == "Desk")
{
CanvasText.text = "책상입니다";
}
else
{
CanvasText.text = "태그가 설정되지 않았습니다.";
}
Invoke("DisableBackground", 1.0f); //1초 뒤에 흰색 바탕을 끕니다
}
void DisableBackground()
{
Background.SetActive(false);
}
}
반응형
'개발 > C#' 카테고리의 다른 글
유니티 C# 구글 애드몹 네이티브 광고 간단 구현 Google Admob Native (0) | 2024.02.14 |
---|---|
유니티 C# BoxCollider2D 일정 개수 이상 겹쳐있을 경우 코드 작성 (0) | 2024.02.11 |
유니티 C# 2d Navmesh 사용법 간단 구현 (0) | 2024.02.07 |
유니티 C# Canvas UI 화살표 특정 좌표로 반복 이동시키기 간단 구현 (0) | 2024.01.16 |
유니티 스크롤뷰 컨텐츠가 모바일 빌드 화면 밖을 벗어날 경우 (0) | 2023.11.28 |
유니티 C# 오브젝트 목표 지점까지 이동시키기 간단 구현 (0) | 2023.11.10 |
유니티 C# Fruit Ninja 과일 닌자 게임 간단 구현 (0) | 2023.11.10 |
유니티 C# Pong Clone 탁구 게임 간단 구현 (0) | 2023.11.10 |
댓글