2016-05-30 2 views
0
using UnityEngine; 
using System.Collections; 
public class GetPosition : MonoBehaviour 
{ 
    Vector3 dragStartPosition; 
    float dragStartDistance; 
    float[] Xfloat; 

    void OnMouseDown() 
    { 
     dragStartPosition = transform.position; 
     dragStartDistance = (Camera.main.transform.position - transform.position).magnitude; 
    } 

    void Update() 
    { 
    } 

    void OnMouseDrag() 
    { 
      Vector3 worldDragTo = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, dragStartDistance)); 
      transform.position = new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z); 
      new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z); 
      float Newpos = ; 
    } 

    void OnMouseUp() 
    { 
    } 

} 

私はこのコードを統一しています。新しいVector3(位置xのみ)を浮動小数点に変換したいのですが、どうすればいいですか? Vector3のコンポーネントが既に浮いているようVector3をユニティで浮動小数点に変換する

float Newpos = worldDragTo.x; 

答えて

3

それは同じくらい簡単です。

もう1つの浮動小数点型の場合は、コンバージョンで精度が失われるため、キャストする必要があります。したがって、2倍または10倍から浮動小数点への暗黙的キャストはありません。

ベクトルを変数に代入せずにベクトルを作成しているので、それを放棄しています。

new Vector3(worldDragTo.x, dragStartPosition.y, dragStartPosition.z); 
+1

xは既に浮動小数点です。キャストする必要はありませんが、この回答は正しいです – Programmer

+0

補足として、Unity3Dの 'Vector3'のメンバーは小文字です。そこにXNAのドキュメントを参照したようです。 = P – Serlite

+0

@Serlite - ああ。ありがとうございました。 – ChrisF

関連する問題