Unity批量刷草工具及优化

基于Unity的植被刷工具

最近接手的一个需求是给美术同学提供一个刷植被工具,类似Unity地形的Paint Details.
之所以没有选择Unity自己的地形工具,是因为策划需求中需要动态让植被消失和显示,另外大批量草的优化自己控制相对好处理一些,当然还有Unity地形广受诟病的性能问题.

这里把实现过程做个简单的记录.
内容包括:编辑器开发,植被shader, 生成优化,显隐

先上结果
编辑器长这样:
编辑器
刷完草后的效果:
远景近景
动态显示消失:
在这里插入图片描述

编辑器部分:
编辑器部分逻辑比较简单,掌握一些基础的EditorAPI,然后根据自己设计的面板去罗列代码就可以。

面板核心代码:

public class PaintDetailsEW : EditorWindow
{
   
	//打开窗口
	[MenuItem("Window/Paint Details %g")]
	static void Open()
	{
   
	    var window = (PaintDetailsEW) EditorWindow.GetWindowWithRect(typeof(PaintDetailsEW), new Rect(0, 0, 386,320), false, "Paint Detail");
	    window.Show();
	    Enable = true;       
	}
	void OnInspectorUpdate()
    {
   
        Repaint();
    }

    void OnGUI()
    {
   
        CurrentSelect = Selection.activeTransform;
        
        GUILayout.Space(20);

        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.BeginVertical("box", GUILayout.Width(347));
        GUILayout.BeginHorizontal();
        GUILayout.Label("Add Assets", GUILayout.Width(125));
        
        AddObject = (GameObject)EditorGUILayout.ObjectField("", AddObject, typeof(GameObject), true, GUILayout.Width(160));
        if (GUILayout.Button("+", GUILayout.Width(40)))
        {
   
            for (int i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值