Vector 使用两个对象(向量)之间的纹理实例化平面

Vector 使用两个对象(向量)之间的纹理实例化平面,vector,unity3d,instantiation,unityscript,Vector,Unity3d,Instantiation,Unityscript,首先是一个小背景。 我正在尝试构建一个小围栏生成器功能。 下面是一个草图,展示了我的想法/我是如何看待它的。 Ohh没有足够的代表:链接此处:[http://imgur.com/ZougnQi][1] 实例化了两个对象(Pole1和Pole2) 当我在运行时围绕地形移动两极时,我希望 a:在这些极点之间创建一个具有纹理的平面(可平铺的透明栅栏) 当然,它会根据这两个点/极之间的距离进行缩放 b:根据两极之间的距离实例化新的极点 到目前为止,我已经将两个极点连接起来,我可以拖动它们,第三个极点正好

首先是一个小背景。 我正在尝试构建一个小围栏生成器功能。 下面是一个草图,展示了我的想法/我是如何看待它的。 Ohh没有足够的代表:链接此处:[http://imgur.com/ZougnQi][1] 实例化了两个对象(Pole1和Pole2) 当我在运行时围绕地形移动两极时,我希望 a:在这些极点之间创建一个具有纹理的平面(可平铺的透明栅栏) 当然,它会根据这两个点/极之间的距离进行缩放

b:根据两极之间的距离实例化新的极点

到目前为止,我已经将两个极点连接起来,我可以拖动它们,第三个极点正好放在这两个极点之间。 我找到了另一个帖子: 但无法让“SlxS”中的代码正常工作,它也不能真正帮助我在两极之间创建纹理平面/立方体

有效的代码:

    function Update () 
    {
        poles.transform.position = 0.5f*(pole1.transform.position + pole2.transform.position);
    }
    var pole1 : Transform;
    var pole2 : Transform;
    
    var poles : GameObject;
    
    
    var selectedDistance : int = 5;
    function Build()
    {
        var distance = Vector3.Distance(pole1.transform.position,pole2.transform.position);
        print(distance);
    
        
        poles.transform.position = 0.5f*(pole1.transform.position + pole2.transform.position);
        
        if((pole1.transform.position - pole2.transform.position).magnitude < selectedDistance)
        {
            print("more than 5 apart");
        }
        else
        {
            print("less than 5 apart");
        }
    }

你为什么不“让代码发挥作用”?出了什么问题?尽管我相信答案(和问题)和你们想要的完全不同。为什么不取极点的位置值(你不需要高度,我想只需要x和y)并使用它呢。首先,需要起始坐标(第一个极点)。然后需要结束坐标(第二极)来创建对象旋转的角度。使用这个角度,你可以旋转你的栅栏来匹配。我链接的代码不起作用的一个原因是我显然不能将向量转换成浮点。在上面花了几个小时,但无法修复它。如何使用位置来控制生成的对象?我的意思是,这并不是什么转折点,我想通过使用这些点之间的距离(向量)可以帮助控制方向和立方体的比例。但是除了我在代码中展示的内容外,我对如何从其他两个转换控制对象一无所知。编辑:顶线添加您可以尝试将围栏的transform.position设置为与pole.transform.position相同的位置。就您的示例而言,您在哪里尝试将Vector3转换为float?Vector3.magnitude与Vector3不同……但我如何才能“画”一个立方体到另一个极点的位置。查看了程序网格,但不明白为什么它会如此复杂。我猜这个比喻是:一根棍子在地上(pole1),另一根棍子(pole2)在“某处”地上。。突然,在这些点之间出现了一堵墙。:)让我试着解释一下:假设你们有两个极点,它们的高度都是1(z轴?)。第一极(P1)的位置在x=2和y=1上。P2:(5,5)。这意味着矩形(不是立方体…)的左侧将位于(2,1)上,高度为1。矩形的右侧必须位于(5,5)上,且高度为1。把它想象成画一条线。线的起点是第一个极点,线的终点是第二个极点。
function Update () 
{
    poles.transform.position = 0.5f*(pole1.transform.position + pole2.transform.position);
}
var pole1 : Transform;
var pole2 : Transform;

var poles : Transform;
function Build2() {
    var poleDistance : Vector2;    
    
    poles.localScale.z = Vector3.Distance(pole1.position,pole2.position); // Find the distance between 2 points
    print(poles.localScale.z);
    poles.LookAt(pole2);
}