Advertisement
teleias

Lines

Mar 16th, 2015
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.00 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Lines : MonoBehaviour {
  5.    
  6.     public GameObject plane;
  7.    
  8.     public bool showMain = true;
  9.     public bool showSub = false;
  10.    
  11.     public int   gridSizeX{ get{ return (_gridSizeX < 0) ? _gridSizeX = 1: _gridSizeX; } set{ _gridSizeX = value; } }
  12.     public int   gridSizeY{ get{ return (_gridSizeY < 0) ? _gridSizeY = 1: _gridSizeY; } set{ _gridSizeY = value; } }
  13.     public int   gridSizeZ{ get{ return (_gridSizeZ < 0) ? _gridSizeZ = 1: _gridSizeZ; } set{ _gridSizeZ = value; } }
  14.     public float smallStep{ get{ return (_smallStep < 0) ? _smallStep = 1: _smallStep; } set{ _smallStep = value; } }
  15.     public float largeStep{ get{ return (_largeStep < 0) ? _largeStep = 1: _largeStep; } set{ _largeStep = value; } }
  16.    
  17.     private int _gridSizeX   = 100;
  18.     private int _gridSizeY   = 1;
  19.     private int _gridSizeZ   = 100;
  20.     private float _smallStep = 5;
  21.     private float _largeStep = 25;
  22.  
  23.     public float startX;
  24.     public float startY;
  25.     public float startZ;
  26.    
  27.     private float offsetY = 0;
  28.     private float scrollRate = 0.1f;
  29.     private float lastScroll = 0f;
  30.    
  31.     private Material lineMaterial;
  32.    
  33.     private Color mainColor = new Color(0f,1f,0f,1f);
  34.     private Color subColor = new Color(0f,0.5f,0f,1f);
  35.  
  36.     private float worldOffset;
  37.     void Start ()
  38.     {
  39.         worldOffset = gridSizeX/-2f;
  40.     }
  41.    
  42.     void CreateLineMaterial()
  43.     {
  44.        
  45.         if( !lineMaterial ) {
  46.             lineMaterial = new Material( "Shader \"Lines/Colored Blended\" {" +
  47.                                         "SubShader { Pass { " +
  48.                                         "    Blend SrcAlpha OneMinusSrcAlpha " +
  49.                                         "    ZWrite Off Cull Off Fog { Mode Off } " +
  50.                                         "    BindChannels {" +
  51.                                         "      Bind \"vertex\", vertex Bind \"color\", color }" +
  52.                                         "} } }" );
  53.             lineMaterial.hideFlags = HideFlags.HideAndDontSave;
  54.             lineMaterial.shader.hideFlags = HideFlags.HideAndDontSave;}
  55.     }
  56.    
  57.     void OnPostRender()
  58.     {    
  59.         /*
  60.         CreateLineMaterial();
  61.         // set the current material
  62.         lineMaterial.SetPass( 0 );
  63.        
  64.         GL.Begin( GL.LINES );
  65.        
  66.         if(showSub)
  67.         {
  68.             GL.Color(subColor);
  69.            
  70.             //Layers
  71.             for(float j = 0; j <= gridSizeY; j += smallStep)
  72.             {
  73.                 //X axis lines
  74.                 for(float i = 0; i <= gridSizeZ; i += smallStep)
  75.                 {
  76.                     GL.Vertex3(worldOffset+ startX, j + offsetY, startZ + i+worldOffset);
  77.                     GL.Vertex3(worldOffset+ gridSizeX, j + offsetY, startZ + i+worldOffset);
  78.                 }
  79.                
  80.                 //Z axis lines
  81.                 for(float i = 0; i <= gridSizeX; i += smallStep)
  82.                 {
  83.                     GL.Vertex3(worldOffset+ startX + i, j + offsetY, startZ+worldOffset);
  84.                     GL.Vertex3(worldOffset+ startX + i, j + offsetY, gridSizeZ+worldOffset);
  85.                 }
  86.             }
  87.            
  88.             //Y axis lines
  89.             for(float i = 0; i <= gridSizeZ; i += smallStep)
  90.             {
  91.                 for(float k = 0; k <= gridSizeX; k += smallStep)
  92.                 {
  93.                     GL.Vertex3(worldOffset+ startX + k, startY + offsetY, startZ + i+worldOffset);
  94.                     GL.Vertex3(worldOffset+ startX + k, gridSizeY + offsetY, startZ + i+worldOffset);
  95.                 }
  96.             }
  97.         }
  98.        
  99.         if(showMain)
  100.         {
  101.             GL.Color(mainColor);
  102.            
  103.             //Layers
  104.             for(float j = 0; j <= gridSizeY; j += largeStep)
  105.             {
  106.                 //X axis lines
  107.                 for(float i = 0; i <= gridSizeZ; i += largeStep)
  108.                 {
  109.                     GL.Vertex3(worldOffset+ startX, j + offsetY, startZ + i+worldOffset);
  110.                     GL.Vertex3(worldOffset+ gridSizeX, j + offsetY, startZ + i+worldOffset);
  111.                 }
  112.                
  113.                 //Z axis lines
  114.                 for(float i = 0; i <= gridSizeX; i += largeStep)
  115.                 {
  116.                     GL.Vertex3(worldOffset+ startX + i, j + offsetY, startZ+worldOffset);
  117.                     GL.Vertex3(worldOffset+ startX + i, j + offsetY, gridSizeZ+worldOffset);
  118.                 }
  119.             }
  120.            
  121.             //Y axis lines
  122.             for(float i = 0; i <= gridSizeZ; i += largeStep)
  123.             {
  124.                 for(float k = 0; k <= gridSizeX; k += largeStep)
  125.                 {
  126.                     GL.Vertex3(worldOffset+ startX + k, startY + offsetY, startZ + i+worldOffset);
  127.                     GL.Vertex3(worldOffset+ startX + k, gridSizeY + offsetY, startZ + i+worldOffset);
  128.                 }
  129.             }
  130.         }
  131.        
  132.        
  133.         GL.End(); */
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement