2016-11-01 14 views
0

私は2つのポイントの間に線を引いてから、それ以上回転して3dに変換したいと思います。建物を作るように。それが立方体または円柱の場合。 与えられた2点から3Dモデルを作成するにはどうすればいいですか?

は、私はそれを描画し、ラインを表示するか、多分私はそれを描き、それを示すが、ロジックによって、私は与えられた二つの点の間に線を引くことを意味し、それを3Dにする必要がありますしない意味で線を引きます。

私はこの試みた:

using UnityEngine; 
using System.Collections; 

public class MakeTwoPoints3D : MonoBehaviour { 

    public Vector3 pA; 
    public Vector3 pB; 

    // Use this for initialization 
    void Start() { 

     // Assuming this is run on a unit cube. 
     Vector3 between = pB - pA; 
     float distance = between.magnitude; 
     transform.localScale.x = distance; 
     transform.position = pA + (between/2.0); 
     transform.LookAt(pB); 
    } 

    // Update is called once per frame 
    void Update() { 

    } 
} 

しかし、ライン上のエラーを取得:

重大度コード説明プロジェクトファイルの行の抑制状態 エラーCS1612は、「トランスフォームの戻り値を変更することはできません

transform.localScale.x = distance; 
を.localScale」はアクティブ変数MakeTwoPoints3D.cs 15ではないので

そして、ライン上:

transform.position = pA + (between/2.0); 

重大度コード説明プロジェクトファイルの行の抑制状態 エラーCS0019演算子「/」「のVector3」と「double」のMakeTwoPoints3D.cs 16種類のオペランドに適用することはできませんアクティブ

答えて

1

transform.localScale.x = distance;

あなたは、新しいVector3からdistance変数を作成transform.localScaleに割り当てる必要があります。

transform.localScale = new Vector3(distance, transform.localScale.y, transform.localScale.z); 

transform.position = pAの+(間/ 2.0)。

の後にfを単に追加してフローティングにしてください。 fがなければ、2.0doubleタイプになります。

transform.position = pA + (between/2.0f); 

hereを参照してください。除算のオーバーロード方法は、floatではなく、doubleです。あなたの他のUnity質問を見ると、基本的なUnity Vector算術を理解する必要があります。 HereおよびHereを参照してください。

関連する問題