TextMesh là cách để đi với những gì bạn đang tìm kiếm, vì bạn đang hiển thị các thẻ này trong một mặt phẳng. Thành phần này sẽ không phải là một lựa chọn hợp lệ với các bề mặt không phẳng.
Thêm một trò chơi trống vào thẻ của bạn khi còn nhỏ và sau đó thêm TextMesh làm thành phần -> Thêm Thành phần / Lưới / TextMesh. Đặt văn bản bạn cần và sau đó, bạn phải điều chỉnh văn bản đến nơi bạn muốn, thực hiện việc di chuyển vị trí của trò chơi. Lưu ý rằng nếu các đối tượng cha không có Tỷ lệ 1-1-1, văn bản sẽ bị biến dạng, nếu đó là trường hợp bạn cần thay đổi tổ chức đối tượng của mình và di chuyển văn bản theo kịch bản thay vì sử dụng nó khi còn nhỏ.
Nếu bạn xoay thẻ, bạn sẽ nhận thấy rằng văn bản chồng lên trên mỗi lưới trong cảnh, thậm chí là thẻ của riêng bạn. Để tránh điều này, bạn cần sử dụng một shader tùy chỉnh cho "TextMesh" sẽ khiến nó hiển thị giống như bất kỳ đối tượng nào khác trong cảnh.
Đây là shader:
Shader "Text/TextNonOverlap 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
}
}
}
}
Để sử dụng shader, bạn cần một phông chữ trong dự án của bạn, bất cứ ai cũng sẽ làm việc. Tạo một vật liệu và đặt shader này lên nó, sau đó chọn phông chữ bạn đã chọn và gán nó là "Font Texture" trong cùng một trường "Texture Texture" của vật liệu, điều này rất quan trọng.
Sau đó, trong trò chơi với TextMesh, thay đổi phông chữ thành phông chữ bạn đã chọn, giống như phông chữ bạn đặt Phông chữ trên vật liệu hoặc nó sẽ không hoạt động. Chọn trong thành phần "Vật liệu -> Phần tử 0" và đặt vật liệu bạn vừa tạo trên đó, bây giờ bạn có một văn bản không trùng nhau, để thay đổi màu sắc của vật liệu.
Nó không phức tạp nhưng dễ dàng để tạo lưới, vì vậy hãy cẩn thận.
PS: Vâng, văn bản có thể đi ra ngoài thẻ nhưng, như bạn có thể thấy, ngay cả Hearthstone cũng sử dụng một cách tiếp cận tương tự