Данный Wizard устанавливает Террейн addTerrain в позицию относительно Террейна mainTerrain. Или по X или по Z координатам. Удобно при создании большого мира из многих кусков-террейнов.
Синтаксис:
Используется javascript
enum LayoutMode
{
NORTH,
SOUTH,
WEST,
EAST,
ZERO
}
class NeoSetTerrainPosition extends ScriptableWizard
{
var mainTerrain : Terrain;
var addTerrain : Terrain;
var layout : LayoutMode = LayoutMode.NORTH;
private var show : boolean = false;
@MenuItem("NeoTools/Terrain/Set Terrain position")
static function CreateWizard ()
{
ScriptableWizard.DisplayWizard("Set Position", NeoSetTerrainPosition, "Set");
}
function OnWizardUpdate ()
{
helpString = "Well, let's go Rock!";
if(!mainTerrain) {
helpString = "I need a Main terrain!";
}
if(!addTerrain) {
helpString = "I need a terrain to adding!";
}
if (mainTerrain && addTerrain) show = true;
}
function OnWizardCreate ()
{
var mainTerrData = mainTerrain.terrainData;
var addTerrData = addTerrain.terrainData;
switch (layout)
{
case LayoutMode.NORTH : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z + mainTerrData.size.z);
break;
case LayoutMode.SOUTH : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z - mainTerrData.size.z);
break;
case LayoutMode.WEST : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x - mainTerrData.size.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z);
break;
case LayoutMode.EAST : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x + mainTerrData.size.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z);
break;
case LayoutMode.ZERO : addTerrain.transform.position = Vector3(0,0,0);
}
EditorUtility.DisplayDialog("Terrain done", "", "See You Again!");
}
}
{
NORTH,
SOUTH,
WEST,
EAST,
ZERO
}
class NeoSetTerrainPosition extends ScriptableWizard
{
var mainTerrain : Terrain;
var addTerrain : Terrain;
var layout : LayoutMode = LayoutMode.NORTH;
private var show : boolean = false;
@MenuItem("NeoTools/Terrain/Set Terrain position")
static function CreateWizard ()
{
ScriptableWizard.DisplayWizard("Set Position", NeoSetTerrainPosition, "Set");
}
function OnWizardUpdate ()
{
helpString = "Well, let's go Rock!";
if(!mainTerrain) {
helpString = "I need a Main terrain!";
}
if(!addTerrain) {
helpString = "I need a terrain to adding!";
}
if (mainTerrain && addTerrain) show = true;
}
function OnWizardCreate ()
{
var mainTerrData = mainTerrain.terrainData;
var addTerrData = addTerrain.terrainData;
switch (layout)
{
case LayoutMode.NORTH : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z + mainTerrData.size.z);
break;
case LayoutMode.SOUTH : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z - mainTerrData.size.z);
break;
case LayoutMode.WEST : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x - mainTerrData.size.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z);
break;
case LayoutMode.EAST : addTerrain.transform.position = Vector3(mainTerrain.transform.position.x + mainTerrData.size.x, mainTerrain.transform.position.y, mainTerrain.transform.position.z);
break;
case LayoutMode.ZERO : addTerrain.transform.position = Vector3(0,0,0);
}
EditorUtility.DisplayDialog("Terrain done", "", "See You Again!");
}
}