Hunting.cs 1.69 KB
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Hunting : MonoBehaviour
{

    RaycastHit hit;
    public Camera cam;
    public Text text;
    bool staringGhost = false;
    public static bool isCaptured = false;


    GameObject ghost;
    bool isGhostInfoSaved = false;

    void Start()
    {
        
    }
    

    // 레이캐스트로 오브젝트를 감지한다. (콜라이더 조절 필요)
    // 감지가 가능해지면 버튼을 클릭하여 레이캐스트 감지를 통해 태그 확인 후 오브젝트의 정보를 얻는다.
    // 오브젝트의 모든 정보를 얻었다면 소멸시키고, 퇴치 유령 목록에 추가한다.

    void Update()
    {
        hitObject();
        if (staringGhost)
        {
            if (isCaptured)
            {
                //고스트라는 객체를 새로 만들어서, 해당 정보를 스테이지에서 저장하고 있는다. 
                //스테이지에서 저장된 게임 오브젝트를 Ghost라고 하자.

                ghost.SetActive(false);
                isCaptured = false;
            }
        }
        
    }

    void hitObject() {

        Vector3 screenCenter = Camera.current.ViewportToScreenPoint(new Vector3(0.5f, 0.5f));
        Ray ray = cam.ScreenPointToRay(screenCenter);
        if (Physics.Raycast(ray, out hit))
        {
//            text.text = hit.collider.gameObject.name;
            if (hit.collider.gameObject.tag == "Ghost") {
                text.text = "유령";
                staringGhost = true;
                if (!isGhostInfoSaved) {
                    ghost = hit.collider.gameObject;
                    isGhostInfoSaved = true;
                }

            }
        }
        else {
            text.text = "아무것도없다";
            staringGhost = false;
        }
    }
}