unity绘制线和绘制面

绘制线条代码,其实就是指定至少两个点,然后赋予贴图即可,不废话,上代码;

using UnityEngine;
using System.Collections;

public class LineT_1 : MonoBehaviour {
    private LineRenderer lineRender;
    private int lineLenght=4;
    private Vector3 v0 =new Vector3(1.0f,0f,0f);
    private Vector3 v1= new Vector3(0f,1.0f,0f);
    private Vector3 v2=new Vector3(0f,0f,1.0f);
    private Vector3 v3=new Vector3(1.0f,0f,0f);
    // Use this for initialization
    void Start () {
        lineRender=GetComponent<LineRenderer>();
        lineRender.SetVertexCount(lineLenght);
    }

    // Update is called once per frame
    void Update () {
        lineRender.SetPosition(0,v0);
        lineRender.SetPosition(1,v1);
        lineRender.SetPosition(2,v2);
        lineRender.SetPosition(3,v3);
    }
}

显示结果如图:

可以看出,这里主要就是用了

lineRender.SetPosition(index,point) 这个函数。第一个参数是当前要设置的点的索引,从0 开始; 第二个参数是这个点位置。是一个vector3 类型的值;

下面来看一下绘制面,上代码:
using UnityEngine;
using System.Collections;

public class MeshBulider : MonoBehaviour {
    private Mesh myMesh;
    private Vector3[] vertices;
    private Vector2[] uvPoints;
    // Use this for initialization
    void Start () {
        myMesh=GetComponent<MeshFilter>().mesh;
        vertices=new Vector3[]{new Vector3(5f,0f,0f),new Vector3(0f,5f,0f),new Vector3(0f,0f,5f),new Vector3(-5f,0f,0f),new Vector3(0f,-5f,0f),new Vector3(0f,0f,-5f)};
        uvPoints=new Vector2[]{new Vector2(0, 0), new Vector2(0, 5), new Vector2(5, 5),new Vector2(0, 0), new Vector2(0, 1), new Vector2(1, 1)};
    }

    // Update is called once per frame
    void Update () {

        myMesh.vertices=vertices;
        myMesh.uv=uvPoints;
        //如果不写triangles这个属性的话三角形不会被显示;
        myMesh.triangles=new int[]{0,1,2,3,4,5};
    }
}

实际上也是指定点,然后赋予贴图,不同的是绘制面的时候指定点用了两步:

第一:声明并实例化一个vector3 类型的数组(这个数组保存了面的各个顶点,所以,这个数组的元素数量也必须是3的倍数);

第二:为mesh 的triangles 属性赋值 ,其值是一个int类型的数组,元素个数与声明的顶点数组一一对应;

运行结果如图:

检视面板:

从图中也可以看出,贴图的渲染也是从第一个点开始渲染的,第一个点就是渲染贴图开始地方,对应贴图的左下角(这个不知道说的对不对,眼下是这么觉的~)。~~~

欢迎大家和我一起一起学习,一起进步~

时间: 2024-10-03 21:17:37

unity绘制线和绘制面的相关文章

Unity实现绘制线断一 ————利用LineRenderer组件划线的两种方式

这几天,做项目的时候需要用到绘制线的功能,我之前做过划线的功能,总体来说就是三种方式,一种是LineRenderer组件,第二种是GL绘制线,第三种就是Vectrosity插件,他可以绘制各种各图形, 1.首先来说一下LineRenderer组件划线的方式,他需要添加LineRenderer组件,也就需要创建空对象,还的创建Plane,在Plane上画线. 第一种方式:  #region  ---- 划线     GameObject line;     LineRenderer wire;  

iOS Quartz2D绘制线、矩形、弧、圆、文字、图片

