Fix overlapping text and add text escaping

This commit is contained in:
2020-11-12 21:25:24 -08:00
parent ea8c069d68
commit e82b02b0e5
5 changed files with 37 additions and 15 deletions

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
using System.Text;
namespace ConformalDecals.Text {
public static class TextEncoder {
private static readonly Dictionary<string, string> _escapeSequences = new Dictionary<string, string>() {
{"\n", "\\n"},
{"\\", "\\\\"},
{"/", "\\/"},
{"=", "\\="}
};
public static string Encode(string input) {
var builder = new StringBuilder(input);
foreach (var escapePair in _escapeSequences) {
builder.Replace(escapePair.Key, escapePair.Value);
}
return builder.ToString();
}
public static string Decode(string input) {
var builder = new StringBuilder(input);
foreach (var escapePair in _escapeSequences) {
builder.Replace(escapePair.Value, escapePair.Key);
}
return builder.ToString();
}
}
}

View File

@ -280,25 +280,13 @@ namespace ConformalDecals.Text {
RenderTexture.ReleaseTemporary(renderTex);
// CLEAR SUBMESHES
_tmp.text = "";
for (int i = 0; i < transform.childCount; i++) {
var child = transform.GetChild(i);
var renderer = child.GetComponent<MeshRenderer>();
var filter = child.GetComponent<MeshFilter>();
if (filter == null || renderer == null) {
Logging.Log("TMP Sub object has no filter or renderer, destroying");
Destroy(child.gameObject);
}
if (filter.mesh.vertexCount < 3) {
Logging.Log("TMP Sub object has no mesh, destroying");
Destroy(child.gameObject);
}
renderer.enabled = false;
Destroy(child.gameObject);
}
_tmp.ClearMesh(true);
return new TextRenderOutput(texture, window);
}
}