gpt4 book ai didi

unity-game-engine - 在unity 3d上绘制3D多边形

转载 作者:行者123 更新时间:2023-12-02 21:24:43 26 4
gpt4 key购买 nike

我正在为我正在进行的一个项目尝试 Unity。

我正在尝试从我拥有的一组坐标中绘制 3D 多边形。

所以我现在要做的是在两个点之间构建一行立方体。我计划将这些点构建成实体形状或只是“墙壁”以形成一个房间。然而,它似乎没有按预期工作。请指教。

drawCube( Vector3(10,0,14),Vector3(70,0,14)); 
drawCube( Vector3(90,0,14),Vector3(60,87,45));

function drawCube(v1,v2) {



pA = v1;
pB = v2;
var plane : GameObject = GameObject.CreatePrimitive(PrimitiveType.Cube);

var between:Vector3 = pB - pA;
var distance:float = between.magnitude;
plane.transform.localScale.x = distance;
plane.transform.localScale.y=10;
plane.transform.position = pA + (between / 2.0);
plane.transform.LookAt(pB);

}

更新:我也尝试过使用网格,但我得到的只是下面的图像。我究竟做错了什么?

我正在努力实现这样的目标

enter image description here

最佳答案

您可以创建基元并操作它们,但是如果您将来需要扩展或更改您的需求,这将非常限制您。我建议使用程序网格来根据需要创建所需的几何体。基础知识并不太难,只需根据给定的一些顶点从其基本组件构造网格对象即可。以下是构造 3d 四边形的示例:

using UnityEngine;
using System.Collections.Generic;

public class SquareMaker : MonoBehaviour {

public List<Vector3> points;

void Start()
{
GameObject threeDSquare = new GameObject("3DSquare");
threeDSquare.AddComponent<MeshRenderer>();
threeDSquare.AddComponent<MeshFilter>();
threeDSquare.GetComponent<MeshFilter>().mesh = CreateMesh(points);
}

private Mesh CreateMesh(List<Vector3> points)
{
List<int> tris = new List<int>(); // Every 3 ints represents a triangle
List<Vector2> uvs = new List<Vector2>(); // Vertex position in 0-1 UV space
/* 4 points in the list for the square made of two triangles:
0 *--* 1
| /|
|/ |
3 *--* 2
*/
tris.Add(1);
tris.Add(2);
tris.Add(3);
tris.Add(3);
tris.Add(0);
tris.Add(1);
// uvs determine vert (point) coordinates in uv space
uvs.Add(new Vector2(0f, 1f));
uvs.Add(new Vector2(1f, 1f));
uvs.Add(new Vector2(1f, 0f));
uvs.Add(new Vector2(0f, 0f));

Mesh mesh = new Mesh();
mesh.vertices = points.ToArray();
mesh.uv = uvs.ToArray();
mesh.triangles = tris.ToArray();
mesh.RecalculateNormals();
return mesh;
}
}

关于unity-game-engine - 在unity 3d上绘制3D多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com