利用Quartz2D中提供的图层上下文 Layer Graphics Context,进行简单绘制线.矩形.弧.圆.文字.图片 在storyBoard中得拖入控制器,添加多个UIView控件,并把各个UIView的class修改为自定义的类. 如: 绘制线: // // HJLineView.m // 画线三角矩形圆 // // Created by HJiang on 15/1/2. // Copyright (c) 2015年 HJiang. All rights reserved. //

canvas绘图详解-09-曲线的绘制原理

1.首先看看绘制曲线和绘制弧的区别 arc()是画一个标准的圆弧. arcTo() 方法在画布上创建介于两个切线之间的弧/曲线. 官方解释是这样的 (x1,y1)是弧的起始点 (x2,y2)是弧的终止点 radius是弧的半径 但是我觉得这样解释更通俗一点 (x0,y0)是上一个线段的结束点或者moveTo的点,和(x1,y1)与(x2,y2)三个点形成一个折线,从(x0,y0)开始画弧,radius是半径,弧结束于弧与(x1,y1)和(x2,y2)两点之间线段的切点. 注意弧起始的不一定是切点

CAD中如何使用构造线工具绘制图形?

CAD中如何使用构造线工具绘制图形,在CAD绘制图纸的时候,建筑设计师们需要使用到编辑器中的许多工具,特别是在绘制比较复杂的图纸的时候,我们都知道如何使用编辑器中的标注工具,但是在迅捷CAD编辑器中如何使用构造线工具绘制图形呢?那么本编文章就教教大家在CAD编辑器中如何使用构造线工具绘制图形.下面就和小编一起来看看吧!想要了解的朋友就一起来看看吧. 第一步:在电脑浏览器中搜索迅捷CAD编辑器,点击下载安装最新版本的CAD编辑器,安装完成后,然后鼠标双击打开CAD编辑器,进入到软件的操作界面. 第

DotSpatial 自定义MapFunction_mapMain中绘制线(未添加到图层中)

using DotSpatial.Controls; using DotSpatial.Symbology; using GeoAPI.Geometries; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; name

Unity实现绘制线断二-----用GL画矩形线框

今天有点时间,才记起来上一次写的画线框,接着上一节画线,我们这节来看一下GL画线 直接上代码 using UnityEngine; using System.Collections; using System.Collections.Generic; public class joint{       public Vector3 org;       public Vector3 end;   }   public class example : MonoBehaviour {     Eve

Unity&amp;Shader基础篇-绘制网格+圆盘

一.前言 尊重原创,转载请注明出处凯尔八阿哥专栏 上一章点击打开链接中已经画出了一个棋盘网格,首先来完善一下这个画网格的Shader,添加属性,属性包括网格的线的宽度,网格的颜色等.代码如下: Shader "Unlit/Chapter2-2" { Properties { _backgroundColor("面板背景色",Color) = (1.0,1.0,1.0,1.0) _axesColor("坐标轴的颜色",Color) = (0.0,0

在Unity中使用uGUI绘制自定义图形(饼状图 雷达图)

饼状图或者是雷达图是根据属性自动生成的自定义图形.这里展示了如何使用uGUI完成这一功能. 先附上我制作雷达图的控件的代码  UIPropWidget.cs using UnityEngine; using System.Collections.Generic; using UnityEngine.UI; /* * * 2 6 * * 3 7 * * 0 1 5 4 * * * 2 6位为属性0 3为属性1 0为属性2 4为属性3 7为属性4 */ public class UIPropWidg

R语言学习 - 线图绘制

线图是反映趋势变化的一种方式,其输入数据一般也是一个矩阵. 单线图 假设有这么一个矩阵,第一列为转录起始位点及其上下游5 kb的区域,第二列为H3K27ac修饰在这些区域的丰度,想绘制一张线图展示. profile="Pos;H3K27ac -5000;8.7 -4000;8.4 -3000;8.3 -2000;7.2 -1000;3.6 0;3.6 1000;7.1 2000;8.2 3000;8.4 4000;8.5 5000;8.5" 读入数据 profile_text <