마우스 커서가 가리키는 오브젝트의 이름을 출력한다.
// 마우스 커서의 좌표를 월드 좌표계로 변환하고, 그 월드좌표를 기준으로 Ray를 생성한다.
Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit mouseInfo;
// Ray를 쏴서 부딪힌 대상이 있다면
if (Physics.Raycast(mouseRay, out mouseInfo))
{
print("가리키는 대상: " + mouseInfo.transform.name);
logText.text = "가리키는 대상: " + mouseInfo.transform.name;
}
// Ray에 닿은 대상이 없다면
else
{
print("가리키는 대상 없음");
logText.text = "가리키는 대상 없음";
}
Camera.main.ScreenPointToRay() : 스크린 좌표를 월드 공간의 좌표로 변환해서 Ray의 위치 및 방향으로 설정하는 함수
Input.mousePosition : 현재 마우스 커서의 스크린 좌표 값(X, Y)을 가진 속성 변수
UI에 LogText를 제작해 스크립트를 넣어준다.
Gun 전문
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// Ray를 이용해서 바라보고 닿은곳에 총을 쏘고싶다. (총알자국을 남기고싶다.)
public class Gun : MonoBehaviour
{
// 총알자국
public ParticleSystem bulletImpact;
public Text logText;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 만약 마우스 왼쪽버튼을 누르면
if (Input.GetButtonDown("Fire1"))
{
// 시선을 만들고
Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
// 그 시선을 이용해서 바라봤는데 만약 닿은곳이 있다면?
RaycastHit hitinfo;
if (Physics.Raycast(ray, out hitinfo))
{
// 닿은곳에 총알자국을 가져다놓고싶다.
bulletImpact.transform.position = hitinfo.point;
// 총알자국 VFX를 재생하고싶다.
bulletImpact.Stop();
bulletImpact.Play();
// 총알자국의 방향을 닿은곳의 Normal방향으로 회전하고싶다.
// = 총알자국의 forward방향과 닿은곳의 Normal방향을 일치시키고 싶다.
bulletImpact.transform.forward = hitinfo.normal;
}
}
// 마우스 커서의 좌표를 월드 좌표계로 변환하고, 그 월드좌표를 기준으로 Ray를 생성한다.
Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit mouseInfo;
// Ray를 쏴서 부딪힌 대상이 있다면
if (Physics.Raycast(mouseRay, out mouseInfo))
{
print("가리키는 대상: " + mouseInfo.transform.name);
logText.text = "가리키는 대상: " + mouseInfo.transform.name;
}
// Ray에 닿은 대상이 없다면
else
{
print("가리키는 대상 없음");
logText.text = "가리키는 대상 없음";
}
}
}
'공부 > Unity 기초' 카테고리의 다른 글
3D FPS - 6 / 위치 복귀 (0) | 2022.05.19 |
---|---|
3D FPS - 5 / 상태머신 설계 (0) | 2022.05.18 |
3D FPS - 3 / 무기 제작 (0) | 2022.05.18 |
3D FPS - 2 / 시점 변화 (0) | 2022.05.17 |
3D FPS - 1 / 이동과 회전, 점프 (0) | 2022.05.17 |