728x90
유니티 마우스 클릭 지점, 라인렌더러
마우스 클릭 지점
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeCursor : MonoBehaviour
{
void Start()
{
}
void Update()
{
if(Input.GetMouseButtonDown(0))
{
// 스크린의 마우스 위치로부터 Ray 생성
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 월드에서 레이캐스팅 히트가 발생한 위치, Ray가 충돌한 물체, Ray의 원점에서 얼마나 떨어져있는지 정보 저장
// hit 대상은 collider 속성이 있어야 hit가 된다.
RaycastHit hit;
if(Physics.Raycast(ray, out hit, Mathf.Infinity))
{
Debug.Log("hit.point : "+hit.point);
Debug.Log("hit.distance : "+hit.distance);
Debug.Log("hit.collider : "+hit.collider);
Debug.Log("hit.transform : "+hit.transform);
Debug.Log("hit.transform.gameObject : "+hit.transform.gameObject);
}
}
}
}
라인렌더러
GameObject와 마우스지점까지의 라인
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LineLaserController : MonoBehaviour
{
private LineRenderer lr;
private Vector3[] linePoints = new Vector3[2];
void Start()
{
lr = GetComponent<LineRenderer>();
lr.enabled = false;
lr.material.color = Color.blue;
lr.widthMultiplier = 0.01f;
linePoints[0] = transform.position;
lr.positionCount = linePoints.Length;
}
void Update()
{
if(Input.GetMouseButton(0))
{
lr.enabled = true;
linePoints[1] = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane));
lr.SetPositions(linePoints);
}
}
}
728x90
'3D > Unity' 카테고리의 다른 글
Unity 마우스커서 변경 (0) | 2022.10.24 |
---|---|
Unity ColorUtility (0) | 2022.10.11 |
Unity Array List Dictionary (0) | 2022.10.10 |
Action 으로 다른 스크립트 함수 가져오는 방법 (0) | 2022.10.10 |
Unity에서 Json을 사용하는 방법 (0) | 2022.10.09 |