Source:
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityengine; Public classAtwalpaint:monobehaviour { PublicMaterial currentmaterial; PrivateColor Paintcolor =color.red; Private floatPaintsize =0.1f; Private BOOLIspress =false; PrivateLinerenderer Linerenderer; Privatelist<vector3> positions =NewList<vector3>(); Private intLineCount =0; Private voidUpdate () {if(Input.getmousebuttondown (0) ) {ispress=true; Gameobject Go=NewGameobject ("Linerenderer_"+linecount); Go.transform.parent=Gameobject.transform; Linerenderer= go. Addcomponent<linerenderer>(); Linerenderer.startcolor=Paintcolor; Linerenderer.endcolor=Paintcolor; Linerenderer.startwidth=paintsize; Linerenderer.endwidth=paintsize; Linerenderer.material=currentmaterial; Linerenderer.numcapvertices=5; Linerenderer.numcornervertices=5; LineCount++; Addposition (); } if(ispress) {addposition (); } if(Input.getmousebuttonup (0) ) {Linerenderer=NULL; Positions. Clear (); Ispress=false; } } voidaddposition () {Vector3 position=Getmousepoint (); if(Positions. Count >0) { if(Vector3.distance (position, positions[positions. Count-1]) <0.1f) { return; }} position.z= -0.02f*LineCount; Positions. ADD (position); Linerenderer.positioncount=positions. Count; Linerenderer.setpositions (positions. ToArray ()); } Vector3 Getmousepoint () {ray Ray=Camera.main.ScreenPointToRay (input.mouseposition); Raycasthit hit; BOOLIscollider = Physics.raycast (Ray, outHit ); if(iscollider) {returnHit.point; } returnVector3.zero; } #regionColor Public voidOnredcolorchange (BOOLisOn) { if(isOn) {Paintcolor=color.red; } } Public voidOngreencolorchange (BOOLisOn) { if(isOn) {Paintcolor=Color.green; } } Public voidOnbluecolorchange (BOOLisOn) { if(isOn) {Paintcolor=Color.Blue; } } #endregion #regionSize Public voidOn1sizechange (BOOLisOn) { if(isOn) {paintsize=0.1f; } } Public voidOn2sizechange (BOOLisOn) { if(isOn) {paintsize=0.2f; } } Public voidOn4sizechange (BOOLisOn) { if(isOn) {paintsize=0.4f; } } #endregion}
Unity Linerenderer make a picture version