Creating a Vertex Painter in Unity 3D教学视频学习

该视频教程聚焦于Unity编辑器,讲解如何使用EditorWindow、SceneGUI以及点绘制技术。主要内容包括Handles类用于绘制控制手柄,HandleUtility用于避免误选择对象并获取View视图中的鼠标射线,以及GUIUtility的相关应用。
摘要由CSDN通过智能技术生成

    这个视频主要介绍了unity编辑器关于EditorWindow、SceneGUI以及点绘制的知识。

    EditorWindow的知识很普通,看官方教程就够了。这里不做特别记录。

    SceneGUI主要用到了Handles、HandleUtility、GUIUtility这三个类:

    1、Handles在教程中用于绘制控制手柄,如下图:

    

    2、HandleUtility在教程中通过HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive))这样的函数,达到绘图时避免误选择对象的效果。如果想要获得View视图中鼠标从屏幕发出的射线的话还可以用这句HandleUtility.GUIPointToWorldRay(MousePos),MousePos是鼠标在View视图屏幕中的位置。

    以下贴出核心类Gatu_VTXPainter_Window:

using UnityEngine;
using UnityEditor;
using System.Collections;

public class Gatu_VTXPainter_Window : EditorWindow
{
    #region Variable
    GUIStyle boxStyle;
    public Vector2 MousePos;
    public RaycastHit CurHit;
    public bool AllowPainting;
    public bool IsPainting;

    public float BrushSize = 1f;
    public float BrushMinSize = 0.01f;
    public float BrushMaxSize = 10f;
    public float BrushOpacity = 1f;
    public float BrushFalloff = 1f;
    public bool ChangingBrushValue;

    public GameObject curGO;
    public GameObject lastGO;
    public Mesh curMesh;

    public Color ForeBackgourndColor = Color.white;


    #endregion

    #region MainMethod
    public static void LaunchVertexPainter()
    {
        var win = EditorWindow.GetWindow<Gatu_VTXPainter_Window>(false, "绘图窗口", true);
        win.GenerateStyles();
    }

    void Update()
    {
        //Debug.Log("update");
        if (AllowPainting)
        {
            Selection.activeGameObject = null;

        }
        else
        {
            curGO = null;
            curMesh = null;
            lastGO = null;
        }

        if (CurHit.transform != null)
        {
            //Debug.L
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值