유니티 Line Renderer 설정하기 및 오류 해결

728x90

 

Line Renderer 라인 렌더러 설정하기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Line : MonoBehaviour
{
    public Transform target;
    public Color c1 = Color.yellow;
    LineRenderer LR;

    void Start()
    {
        LR = GetComponent<LineRenderer>();
        LR.widthMultiplier = 0.1f; //선 너비
        LR.startColor = c1; //선 시작점 색
        LR.endColor = c1; //선 끝점 색
    }
    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            LR.SetPosition(0, transform.position); //시작 위치
            LR.SetPosition(1, target.position);  //목표 위치
            //0과 1은 인덱스 번호, 해상도 라인 개수
        }
        else
        {
            LR.SetPosition(1, transform.position);
        }
    }
}

마우스 왼쪽 클릭 시 Cube에서 Cube1으로 LineRederer가 연결되도록 하는 코드를 작성했다. Cube에 LineRederer 컴포넌트를 추가해주고 target에 Cube1을 매핑해준다.

 

라인 렌더러 설정 시 에러 발생 원인 및 해결 방법

코드를 작성하면서 2가지 에러가 발생했다. 

error CS1061: Type LineRenderer' does not contain a definition for material' and no extension method material' of type LineRenderer'

먼저 CS1061에러는 유니티에서 기본적으로 제공하는 클래스 명과 충돌이 났을때 발생하는 에러코드이다. 스크립트 이름을 LineRederer로 작성했더니 유니티 LineRenderer 클래스 명과 겹쳐서 충돌난 것이었다. 이러한 문제는 스크립트 명만 다른 이름으로 바꾸어주면 된다.

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/bb383961(v=vs.90) 

 

Compiler Error CS1061

Compiler Error CS1061 02/15/2013 2 minutes to read In this article --> 'type' does not contain a definition for 'member' and no extension method 'name' accepting a first argument of type 'type' could be found (are you missing a using directive or an assemb

docs.microsoft.com

 

error CS0542 : "member names cannot be the same as their enclosing type" 

Class나 Stuct를 Constructors라고 부르는데 이런 constructor가 return type을 가지고 있지 않는 경우, methond처럼 다루어진다고 한다. 즉, 해당 문제는 Class와 method가 같을 때 발생한다고 보면 될 것 같다. 클래스 명을 LR, 메서드의 멤버 변수 역시 LR로 작성해서 충돌이 난 것 같다. 이런 경우 클래스명 또는 변수 이름을 서로 다르게 만들어주니 해결되었다.

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/constructors

 

Constructors - C# programming guide

A constructor in C# is called when a class or struct is created. Use constructors to set defaults, limit instantiation, and write flexible, easy-to-read code.

docs.microsoft.com

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/hdhfk2xk(v=vs.90)?redirectedfrom=MSDN 

 

Compiler Error CS0542

Compiler Error CS0542 02/15/2013 2 minutes to read In this article --> 'user-defined type': member names cannot be the same as their enclosing type The members of a class or struct cannot have the same name as the class or struct, unless the member is a co

docs.microsoft.com

 

728x90