/// <summary> /// �v���n�u��ݒ肷�� /// </summary> /// <param name="path">�p�X</param> /// <param name="gen">��������A�v�m�t</param> /// <param name="mat">�}�e���A��</param> /// <param name="hmap">�����}�b�v</param> void SetupPrefab(string path, LyapunovGenerator gen, Material mat, Texture2D tex, Texture2D hmap) { var prefab = EditorUtility.CreateEmptyPrefab(path + this.text + ".prefab"); GameObject obj = null; TerrainSetup setup = new TerrainSetup( this.text, gen, mat, tex, hmap, this.width, this.height, this.depth, this.magnitude, this.maxColor, this.minColor, this.colorCurve); // ���b�V���̐��� switch (this.terrainType) { case TerrainType.Plane: // �̐��� obj = TerrainGenerator.CreatePlane(ref setup, ref path); break; case TerrainType.Box: // ���̐��� mat.mainTexture = null; obj = TerrainGenerator.CreateBoxies(ref setup); break; case TerrainType.TemplateBox: // �H�v�̂Ȃ����̐��� obj = TerrainGenerator.CreateTemplateBox(ref setup); break; case TerrainType.Hexagon: // �Z�p�� obj = TerrainGenerator.CreateHexagon(ref setup); break; case TerrainType.TemplateHexagon: // �Z�p���e���v�� obj = TerrainGenerator.CreateTemplateHexagon(ref setup); break; default: break; } EditorUtility.ReplacePrefab(obj, prefab); // �v���n�u��쐬 }
/// <summary> /// 六角柱のテンプレを生成 /// </summary> /// <param name="setup">設定</param> /// <returns>完成した奴</returns> public static GameObject CreateTemplateHexagon(ref TerrainSetup setup) { Terrain.TemplateHexagonBox temp = new Terrain.TemplateHexagonBox(ref setup); return temp.Create(); }
/// <summary> /// 六角柱を生成 /// </summary> /// <param name="setup">設定</param> /// <returns>完成した奴</returns> public static GameObject CreateHexagon(ref TerrainSetup setup) { Terrain.Hexagon hex = new Terrain.Hexagon(ref setup); return hex.Create(); }
/// <summary> /// 平板な板を生成 /// </summary> /// <param name="setup">設定</param> /// <param name="path">パス</param> /// <returns>ゲームオブジェクト</returns> public static GameObject CreatePlane(ref TerrainSetup setup, ref string path) { var obj = new GameObject(setup.text); var filter = obj.AddComponent<MeshFilter>(); var renderer = obj.AddComponent<MeshRenderer>(); // メッシュの生成 MeshGenerator mgen = new MeshGenerator(setup.gen, MeshGenerator.MeshType.Plane, setup.positionMagnitude); AssetDatabase.CreateAsset(mgen.Mesh, path + setup.text + ".asset"); filter.mesh = mgen.Mesh; // メッシュの設定 renderer.sharedMaterial = setup.material; return obj; }
/// <summary> /// 箱を並べた奴を生成 /// </summary> /// <param name="setup">設定用構造体</param> /// <returns>生成できたGameobject</returns> public static GameObject CreateBoxies(ref TerrainSetup setup) { Terrain.Box box = new Terrain.Box(ref setup); return box.Create(); }