您的位置:首页 > 移动开发 > Unity3D

unity跨多块地形进行编辑

2018-01-18 21:54 357 查看

unity在只有一块地形时 相对编辑地形还比较方便


但如果  当前场景内有很多块地形组成  要对每一块场景进行编辑时 就比较尴尬了  需要手动去 选中这块地形



然后 选中编辑类型 然后  添加模型材质。。。  然后 巴拉巴拉。。


SO  写个代码来帮我们以一个为模板来进行编辑  岂不妙哉


我这个主要是为了跨地形来种树的  你要其他的需求 可以自己扩展


好了  上代码




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

public class test : Editor{
Terrain tr;
public GameObject t1;
public GameObject t2;
static Terrain model;
// Use this for initialization
[MenuItem("地形编辑/启动多地形编辑")]
static void  StartMap () {
if (!Selection.activeGameObject.GetComponent<Terrain>())
{
Debug.LogError("模板创建失败,当前对象无地形组件");
return;
}
model = Selection.activeGameObject.GetComponent<Terrain>();
SceneView.onSceneGUIDelegate += SceneGUI;      }

private static void SceneGUI(SceneView sceneView)
{
if (Event.current.button==0)
{
RaycastHit hit;
Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
if (Physics.Raycast(ray,out hit))
{
if (Selection.activeObject != hit.transform.gameObject)
{
Selection.activeObject = hit.transform.gameObject;
TerrainData temp = hit.transform.gameObject.GetComponent<Terrain>().terrainData;
temp.treePrototypes = model.terrainData.treePrototypes;
}
}
}
}

[MenuItem("地形编辑/关闭多地形编辑")]
static void getTreePrefab()
{
SceneView.onSceneGUIDelegate -= SceneGUI;

}
}


使用方式 就是 首选选中一个地形为模板 然后点击 启动多地形编辑

然后就可以随意在编辑视图搞一搞了

搞完了记得点击    关闭多地形编辑  退出编辑模式

    

  

     

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: