Этот визард помогает спозиционировать один террейн, относительно другого. Код простой и GUI незамысловатый. Может как-нить найду время улучшить.
(не забудем, положить его в папку Editor)

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
53
54
55
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!");
    }
}
VN:F [1.9.3_1094]
Rating: 7.0/10 (3 votes cast)
VN:F [1.9.3_1094]
Rating: +3 (from 3 votes)
Wizard : Set Terrain Position, 7.0 out of 10 based on 3 ratings

2 комментария на «Wizard : Set Terrain Position»

  1. Armando

    lewisohn@dora.progandist” rel=”nofollow”>.…

    спс….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  2. gerard

    yo@treece.thorn” rel=”nofollow”>.…

    спасибо….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.



Страница 1 of 0