{"id":4591,"date":"2017-08-27T16:57:00","date_gmt":"2017-08-27T08:57:00","guid":{"rendered":"https:\/\/unitycoder.com\/blog\/?p=4591"},"modified":"2017-08-30T02:41:44","modified_gmt":"2017-08-29T18:41:44","slug":"drawing-lines","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2017\/08\/27\/drawing-lines\/","title":{"rendered":"Drawing Lines"},"content":{"rendered":"<p><a href=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/08\/DrawLine.gif?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4594\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2017\/08\/27\/drawing-lines\/drawline\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/08\/DrawLine.gif?fit=680%2C203&amp;ssl=1\" data-orig-size=\"680,203\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"DrawLine\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/08\/DrawLine.gif?fit=680%2C203&amp;ssl=1\" class=\"alignnone size-full wp-image-4594\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/08\/DrawLine.gif?resize=680%2C203&#038;ssl=1\" alt=\"\" width=\"680\" height=\"203\" \/><\/a><\/p>\n<p>Hi dear reader!<\/p>\n<p>In this tutorial we want to learn how to draw a line in unity by user mouse movement and interaction.<\/p>\n<p>First we need a component that would be able to render simple lines.<br \/>\nOur choice is \u200b<a href=\"https:\/\/docs.unity3d.com\/Manual\/class-LineRenderer.html\" target=\"_blank\" rel=\"noopener\">Line Renderer<\/a>\u200b, this component is able to renderer lines between given positions so we can pass mouse position and let it to render them.<\/p>\n<p><strong>Getting Started<\/strong><\/p>\n<ol>\n<li>Create or Open an Empty scene<\/li>\n<li>Create a new Empty Game Object<\/li>\n<li>Create a new c# script and name it \u200bDrawLine \u200bthen put the below script into it<\/li>\n<\/ol>\n<p>Now, attach the \u200bDrawLine\u200b script to Created Empty Game Object and Play the game.<br \/>\nPress primary mouse button and move your mouse around screen, as you can see the line goes to draw lines in your mouse position.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Explanation<\/strong><\/p>\n<p>In the script we first check the mouse primary button is pressed or not, when it is pressed we go to next step and try to get the mouse position in world space. After that we try to check if the mouse position isn\u2019t exists in the line points, if the point doesn\u2019t exists then we increase the line positions count and then we add mouse position to line positions and all done.<\/p>\n<p>In the next tutorial we will try to use the line drawing in 2d mode and add a collider to the line.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Resources<\/strong><\/p>\n<p>This code mainly gathered from a gist and also is available in <a href=\"https:\/\/github.com\/UnityCommunity\/UnityLibrary\">Unity Library<\/a><\/p>\n<p>Thanks for reading.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Source Code<\/strong><\/p>\n<style>.gist table { margin-bottom: 0; }<\/style>\n<div style=\"tab-size: 8\" id=\"gist72877844\" class=\"gist\">\n<div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n<div class=\"gist-data\">\n<div class=\"js-gist-file-update-container js-task-list-container\">\n<div id=\"file-drawline-cs\" class=\"file my-2\">\n<div itemprop=\"text\"\n      class=\"Box-body p-0 blob-wrapper data type-c  \"\n      style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n      aria-label=\"DrawLine.cs content, created by hasanbayatme on 07:54AM on July 29, 2017.\"\n    ><\/p>\n<div class=\"js-check-hidden-unicode js-blob-code-container blob-code-content\">\n<p>  <template class=\"js-file-alert-template\"><\/p>\n<div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">\n  <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n    <span><br \/>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.<br \/>\n      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a><br \/>\n    <\/span><\/p>\n<div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<br \/>\n<\/a>\n<\/div>\n<\/div>\n<p><\/template><br \/>\n<template class=\"js-line-alert-template\"><br \/>\n  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\"><br \/>\n    <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n<\/span><\/template><\/p>\n<table data-hpc class=\"highlight tab-size js-file-line-container\" data-tab-size=\"4\" data-paste-markdown-skip data-tagsearch-path=\"DrawLine.cs\">\n<tr>\n<td id=\"file-drawline-cs-L1\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>\n<td id=\"file-drawline-cs-LC1\" class=\"blob-code blob-code-inner js-file-line\">using System.Collections;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L2\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>\n<td id=\"file-drawline-cs-LC2\" class=\"blob-code blob-code-inner js-file-line\">using System.Collections.Generic;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L3\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>\n<td id=\"file-drawline-cs-LC3\" class=\"blob-code blob-code-inner js-file-line\">using UnityEngine;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L4\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>\n<td id=\"file-drawline-cs-LC4\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L5\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>\n<td id=\"file-drawline-cs-LC5\" class=\"blob-code blob-code-inner js-file-line\">public class DrawLine : MonoBehaviour<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L6\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>\n<td id=\"file-drawline-cs-LC6\" class=\"blob-code blob-code-inner js-file-line\">{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L7\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>\n<td id=\"file-drawline-cs-LC7\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L8\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>\n<td id=\"file-drawline-cs-LC8\" class=\"blob-code blob-code-inner js-file-line\">\t[SerializeField]<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L9\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>\n<td id=\"file-drawline-cs-LC9\" class=\"blob-code blob-code-inner js-file-line\">\tprotected LineRenderer m_LineRenderer;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L10\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>\n<td id=\"file-drawline-cs-LC10\" class=\"blob-code blob-code-inner js-file-line\">\t[SerializeField]<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L11\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>\n<td id=\"file-drawline-cs-LC11\" class=\"blob-code blob-code-inner js-file-line\">\tprotected Camera m_Camera;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L12\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>\n<td id=\"file-drawline-cs-LC12\" class=\"blob-code blob-code-inner js-file-line\">\tprotected List&lt;Vector3&gt; m_Points;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L13\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>\n<td id=\"file-drawline-cs-LC13\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L14\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>\n<td id=\"file-drawline-cs-LC14\" class=\"blob-code blob-code-inner js-file-line\">\tpublic virtual LineRenderer lineRenderer<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L15\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>\n<td id=\"file-drawline-cs-LC15\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L16\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>\n<td id=\"file-drawline-cs-LC16\" class=\"blob-code blob-code-inner js-file-line\">\t\tget<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L17\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>\n<td id=\"file-drawline-cs-LC17\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L18\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>\n<td id=\"file-drawline-cs-LC18\" class=\"blob-code blob-code-inner js-file-line\">\t\t\treturn m_LineRenderer;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L19\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>\n<td id=\"file-drawline-cs-LC19\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L20\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>\n<td id=\"file-drawline-cs-LC20\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L21\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>\n<td id=\"file-drawline-cs-LC21\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L22\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>\n<td id=\"file-drawline-cs-LC22\" class=\"blob-code blob-code-inner js-file-line\">\tpublic virtual new Camera camera<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L23\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>\n<td id=\"file-drawline-cs-LC23\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L24\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>\n<td id=\"file-drawline-cs-LC24\" class=\"blob-code blob-code-inner js-file-line\">\t\tget<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L25\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"25\"><\/td>\n<td id=\"file-drawline-cs-LC25\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L26\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"26\"><\/td>\n<td id=\"file-drawline-cs-LC26\" class=\"blob-code blob-code-inner js-file-line\">\t\t\treturn m_Camera;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L27\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"27\"><\/td>\n<td id=\"file-drawline-cs-LC27\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L28\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"28\"><\/td>\n<td id=\"file-drawline-cs-LC28\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L29\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"29\"><\/td>\n<td id=\"file-drawline-cs-LC29\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L30\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"30\"><\/td>\n<td id=\"file-drawline-cs-LC30\" class=\"blob-code blob-code-inner js-file-line\">\tpublic virtual List&lt;Vector3&gt; points<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L31\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"31\"><\/td>\n<td id=\"file-drawline-cs-LC31\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L32\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"32\"><\/td>\n<td id=\"file-drawline-cs-LC32\" class=\"blob-code blob-code-inner js-file-line\">\t\tget<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L33\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"33\"><\/td>\n<td id=\"file-drawline-cs-LC33\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L34\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"34\"><\/td>\n<td id=\"file-drawline-cs-LC34\" class=\"blob-code blob-code-inner js-file-line\">\t\t\treturn m_Points;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L35\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"35\"><\/td>\n<td id=\"file-drawline-cs-LC35\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L36\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"36\"><\/td>\n<td id=\"file-drawline-cs-LC36\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L37\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"37\"><\/td>\n<td id=\"file-drawline-cs-LC37\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L38\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"38\"><\/td>\n<td id=\"file-drawline-cs-LC38\" class=\"blob-code blob-code-inner js-file-line\">\tprotected virtual void Awake ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L39\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"39\"><\/td>\n<td id=\"file-drawline-cs-LC39\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L40\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"40\"><\/td>\n<td id=\"file-drawline-cs-LC40\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( m_LineRenderer == null )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L41\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"41\"><\/td>\n<td id=\"file-drawline-cs-LC41\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L42\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"42\"><\/td>\n<td id=\"file-drawline-cs-LC42\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tDebug.LogWarning ( &quot;DrawLine: Line Renderer not assigned, Adding and Using default Line Renderer.&quot; );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L43\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"43\"><\/td>\n<td id=\"file-drawline-cs-LC43\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tCreateDefaultLineRenderer ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L44\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"44\"><\/td>\n<td id=\"file-drawline-cs-LC44\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L45\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"45\"><\/td>\n<td id=\"file-drawline-cs-LC45\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( m_Camera == null )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L46\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"46\"><\/td>\n<td id=\"file-drawline-cs-LC46\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L47\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"47\"><\/td>\n<td id=\"file-drawline-cs-LC47\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tDebug.LogWarning ( &quot;DrawLine: Camera not assigned, Using Main Camera or Creating Camera if main not exists.&quot; );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L48\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"48\"><\/td>\n<td id=\"file-drawline-cs-LC48\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tCreateDefaultCamera ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L49\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"49\"><\/td>\n<td id=\"file-drawline-cs-LC49\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L50\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"50\"><\/td>\n<td id=\"file-drawline-cs-LC50\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_Points = new List&lt;Vector3&gt; ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L51\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"51\"><\/td>\n<td id=\"file-drawline-cs-LC51\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L52\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"52\"><\/td>\n<td id=\"file-drawline-cs-LC52\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L53\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"53\"><\/td>\n<td id=\"file-drawline-cs-LC53\" class=\"blob-code blob-code-inner js-file-line\">\tprotected virtual void Update ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L54\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"54\"><\/td>\n<td id=\"file-drawline-cs-LC54\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L55\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"55\"><\/td>\n<td id=\"file-drawline-cs-LC55\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( Input.GetMouseButtonDown ( 0 ) )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L56\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"56\"><\/td>\n<td id=\"file-drawline-cs-LC56\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L57\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"57\"><\/td>\n<td id=\"file-drawline-cs-LC57\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tReset ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L58\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"58\"><\/td>\n<td id=\"file-drawline-cs-LC58\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L59\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"59\"><\/td>\n<td id=\"file-drawline-cs-LC59\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( Input.GetMouseButton ( 0 ) )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L60\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"60\"><\/td>\n<td id=\"file-drawline-cs-LC60\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L61\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"61\"><\/td>\n<td id=\"file-drawline-cs-LC61\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tVector3 mousePosition = m_Camera.ScreenToWorldPoint ( Input.mousePosition );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L62\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"62\"><\/td>\n<td id=\"file-drawline-cs-LC62\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tmousePosition.z = m_LineRenderer.transform.position.z;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L63\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"63\"><\/td>\n<td id=\"file-drawline-cs-LC63\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tif ( !m_Points.Contains ( mousePosition ) )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L64\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"64\"><\/td>\n<td id=\"file-drawline-cs-LC64\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L65\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"65\"><\/td>\n<td id=\"file-drawline-cs-LC65\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t\tm_Points.Add ( mousePosition );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L66\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"66\"><\/td>\n<td id=\"file-drawline-cs-LC66\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t\tm_LineRenderer.positionCount = m_Points.Count;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L67\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"67\"><\/td>\n<td id=\"file-drawline-cs-LC67\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t\tm_LineRenderer.SetPosition ( m_LineRenderer.positionCount &#8211; 1, mousePosition );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L68\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"68\"><\/td>\n<td id=\"file-drawline-cs-LC68\" class=\"blob-code blob-code-inner js-file-line\">\t\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L69\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"69\"><\/td>\n<td id=\"file-drawline-cs-LC69\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L70\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"70\"><\/td>\n<td id=\"file-drawline-cs-LC70\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L71\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"71\"><\/td>\n<td id=\"file-drawline-cs-LC71\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L72\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"72\"><\/td>\n<td id=\"file-drawline-cs-LC72\" class=\"blob-code blob-code-inner js-file-line\">\tprotected virtual void Reset ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L73\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"73\"><\/td>\n<td id=\"file-drawline-cs-LC73\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L74\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"74\"><\/td>\n<td id=\"file-drawline-cs-LC74\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( m_LineRenderer != null )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L75\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"75\"><\/td>\n<td id=\"file-drawline-cs-LC75\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L76\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"76\"><\/td>\n<td id=\"file-drawline-cs-LC76\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tm_LineRenderer.positionCount = 0;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L77\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"77\"><\/td>\n<td id=\"file-drawline-cs-LC77\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L78\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"78\"><\/td>\n<td id=\"file-drawline-cs-LC78\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( m_Points != null )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L79\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"79\"><\/td>\n<td id=\"file-drawline-cs-LC79\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L80\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"80\"><\/td>\n<td id=\"file-drawline-cs-LC80\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tm_Points.Clear ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L81\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"81\"><\/td>\n<td id=\"file-drawline-cs-LC81\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L82\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"82\"><\/td>\n<td id=\"file-drawline-cs-LC82\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L83\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"83\"><\/td>\n<td id=\"file-drawline-cs-LC83\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L84\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"84\"><\/td>\n<td id=\"file-drawline-cs-LC84\" class=\"blob-code blob-code-inner js-file-line\">\tprotected virtual void CreateDefaultLineRenderer ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L85\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"85\"><\/td>\n<td id=\"file-drawline-cs-LC85\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L86\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"86\"><\/td>\n<td id=\"file-drawline-cs-LC86\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer = gameObject.AddComponent&lt;LineRenderer&gt; ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L87\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"87\"><\/td>\n<td id=\"file-drawline-cs-LC87\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.positionCount = 0;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L88\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"88\"><\/td>\n<td id=\"file-drawline-cs-LC88\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.material = new Material ( Shader.Find ( &quot;Particles\/Additive&quot; ) );<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L89\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"89\"><\/td>\n<td id=\"file-drawline-cs-LC89\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.startColor = Color.white;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L90\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"90\"><\/td>\n<td id=\"file-drawline-cs-LC90\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.endColor = Color.white;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L91\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"91\"><\/td>\n<td id=\"file-drawline-cs-LC91\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.startWidth = 0.3f;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L92\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"92\"><\/td>\n<td id=\"file-drawline-cs-LC92\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.endWidth = 0.3f;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L93\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"93\"><\/td>\n<td id=\"file-drawline-cs-LC93\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_LineRenderer.useWorldSpace = true;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L94\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"94\"><\/td>\n<td id=\"file-drawline-cs-LC94\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L95\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"95\"><\/td>\n<td id=\"file-drawline-cs-LC95\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L96\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"96\"><\/td>\n<td id=\"file-drawline-cs-LC96\" class=\"blob-code blob-code-inner js-file-line\">\tprotected virtual void CreateDefaultCamera ()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L97\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"97\"><\/td>\n<td id=\"file-drawline-cs-LC97\" class=\"blob-code blob-code-inner js-file-line\">\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L98\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"98\"><\/td>\n<td id=\"file-drawline-cs-LC98\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_Camera = Camera.main;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L99\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"99\"><\/td>\n<td id=\"file-drawline-cs-LC99\" class=\"blob-code blob-code-inner js-file-line\">\t\tif ( m_Camera == null )<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L100\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"100\"><\/td>\n<td id=\"file-drawline-cs-LC100\" class=\"blob-code blob-code-inner js-file-line\">\t\t{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L101\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"101\"><\/td>\n<td id=\"file-drawline-cs-LC101\" class=\"blob-code blob-code-inner js-file-line\">\t\t\tm_Camera = gameObject.AddComponent&lt;Camera&gt; ();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L102\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"102\"><\/td>\n<td id=\"file-drawline-cs-LC102\" class=\"blob-code blob-code-inner js-file-line\">\t\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L103\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"103\"><\/td>\n<td id=\"file-drawline-cs-LC103\" class=\"blob-code blob-code-inner js-file-line\">\t\tm_Camera.orthographic = true;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L104\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"104\"><\/td>\n<td id=\"file-drawline-cs-LC104\" class=\"blob-code blob-code-inner js-file-line\">\t}<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L105\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"105\"><\/td>\n<td id=\"file-drawline-cs-LC105\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-drawline-cs-L106\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"106\"><\/td>\n<td id=\"file-drawline-cs-LC106\" class=\"blob-code blob-code-inner js-file-line\">}<\/td>\n<\/tr>\n<\/table>\n<\/div><\/div>\n<\/p><\/div>\n<\/div><\/div>\n<div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/hasanbayatme\/fcd12ca23cb6cb5dee69b6dc093d6dd5\/raw\/d4f024a28b4de3536fc8c2e6851f772269f063c6\/DrawLine.cs\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a><br \/>\n        <a href=\"https:\/\/gist.github.com\/hasanbayatme\/fcd12ca23cb6cb5dee69b6dc093d6dd5#file-drawline-cs\" class=\"Link--inTextBlock\"><br \/>\n          DrawLine.cs<br \/>\n        <\/a><br \/>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hi dear reader! In this tutorial we want to learn how to draw a line in unity by user mouse movement and interaction. First we need a component that would be able to render simple lines. Our choice is \u200bLine Renderer\u200b, this component is able [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":4594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[804,420,3],"tags":[247,76,87],"class_list":["post-4591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripts","category-tutorials","category-unity3d","tag-draw","tag-line","tag-mouse"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/08\/DrawLine.gif?fit=680%2C203&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-1c3","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=4591"}],"version-history":[{"count":2,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4591\/revisions"}],"predecessor-version":[{"id":4595,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4591\/revisions\/4595"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/4594"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=4591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=4591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=4591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}