본문 바로가기
Works/Unity 3D

[Unity3D] error CS0103: The name `OnMakeBug' does not exist in the current context

by Vader87 2019. 4. 18.
반응형

개발중에 특이한 이슈를 발견하여 기록으로 남깁니다.

개발 환경

Unity 5.3.8p2

Visual Studio Professional 2015 Version 14.0.25431.01 Update3

 

다음과 같이 스크립트를 Unity 에 추가합니다.

public enum BUG
{
    YEAH = 0,
}

public class MakeUnityBug<T>
{
    public void MakeBug(BUG bug = BUG.YEAH)
    {
        OnMakeBug();
    }

    private void OnMakeBug()
    {

    }
}

그럼 Unity 에서 다음과 같은 에러를 출력합니다.

error CS0103: The name `OnMakeBug' does not exist in the current context

분명 코드에는 OnMakeBug 가 있지만 없다고 Unity가 구라를 칩니다.

 

이 버그를 고쳐 봅시다.

아래와 같이 의미 없는 추상 클래스를 추가해 주고 그 안에 Unity 가 없다고 구라치는 함수를 추상 메소드로 추가해 줍니다. 그리고 에러가 나던 클래스에서 상속받아 사용해 줍니다.

public enum BUG
{
    YEAH = 0,
}

public abstract class FixUnityBug<T>
{
    protected abstract void OnMakeBug();
}

public class MakeUnityBug<T> : FixUnityBug<T>
{
    public void MakeBug(BUG bug = BUG.YEAH)
    {
        OnMakeBug();
    }

    protected override void OnMakeBug()
    {

    }
}

에러가 없어졌습니다. 만세!

반응형

'Works > Unity 3D' 카테고리의 다른 글

[Unity 3D] 안드로이드 64bit 대응  (0) 2019.08.05
[Unity3D] C#  (0) 2019.08.05
[Unity3D] NGUI 2.7 Button 이슈  (0) 2019.04.03
[Unity3D] EmbeddedWindow  (0) 2019.03.28
[Unity3D] Standalone 빌드 실행 전 Window Size 변경  (0) 2019.03.20

댓글