using UnityEngine;
using System.Collections;
using VolumetricLines;
///
/// Create a sin shaped line strip using a volumetric line strip
///
public class CreateSinShapedLineStrip : MonoBehaviour
{
public int m_numVertices = 50;
public Material m_volumetricLineStripMaterial;
public Color m_color;
public float m_start = 0f;
public float m_end = Mathf.PI;
// Use this for initialization
void Start ()
{
// Create an empty game object
GameObject go = new GameObject();
go.transform.parent = transform;
// Add the MeshFilter component, VolumetricLineStripBehavior requires it
go.AddComponent();
// Add a MeshRenderer, VolumetricLineStripBehavior requires it
go.AddComponent();
// Add the VolumetricLineStripBehavior and set parameters, like color and all the vertices of the line
var volLineStrip = go.AddComponent();
volLineStrip.DoNotOverwriteTemplateMaterialProperties = false;
volLineStrip.TemplateMaterial = m_volumetricLineStripMaterial;
volLineStrip.LineColor = m_color;
volLineStrip.LineWidth = 55.0f;
volLineStrip.LightSaberFactor = 0.83f;
var lineVertices = new Vector3[m_numVertices];
for (int i=0; i < m_numVertices; ++i)
{
float x = Mathf.Lerp(m_start, m_end, (float)i / (float)(m_numVertices-1));
float y = Mathf.Sin(x);
lineVertices[i] = gameObject.transform.TransformPoint(new Vector3(x, y, 0f));
}
volLineStrip.UpdateLineVertices(lineVertices);
}
void OnDrawGizmos()
{
Gizmos.color = Color.green;
for (int i=0; i < m_numVertices; ++i)
{
float x = Mathf.Lerp(m_start, m_end, (float)i / (float)(m_numVertices-1));
float y = Mathf.Sin(x);
Gizmos.DrawSphere(gameObject.transform.TransformPoint(new Vector3(x, y, 0f)), 5f);
}
}
}