개발 관련/SW, App 관련

(과거게시물) TextMesh 사용했을때 오브젝트 뒤로 글씨가 보일때 처리

by 소서리스25 2023. 3. 31.
반응형

※ 과거 게시물은 현재의 모든 적용사항과 환경이 다를 수 있으며 단순한 기록으로 남깁니다.

 

TextMesh를 사용했을때 오브젝트 뒤로 글씨가 보일때 처리

 

※ TextMesh Pro를 쓰면 문제가 없다... 다만, 과거 Pro를 쓰지 않았던 기본형을 썼을때의 경우만 해당된다.

 

o 3DText 기본 Shader : 3DText.shader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Shader "GUI/3D Text Shader" 
    Properties 
    {
        _MainTex ("Font Texture", 2D) = "white" {}
        _Color ("Text Color", Color) = (1,1,1,1)
    }
 
    SubShader 
    {
        Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    
        Lighting Off Cull Off ZWrite Off Fog { Mode Off }
    
        Blend SrcAlpha OneMinusSrcAlpha
    
        Pass 
        {
            Color [_Color]
            
            SetTexture [_MainTex] 
            {
                combine primary, texture * primary
            }
        }
    }
}
cs

 

o 3DText 기본 Shader : 3DTextOneSided.shader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Shader "GUI/3D Text Shader - Cull Back" 
{
    Properties 
    {
        _MainTex ("Font Texture", 2D) = "white" {}
        _Color ("Text Color", Color) = (1,1,1,1)
    }
 
    SubShader 
    {
        Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    
        Lighting Off Cull Back ZWrite Off Fog { Mode Off }
        Blend SrcAlpha OneMinusSrcAlpha
    
        Pass 
        {
            Color [_Color]
            SetTexture [_MainTex] 
            {
                combine primary, texture * primary
            }
        }
    }
}
cs

 

기본적으로 3D Object와 Textmesh를 배치하면 다음과 같이 배치상 text가 뒤에 있어도 Scene에서는 앞에 보이게 된다.

물론 TextMesh Pro를 쓰면 문제되지 않는다. 다만, 과거 Unity에서 pro를 제공하기 전에 문제에 대한 해결을 제시하는 사항이다.

오브젝트 뒤로 텍스트가 보인다. 이러면 안된다.
오브젝트 뒤로 보이는 텍스트

 

o 3DTextOneSided.shader 를 사용했을 경우 3D Object에 가려진 것을 볼 수 있다.

쉐이더를 수정해 주면 오브젝트 뒤로 텍스트가 보이지 않게 된다. 그냥 텍스트메쉬 프로를 쓰자
쉐이더를 수정하자 텍스트가 보이지 않는다

 

※ 그냥 편하게 TextMesh Pro를 쓰자... 기능도 더 많다..Outline 스크립트도 쓸 필요가 없다.

반응형

댓글