728x90
https://docs.unity3d.com/kr/2019.3/ScriptReference/Ray.html
유니티 Ray/RaycastHit 설정하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ray : MonoBehaviour
{
public Transform PointObj;
Ray ray;
RaycastHit hit;
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
UnityEngine.Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
Debug.Log("hit = " + hit.point);
PointObj.position = hit.point;
}
}
}
}
왼쪽 마우스 클릭한 지점에 Ray를 쏴서 PointObj(빨간색 공)를 위치시키는 코드를 작성했다. public으로 선언된 PointObj는 Transform값을 가지기 때문에 Vector3 값으로 변환해주기 위해 PointObj뒤에 position을 추가해 hit.point를 가져와주었다. Input.mousePosition에서 mousePosition도 Vector3 값을 가진다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ray2 : MonoBehaviour
{
public Transform pointObj;
UnityEngine.Ray ray;
RaycastHit hit;
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
ray.origin = transform.position;
ray.direction = transform.right;
if(Physics.Raycast(ray,out hit))
{
Debug.Log("Hit = " + hit.point);
pointObj.position = hit.point;
}
}
}
}
728x90
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
유니티 progress 바 설정하기 (0) | 2021.10.28 |
---|---|
유니티 Line Renderer 설정하기 및 오류 해결 (0) | 2021.10.28 |
유니티 Scene 전환하기 (0) | 2021.10.22 |
유니티 UI Layout Group 종류 및 옵션 값 설정하기 (0) | 2021.10.22 |
유니티 Slider 한계시간 설정 코드 및 컴파일러 에러 해결 (0) | 2021.10.21 |