博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity LineRenderer制作画版
阅读量:6173 次
发布时间:2019-06-21

本文共 2893 字,大约阅读时间需要 9 分钟。

Source:

using System.Collections;using System.Collections.Generic;using UnityEngine;public class AtwalPaint : MonoBehaviour {    public Material currentMaterial;    private Color paintColor = Color.red;    private float paintSize = 0.1f;    private bool isPress = false;    private LineRenderer lineRenderer;    private List
positions = new List
(); private int lineCount = 0; private void Update() { if (Input.GetMouseButtonDown(0)) { isPress = true; GameObject go = new GameObject("LineRenderer_" + lineCount); go.transform.parent = gameObject.transform; lineRenderer = go.AddComponent
(); 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; } } void AddPosition() { 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; bool isCollider = Physics.Raycast(ray, out hit); if (isCollider) { return hit.point; } return Vector3.zero; } #region color public void OnRedColorChange(bool isOn) { if (isOn) { paintColor = Color.red; } } public void OnGreenColorChange(bool isOn) { if (isOn) { paintColor = Color.green; } } public void OnBlueColorChange(bool isOn) { if (isOn) { paintColor = Color.blue; } } #endregion #region size public void On1SizeChange(bool isOn) { if (isOn) { paintSize = 0.1f; } } public void On2SizeChange(bool isOn) { if (isOn) { paintSize = 0.2f; } } public void On4SizeChange(bool isOn) { if (isOn) { paintSize = 0.4f; } } #endregion}

 

转载于:https://www.cnblogs.com/lurenjiashuo/p/unity-LineRenderer-paint.html

你可能感兴趣的文章
MPLS + BGP高级特性
查看>>
plist文件读写操作
查看>>
oracle resetlogs和noresetlogs 创建控制文件区别
查看>>
2013-7-17学习作业练习
查看>>
ZAM 3D入门教程(4):Extrusion编辑器
查看>>
《深入实践Spring Boot》一第2章 在Spring Boot中使用数据库2.1 使用MySQL
查看>>
C++语言基础 例程 字符串类
查看>>
堆排序
查看>>
Java的热部署(后期完善)
查看>>
css总结
查看>>
Python学习笔记之六:在VS中调用Python
查看>>
node.js获取参数的常用方法
查看>>
jquery 的 change() 方法的使用
查看>>
本地计算机上的XXX服务启动后又停止了
查看>>
<s:iterator>标签迭代数据不显示
查看>>
判断 SQLServer 触发器类型,支持多行
查看>>
SQL表连接查询(inner join、full join、left join、right join)
查看>>
阿里云OTS(开放结构化数据服务)可视化管理工具的设计和功能介绍
查看>>
Github创建分支
查看>>
转换PHP脚本成为windows的执行程序
查看>>