캐릭터 머리에 숫자가 튀어나오다
6619 단어 역할
/// <summary>
/// Floating text.
/// the GUI Text Floating system
/// </summary>
using UnityEngine;
using System.Collections;
public class FloatingText : MonoBehaviour {
public GUISkin CustomSkin;// GUISkin
public string Text = "";// Text
public float LifeTime = 1;// Life time
public bool FadeEnd = false;// Fade out at last 1 second before destroyed
public Color TextColor = Color.white; // Text color
public bool Position3D = false; // enabled when you need the text along with world 3d position
public Vector2 Position; // 2D Position
private float alpha = 1;
private float timeTemp = 0;
void Start () {
timeTemp = Time.time;
GameObject.Destroy(this.gameObject,LifeTime);
if(Position3D){
Vector3 screenPos = Camera.main.WorldToScreenPoint(this.transform.position);
Position = new Vector2(screenPos.x,Screen.height - screenPos.y);
}
}
void Update () {
if(FadeEnd){
if(Time.time >= ((timeTemp + LifeTime) - 1)){
alpha = 1.0f - (Time.time - ((timeTemp + LifeTime) - 1));
}
}else{
alpha = 1.0f - ((1.0f / LifeTime) * (Time.time - timeTemp));
}
if(Position3D){
Vector3 screenPos = Camera.main.WorldToScreenPoint(this.transform.position);
Position = new Vector2(screenPos.x,Screen.height - screenPos.y);
}
}
void OnGUI(){
GUI.color = new Color(GUI.color.r,GUI.color.g,GUI.color.b,alpha);
if(CustomSkin){
GUI.skin = CustomSkin;
}
Vector2 textsize = GUI.skin.label.CalcSize(new GUIContent(Text));
Rect rect = new Rect(Position.x - (textsize.x/2), Position.y,textsize.x,textsize.y);
GUI.skin.label.normal.textColor = TextColor;
GUI.Label(rect,Text);
}
}
호출 방식
public void AddFloatingText(Vector3 pos,string text){
// Adding Floating Text Effect
if(FloatingText){
var floattext = (GameObject)Instantiate(FloatingText,pos,transform.rotation);
if(floattext.GetComponent<FloatingText>()){
floattext.GetComponent<FloatingText>().Text = text;
}
GameObject.Destroy(floattext,1);
}
}