Unity3D入门教程08.02:显示三角形

系列索引:Unity3D入门教程索引

上一篇:Unity3D入门教程:安装

双击桌面的图标

快捷方式

默认会打开Hub

Unity Hub 3.3.0

点击New Project按钮,创建新工程

因为没有使用过,默认会打开Learning模板,

learning

我们使用All templates/Core中的2D Core场景

2D core

点击Create project会下载并安装PlasticSCM(不知道这个是干什么用的)

安装PlasticSCM

安装完要重启,否则会报组织错误。

打开新工程

New Project

会发现标题栏名称最右侧显示DX11,我们要测试OpenGL显示,所以要修改。

打开程序目录,执行

1
./Unity.exe -force-opengl

OpenGL 4.5模式

会发现变为OpenGL模式了。

在下面的Assets窗口中点击鼠标右键,创建一个C#脚本。

添加C#脚本

新创建的脚本会有一些默认函数

默认函数

双击文件打开脚本

添加一些代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyGL : MonoBehaviour
{
public Material mat;
// Start is called before the first frame update
void Awake()
{

}

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

}

void OnPostRender()
{
// 清屏操作(可以不要此操作,这样场景中的对象才可以显示)
//GL.Clear(true, true, Color.black);
// 将当前矩阵变换对象push缓存下来,防止自己的操作影响到其它渲染操作
GL.PushMatrix();
// 设置绘制模式为2D绘制,设置这个模式之后屏幕左下角变为(0,0),屏幕右上角变为(1,1),注释之后变为3D真实坐标
GL.LoadOrtho();
// 绘制过程
for (var i = 0; i < mat.passCount; ++i)
{
// 设置shader,用过OpenGL ES2.0的同志应该知道,这个类似于combine glsl的过程,这里么有自己写,用的unity自带的sprite的shader
// 由于shader可能存在多个pass通道,所以采用遍历的方式将每个通道都绘制一遍,当然有些shader只有一个通道,比如这个自带的sprite的shader
// 也可以设置成SetPass(0),就是使用默认的第一个通道进行渲染
mat.SetPass(i);
// 设置绘制模式为线条模式(这个模式每两个顶点为一组)
GL.Begin(GL.LINES);
// 设置顶点颜色(设置下一个顶点的颜色,如果后面没有更改,继续保留这个颜色属性直至被更改)
GL.Color(Color.red);
// 向GL中增加一个点的坐标
GL.Vertex3(0, 0, 0);
GL.Vertex3(0.5F, 0.5F, 0);
GL.Color(Color.white);
GL.Vertex3(0.5F, 0.5F, 0);
GL.Color(Color.blue);
GL.Vertex3(1F, 0F, 0);
// 通知GL关闭当前绘制模式
GL.End();
}
// 将矩阵对象还原,与之前的push操作相对应
GL.PopMatrix();
}
}

点击Edit->Project Setting ->Player ->Other Settings

Player Setting

在Other Setting中找到Auto Graphics API for Windows,取消选中,并在弹出的界面中选择OpenGLCore

OpenGLCore

挂载至摄像机

选中Main Camera

Main Camera

在界面右侧会显示摄像机属性

Camera

点击Add Component按钮

选择脚本

Script

选择刚刚修改的文件

选择脚本文件

绑定到摄像头

绑定至摄像头

点击Mat右侧的那个带圆心按钮,

选择材质

选择Default-Line,否则运行的时候会提示mat没有赋值。

运行

点击显示窗口上方的播放-暂停-迭代按钮

按钮

会自动编译

编译

效果为

播放


Unity3D入门教程08.02:显示三角形
https://feater.top/unity3d/display-triangle-with-unity3d/
作者
JackeyLea
发布于
2023年5月24日
许可协议