Unity3D点击绘制二维模型线和三维模型线

本文介绍了在Unity3D中如何使用Mesh来绘制二维和三维模型线,避免了LineRenderer在拐角处的变形问题。作者分享了一种基于三角函数和顶点坐标计算的方法,并提供了草图和DrawMeshLine类的代码示例,帮助读者理解实现细节。
摘要由CSDN通过智能技术生成

这两天在研究画线的东西。直到昨天才小有成效。拿出来和大家分享一下。先上图:




以前曾经尝试过用LineRender写画线的功能,但是在拐弯的时候会出现变形和扭曲。所以才决定用绘制Mesh的方法写一个画线的功能。

东西其实很简单,稍微有一点数学的知识,用到了三角函数。还有一些关于构造Mesh的相关代码。下面有草图一张:



黑色的线框代表画出来的模型线,PointA和PointB代表获取的起始点和终结点,A,B,C,D为Mesh的四个顶点。

已知起始点和终结点和线宽,就可以求出四个顶点的坐标。并根据这四个顶点绘制出Mesh.

至于具体的实现细节,大家看代码吧。


DrawMeshLine类:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class DrawMeshLine : MonoBehaviour 
{
	//线容器
	List<Vector3> LinePointContainer;
	//线宽
	public float LineWidth = 0.5f;
	//地形层
	public int Layer = 8;
	//线物体父物体
	GameObject LineObj;
	
	void Start () 
	{
		LinePointContainer = new List<Vector3>();
		LineObj = new GameObject("Lines");
	}
	
	void Update () 
	{
		if(Input.GetMouseButtonDown(0))
		{
			Ray 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值