ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 마우스 클릭 지점, 라인렌더러
    3D/Unity 2022. 10. 24. 11:01
    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
Designed by Tistory.