- Home /
Updating 3d text causing framerate drop
I have a basic script attached to a 3D text prefab. Here is the script.
int speed = 10;
void Update () {
counter++;
if( counter == 0 )
{
GetComponent<TextMesh>().text = " <";
}
if (counter == speed )
{
GetComponent<TextMesh>().text = " < ";
}
if (counter == (speed*2) )
{
GetComponent<TextMesh>().text = "< ";
}
if (counter == (speed*3))
{
counter = 0;
}
}
The problem I'm having is that if this script is active, the game hitches every time the 3d text objects are updated. Is there something inherently wrong with this script? Or is 3D text just slow and impossible to update in realtime with any expectation of performance?
The only other thing I'm doing here is a modification to the default 3d text shader so 3d text objects are occluded by other geometry.
Shader below:
Shader "Custom/3dtext" { 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 }}}}
Anything with this shader that would be causing a slowdown?
Thanks in advance!
Answer by dweitkunat · Oct 09, 2011 at 12:09 AM
Cache the component, instead of using GetComponent every frame.
private TextMesh text;
void Start()
{
text = GetComponent<TextMesh>();
}
I want to upvote this answer, but the site is telling me that I must login as a differnet user to upvote. Anybody have any idea why I can't upvote? Is my user account just too new?
Your answer
Follow this Question
Related Questions
Mac Team Server Updates are slow 2 Answers
Laggy camera on const moving speed 1 Answer
Timer Countdown problem 2 Answers
Transform position check in update is slow 2 Answers
My text document is updating twice when its only supposed to once 2 Answers