본문 바로가기
프론트엔드

유니티 마우스 클릭 지점, 라인렌더러

by 느바 2022. 10. 24.
반응형

유니티 마우스 클릭 지점, 라인렌더러

마우스 클릭 지점

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);
        }
    }
}

 

 

반응형

'프론트엔드' 카테고리의 다른 글

UPBGE로 navigation mesh 만들기  (1) 2023.10.20
범위 계산  (0) 2022.11.03
Unity 마우스커서 변경  (0) 2022.10.24
Unity ColorUtility  (0) 2022.10.11
Unity Array List Dictionary  (0) 2022.10.10