728x90
반응형
LineRenderer를 이용해서 선 긋기
스크립트를 짜기 전에 먼저
빈 게임 오브젝트를 하나 만들어서
빈 오브젝트 안에 LineRenderer 와 Edge Collider 컴포넌트를 넣어줍니다.
그리고 Material을 새로 하나 생성해서
Line Renderer의 Materials에 넣어주세요.
그런 다음 빈 오브젝트를 프리팹화 시켜주시면 됩니다.
스크립트 생성하기
프리팹까지 해주었으면 이 프리팹을 생성해서
클릭할때마다 Line을 그려주어서 그림을 그려주는 형식이기 때문에
스크립트를 하나 생성해서 다음 코드를 입력해주세요.
//그림 그리는 함수
public void DrawLine_Start()
{
StopCoroutine(_DrawLine_Start());
StartCoroutine(_DrawLine_Start());
}
IEnumerator _DrawLine_Start()
{
DrawLine_GameRun = true;
while (DrawLine_GameRun)
{
if (Input.GetMouseButtonDown(0))
{
CreateLine();
}
if (Input.GetMouseButton(0))
{
Vector3 tempFingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
tempFingerPos.z = 0;
if (Vector2.Distance(tempFingerPos, fingerPositions[fingerPositions.Count - 1]) > .1f)
{
UpdateLine(tempFingerPos);
}
}
yield return null;
}
}
//선그리기
void CreateLine()
{
currentLine = Instantiate(linePrefab, Vector3.zero, Quaternion.identity);
lineRenderer = currentLine.GetComponent<LineRenderer>();
edgeCollider = currentLine.GetComponent<EdgeCollider2D>();
fingerPositions.Clear();
Vector3 line_StartPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
fingerPositions.Add(line_StartPos);
fingerPositions.Add(line_StartPos);
// Debug.Log("line_StartPos" + line_StartPos);
lineRenderer.SetPosition(0, fingerPositions[0]);
lineRenderer.SetPosition(1, fingerPositions[1]);
edgeCollider.points = fingerPositions.ToArray();
}
void UpdateLine(Vector2 newFingerPos)
{
fingerPositions.Add(newFingerPos);
lineRenderer.positionCount++;
lineRenderer.SetPosition(lineRenderer.positionCount - 1, newFingerPos);
edgeCollider.points = fingerPositions.ToArray();
}
적용하기
인스펙터 창에서 다음 스크립트를 넣으면
다음과 같이 Line Prefeb 안에
아까 전에 생성한 Prefab를 넣어주시면 선이 그려지는 것을 확인 할 수 있습니다.
728x90
반응형
'PROGRAMING📚 > Unity📑' 카테고리의 다른 글
[유니티 Unity] 코루틴(Coroutine) 작성 & Return 종류 정리 (0) | 2022.06.02 |
---|---|
[유니티 Unity] 스크립트를 이용하여 Text Color 변경하는 방법 (0) | 2022.05.27 |
[유니티 Unity] DateTime 선언/ 정의/ 속성 값 예제 정리 (0) | 2022.04.13 |
[유니티 Unity] 유니티 Google Play Plugins 다운 사이트 (0) | 2022.03.23 |
[유니티 Unity] 비속어 리스트(.txt)파일을 이용해 비속어 필터 만들기 (0) | 2022.03.23 |
댓글