如何从给定的两点创建一个三维模型?

时间:2016-11-01 19:16:18

标签: c# unity3d

我想在两点之间绘制一条线,然后旋转或更多以将其转换为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 () {

    }
}

但是在线上出错:

transform.localScale.x = distance;
  

严重级代码描述项目文件行抑制状态   错误CS1612无法修改' Transform.localScale'的返回值。因为它不是变量MakeTwoPoints3D.cs 15 Active

在线:

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

严重级代码描述项目文件行抑制状态   错误CS0019操作员' /'不能应用于类型' Vector3'的操作数和' double' MakeTwoPoints3D.cs 16活动

1 个答案:

答案 0 :(得分: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之后添加2.0即可使其浮动。如果没有f,则2.0会变为double类型。

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

here。除法重载方法需要float而非double。查看您的其他Unity问题,您需要了解基本的Unity Vector算法。请参阅HereHere