2016-04-05 25 views
0

Bir Text nesnesini belirli GameObject öğelerine birleştirmek mümkün mü? Yapmaya çalıştığım şey, bir çalışma zamanı gameobjecti oluşturmak ve bu gameobject üzerine pini oluşturmaktır. Unity oyun geliştirmede yeni başlayan biri olarak bunu nasıl oluşturacağımı bilmiyorum. Metin nesnesi doğrudan GameObject eklenecek istiyorsanızBir GameObject'e Nasıl Metin Aktarılır

// Code for Game Objects.. 
#pragma strict 

// Variable for Get Components 
var getComponents : GameObject; 

// For Moving the Box 
var speed : float = 10f; 
var movementVector = Vector3.zero; 

function Start() { 
    // Run Time Cube Generator 
    for (i = 0 ; i <= 5 ; i++) 
    { 
     if(flag) { 
      cube = GameObject.CreatePrimitive(PrimitiveType.Cube); 
      cube.name = "RedCube" + Tagcounter; 

      cube.AddComponent(GUIText); 

      // Render Cubes 
      cube.transform.position = Vector2(posx,posy); 
      cube.transform.localScale = Vector2(1,1);  
      cube.renderer.material.color = Color.red; 
      // cube.AddComponent(Rigidbody); 
      // cube.AddComponent(GUIText); 
      cube.transform.Translate(0f,1f * Time.deltaTime,0f); 
      posy+=2; 

      cube.gameObject.guiText.text = counter.ToString(); 

      cube.gameObject.guiText.material.color = Color.white; 

      // cube.guiText.text = Vector3.forward(posx,posy,0); 

      counter++; 

      // Text Working 
      Debug.Log(cube.gameObject.guiText.text); 
     } 

     Tagcounter++; 
    } 
} 

function Update() 
{ 
    var Redcube = GameObject.Find("RedCube0"); 
    var Redcube1 = GameObject.Find("RedCube1"); 
    var Redcube2 = GameObject.Find("RedCube2"); 
    var Redcube3 = GameObject.Find("RedCube3"); 
    var Redcube4 = GameObject.Find("RedCube4"); 
    var Redcube5 = GameObject.Find("RedCube5"); 

    // For Upward Movement 
    if(Input.GetKey(KeyCode.UpArrow)) { 
     // For Moving Upward 
     Redcube.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube1.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube2.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube3.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube4.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube5.transform.Translate(0f,1f * Time.deltaTime,0f);     
    } 

    // For Downward Movement 
    if(Input.GetKey(KeyCode.DownArrow)) {  
     // For Moving Downwards 
     Redcube.transform.Translate(0f,-1f * Time.deltaTime,0f);  
     Redcube1.transform.Translate(0f,-1f * Time.deltaTime,0f);  
     Redcube2.transform.Translate(0f,-1f * Time.deltaTime,0f);  
     Redcube3.transform.Translate(0f,-1f * Time.deltaTime,0f);  
     Redcube4.transform.Translate(0f,-1f * Time.deltaTime,0f);  
     Redcube5.transform.Translate(0f,-1f * Time.deltaTime,0f);   
    } 

    // For Left Movement 
    if(Input.GetKey(KeyCode.S)) {  
     // IF one moves Left 
     cube.transform.Translate(-1f * Time.deltaTime,0f,0f);  

     // Others Move Up First 
     Redcube.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube1.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube2.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube3.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube4.transform.Translate(0f,1f * Time.deltaTime,0f); 
     Redcube5.transform.Translate(0f,1f * Time.deltaTime,0f);     
    } 

    // For Right Movement 
    if(Input.GetKey(KeyCode.D)) {  
     cube.transform.Translate(1f * Time.deltaTime,0f,0f); 
     // Others Move Up First 
     Redcube.transform.Translate(1f * Time.deltaTime,0f,0f); 
     Redcube1.transform.Translate(1f * Time.deltaTime,0f,0f); 
     Redcube2.transform.Translate(1f * Time.deltaTime,0f,0f); 
     Redcube3.transform.Translate(1f * Time.deltaTime,0f,0f); 
     Redcube4.transform.Translate(1f * Time.deltaTime,0f,0f); 
     Redcube5.transform.Translate(1f * Time.deltaTime,0f,0f);       
    } 
} 

function OnGUI() { 
    // Whole Screen  
    GUI.Box (Rect (0,0,100,50), "Top-left"); 
    GUI.Box (Rect (Screen.width - 100,0,100,50), "Top-right"); 
    GUI.Box (Rect (0,Screen.height - 50,100,50), "Bottom-left"); 
    GUI.Box (Rect (Screen.width - 100,Screen.height - 50,100,50), "Bottom-right"); 
    // Label 
} 

cevap

0

, sen MeshRenderer textMesh için gerekli bileşen olarak işaretlenmiş olmadığından emin

var text = gameObjectName.AddComponent<TextMesh>(); 
text.text = "Some text"; 

I`m kullanabilirsiniz. Değilse, MeshRenderer'ı manuel olarak da eklemeniz gerekir. Biraz daha karmaşık, ancak çok daha iyi bir uygulama, yalnızca metin içeren ve ana nesnede açığa çıkaran alt nesne oluşturmak olabilir. Bunun gibi:

var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); 
var textHolder = new GameObject("Text"); 
textHolder.transform.parent = cube.transform; 
var text = textHolderAddComponent<TextMesh>(); 

Yardım edin.