Синтаксис:
Используется csharp
public Mesh generatedMesh;
public MeshFilter mf;
public float distance;
public float angle = 360f;
public int pointsCount = 35;
public List<Vector3> points;
public int[] tri;
public void Awake()
{
generatedMesh = new Mesh();
mf = GetComponent<MeshFilter>();
angle *= Mathf.Deg2Rad;
}
void Update()
{
Vector2 point;
points = new List<Vector3>();
tri = new int[pointsCount];
int ic = 0;
for (int i = 0; i < pointsCount; i += 3)
{
tri[i] = ic + 2;
tri[i + 1] = ic + 1;
tri[i + 2] = 0;
ic++;
}
points.Add(transform.position);
for (int i = 1; i < pointsCount; i++)
{
float _y = Mathf.Cos(angle / pointsCount * i);
float _x = Mathf.Sin(angle / pointsCount * i);
point.x = _x;
point.y = _y;
RaycastHit2D hit = Physics2D.Raycast(transform.position, point, 100f);
points.Add(transform.InverseTransformPoint(hit.point));
Debug.DrawLine(transform.position, hit.point);
}
generatedMesh.vertices = points.ToArray();
generatedMesh.triangles = tri;
mf.mesh = generatedMesh;
}
public MeshFilter mf;
public float distance;
public float angle = 360f;
public int pointsCount = 35;
public List<Vector3> points;
public int[] tri;
public void Awake()
{
generatedMesh = new Mesh();
mf = GetComponent<MeshFilter>();
angle *= Mathf.Deg2Rad;
}
void Update()
{
Vector2 point;
points = new List<Vector3>();
tri = new int[pointsCount];
int ic = 0;
for (int i = 0; i < pointsCount; i += 3)
{
tri[i] = ic + 2;
tri[i + 1] = ic + 1;
tri[i + 2] = 0;
ic++;
}
points.Add(transform.position);
for (int i = 1; i < pointsCount; i++)
{
float _y = Mathf.Cos(angle / pointsCount * i);
float _x = Mathf.Sin(angle / pointsCount * i);
point.x = _x;
point.y = _y;
RaycastHit2D hit = Physics2D.Raycast(transform.position, point, 100f);
points.Add(transform.InverseTransformPoint(hit.point));
Debug.DrawLine(transform.position, hit.point);
}
generatedMesh.vertices = points.ToArray();
generatedMesh.triangles = tri;
mf.mesh = generatedMesh;
}
Вот скрипт, он типа рабочий (относительно, сам же писал все-таки), но почему-то построенный по полученным путем рейкаста меш какой-то... неправильный и искаженный.
http://radikal.ru/lfp/s019.radikal.ru/i ... 84.png/htm
http://radikal.ru/lfp/s014.radikal.ru/i ... 63.png/htm
Причем по второй картинке видно, что он идеально правильно сшил некоторые точки, но почему-то не все.
В чем проблема?