2016-05-11 21 views
0

境界線の位置を画面の上から外すように変更しようとしています。私は画面の上部を撮影してから、オブジェクトのスケールの半分を追加する(これは中央に配置されているため)。しかし、私がこれを行うと、何も変わりません。私は座標を印刷し、移動したと言いますが、座標は表示されません。私のコードは(WallScalarクラスのStart()メソッドから)です。統一変換の位置が位置を変更していません

注:次のコードは、WallScalarクラスのコードのみで、このスクリプトは、「トップ」ゲームオブジェクトに適用されます。

 transform.position = 
     new Vector3(0, Camera.main.orthographicSize + (transform.localScale.y/2), 1); 

     print("yCoor: " + transform.position.y); 

オブジェクトのスケールが1で、トップがy = 5であるため、オブジェクトはy = 5.5fに配置する必要があります。そのプリントステートメントでは、それはy = 5.5fにあると言いますが、それは私の画面上で動かないのです。ここでは詳細は画像である:私は手動でのyのために5.5を入力すると、それはないですので

enter image description here

あなたが見ることができるように、それはそれはyCoor = 5.5fに移動されたと言うが、それはdidntの表示され、それは画面のすぐ外にあります。 これを理解する助けがあれば、大歓迎です。

アップデート:私は私の更新方法では、このような

 print("yCoorU: " + transform.position.y); 

としてprint文を入れた場合、それはyは5 =読み込み、その何かが5であることを戻ってそれを強制されていますが、他に何も任意のコールを持っていないことを知っていますスクリプトが適用されている「トップ」ゲームオブジェクトに移動します。

+0

ウォールスカラースクリプトは何をしていますか?おそらくあなたの壁を5に戻しているのでしょうか? –

+0

@UriPopov私は上記のコードがどこにあるのかを編集して明確にします。 – Luke

+0

あなたの正射投影カメラのサイズは? –

答えて

2

あなたはint型で割るれているので、私はtransform.localScale.y/2の結果が0の代わりに、0.5(お使いのプリントが正しい値を与えるだろう、なぜ私はundestandしませんが)

+0

です。** Camera.main.orthographicSize ** '(transform.localScale.y/2)'です。あなたは '+ Camera.main.orthographicSize'パーツを忘れました。フロートを得ることはここでは驚きではありません。 – Programmer

+0

私はそれが違いをもたらすとは思わない。括弧内の部分がintにキャストされる可能性があります –

+0

私はあなたの答えを間違って読んでいます。私のコメントは、**あなたのプリントが正しい価値を与える理由を理解していない**への返信です。私はあなたが言ったと思った**あなたのプリントがなぜ浮動価値**を与えるのか分からない。私はもう一度それを読んで、それが別のものだと気づいた... – Programmer

0

かもしれないと思い、私はあなたを複製するために管理問題は、親オブジェクトのYの値を0.5にすることです。親オブジェクトが0,0,0

にあることを確認してください
+0

それは、私はダブルチェック – Luke

+0

だけ私が考えることができるのは、親のスケールが影響を与えるかもしれないということです。 –

関連する問題