2016-09-28 14 views
0
touchMarkerObjects[fingerId].transform.position = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position); 

このコード行を使用すると、touchMarkerObjectsのZ位置がレンダリングされない-1308に設定されます。カメラは0,0,0にあり、正射影に設定されています。後で行を追加したり、transform.positionの変更に対してVector3のScreenToWorldPointのX/Yのみを使用しようとしても、値は-1308に設定されます。Unity C#ScreenToWorldPoint 2D設定オブジェクトZ軸

Zインデックスに影響を与えずにオブジェクトの位置を更新するにはどうすればよいですか?

ありがとう、私はそれが私が見落としている比較的簡単なことだと確信しています。私はこれが問題を中継する最も簡単な方法だと思っています。

答えて

0

開始時に、ゲームオブジェクトのデフォルトのz軸を取得します。 mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position);の値を一時変数に保存します。結果のz軸を元の/デフォルト変数で上書きしてから使用してください。 GameObjectsのz軸が0の場合、単純に0で上書きします。

float defaultZ = 0f; 

それとも

float defaultZ = touchMarkerObjects[...].transform.position.z; 

その後、

Vector3 tempValue = mainCamera.ScreenToWorldPoint(Input.GetTouch(fingerId).position); 
tempValue.z = defaultZ; 
touchMarkerObjects[fingerId].transform.position = tempValue; 
+0

本当にありがとうございましたそれは私が探していたものです。私はZ値をデフォルトに初期設定するコードを書いていましたが、間違いなく何かを混乱させました。 私はそれに感謝しています。 – Matt

関連する問題