В уроке рассматривается, как сделать игровой мир в Unity3D. Программное создание мира и миры на основе террейна. Так же из видео вы узнаете, как из скрипта добавить объект на сцену в Unity, как программно изменить текстуру на объекте. Будет показано как добавлять горы, впадины, деревья, или проще сказать, как создать ландшафт для своей игры. А так же мы рассмотрим настройки террейна.
Скрипт из урока:
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 |
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { public Vector3 mapSize; public GameObject cube; public Material[] materials; // Use this for initialization void Start () { for (int x = 0; x < mapSize.x; x++) { for(int z = 0; z < mapSize.z; z++) { float noice = Mathf.PerlinNoise(x/mapSize.x, z/mapSize.z); int y = Mathf.RoundToInt(noice * mapSize.y); GameObject obj = Instantiate<GameObject>(cube); obj.transform.position = new Vector3(x, y, z); obj.GetComponent<Renderer>().material = (y < 5) ? materials[0] : (y < 6) ? materials[1] : (y < 9) ? materials[2] : materials[3]; } } } // Update is called once per frame void Update () { } } |
3 комментария
Terrain все его функции работают на поднять, опустить через шифт. Даже материал второй не присваивается, так как кисть работает как поднять вверх
Да, именно так и работает. Для присвоения второго материала (или правильнее сказать — для добавления еще одной текстуры) нужно переключиться в компоненте «Terrain» на вкладку «Paint Texture» (на этой кнопке нарисована кисть).
Подскажите пожалуйста, как сделать чтобы эта камера не прыгало по кубикам, а летала. Чтобы можно было зависнуть в воздухе, повисеть и потом перелететь в другое место?
Буду очень благодарен.