- Home /
Question by
_Bidi_ · May 10, 2014 at 03:39 AM ·
linerenderermeshcollidermeshfilter
How to create mesh collider for line renderer ?
Hi all, I have a 2D project and I want to build a mesh renderer for line renderer in a game object by C# script but I dont know how to do. Please help! Any commend is much appriciated. using UnityEngine; using System.Collections; using System.Collections.Generic;
public class DrawLineCollider : MonoBehaviour {
LineRenderer line;
bool mousePressed;
List<Vector3> points;
Vector3[] pointsMesh;
Vector3 mousePos, endPoint;
MeshCollider mc;
// Use this for initialization
void Start () {
line = gameObject.AddComponent<LineRenderer> ();
line.SetVertexCount(0);
line.SetWidth(0.1f, 0.1f);
mousePressed = false;
points = new List<Vector3>();
gameObject.AddComponent<MeshFilter>();
mc = gameObject.AddComponent<MeshCollider>();
}
// Update is called once per frame
void Update () {
if(Input.GetMouseButtonDown(0)){
mousePressed = true;
line.SetVertexCount(0);
//Clear all points
points.Clear();
//Save startpoint
Vector3 startPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
startPoint.z = 0;
}
if(mousePressed){
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousePos.z = 0;
if(!points.Contains(mousePos)){
points.Add(mousePos);
line.SetVertexCount(points.Count);
line.SetPosition(points.Count-1, points[points.Count-1]);
}
//Convert list point of linerenderer to array for vertice of mesh
}
if(Input.GetMouseButtonUp(0)){
mousePressed = false;
//Save endpoint
endPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
endPoint.z = 0;
line.SetPosition(points.Count-1,points[0]);
//createLineCollider();
}
}
Comment