2017-11-26 15 views
0

object.posistion.xが変更された場合にのみカウンタの値を増やすスクリプトがあります。問題は、object.position.yが変更されたときにも、カウンタの値が増えます...どのように修正するのですか?ここでobject.posistion.xが変更されたときにカウンタの値を増やす

は私のスクリプトです:あなたの質問Althrough

void Start() { 
    X = GameObject.FindGameObjectWithTag("counter").transform.position.x; 

} 

// Update is called once per frame 
void Update() { 
    X1 = GameObject.FindGameObjectWithTag("counter").transform.position.x 

    if (X!=X1) 
    { 
     counter++; 
     result = counter; 
    } 

} 
+1

あなたはオブジェクトを各更新で見つけてはいけません。結果は変数 – Lestat

答えて

1

が少し不明瞭ですが、私はこれがあなたが(X変更とYが安定している場合にのみ、カウンタを増やす)探しているものだと思う:

void Start() 
{ 
    var pos = GameObject.FindGameObjectWithTag("counter").transform.position; 

    X = pos.x; 
    Y = pos.y; 
} 

// Update is called once per frame 
void Update() 
{ 
    var pos = GameObject.FindGameObjectWithTag("counter").transform.position; 

    if ((X != pos.x) && (Y == pos.y)) 
     result = ++counter; 
} 

ところで、FindGameObjectWithTagを悪用しないでください。一度だけそれを取得し、それを変数に格納します。これは、巨大なパフォーマンスヒットを表す可能性があります。

+0

にキャッシュしておきますが、条件は常にfalseです。:/ –

+0

これは、オブジェクトが水平方向にのみ動いているということです。何が見える? –

+0

検査員を使って手動で移動した場合でもカウンタの値は0 –

関連する問題