【问题标题】:How can i create a 3d model from a given two points?如何从给定的两点创建 3d 模型?
【发布时间】:2016-11-02 03:34:12
【问题描述】:

我想在两点之间画一条线,然后旋转或更多以将其转换为 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”和“双”类型的操作数 MakeTwoPoints3D.cs 16 Active

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    transform.localScale.x = 距离;

    您需要从distance 变量创建新的Vector3,然后将其分配给transform.localScale

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

    transform.position = pA + (介于/2.0之间);

    只需在2.0 之后添加f 即可使其浮动。如果没有 f2.0 将变为 double 类型。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多