我想在两点之间绘制一条线,然后旋转或更多以将其转换为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活动
答案 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算法。请参阅Here和Here。