0

私は gui ラベルを使用しているゲームを作成しています。最初の文字が表示されたときに x 軸の位置を設定したいのですが、2 番目の文字はもう少し先に表示する必要があります。

var isClicked : boolean=false;
var xpos: float = 200;
var xpox:float; 
var i:float;

function Start () {}
function xchange(): float{

xpos= xpos+8;
i=xpos;
return i;

}
function OnMouseDown()
{
   isClicked = true;
}

function OnGUI()
{
   if (gameObject.name == "Sphere 1(Clone)" && isClicked ){
   xpox=xchange();
   GUI.Label(new Rect(xpox,260,400,100), "B");
}     

   else if (gameObject.name == "Sphere(Clone)" && isClicked ){
   xpox=xchange();
     GUI.Label(new Rect(xpox,260,400,100), "A");
   }
 }

このコードでは、球体をクリックするたびにアルファベットが表示されますが、問題はアルファベットが表示されるたびに画面に表示されることです。これはコードのこの部分が原因です。

function xchange(): float
{ 
  xpos= xpos+8;
  i=xpos;
  return i;
}

クリックしたすべてのアルファベットが最初のアルファベットから少し離れて表示されるようにしたいだけです。

4

1 に答える 1

0

あなたはこれを試すことができます:

関数 Update() では、条件 isClicked = true かどうかを確認するだけです..

function Update()
{
      if(isClicked)
      {
           xpos += 500; 
      }
}

function OnGUI()
{
   if (gameObject.name == "Sphere 1(Clone)" && isClicked )
   {
       GUI.Label(new Rect(xpos,260,400,100), "B");
   }
}

あなたはこれを試すことができます..すべてのベスト..

于 2013-10-11T10:41:34.567 に答える