Cara Membuat Main Menu Game di Unity

Standar

Hal pertama yang akan saya berbicara adalah tentang menu utama, kenapa karena hal yang paling mudah dibanding dengan pembuatan gamenya. konsep dasar dari menu ini adalah:
-Sebuah menu 3D
-Sebuah menu menggunakan bahasa C #
saya menyajikan tutorial text dan video tapi lebih jelasnya lihat video.

Cara pertama untuk membuat menu akan dengan mesh teks 3D Unity. Ini adalah jauh cara termudah untuk mendapatkan menu dan berjalan.
Pada dasarnya untuk memulai, membuat jala teks dalam GameObject / Buat Teks Other/3D, dan mengubah teks dari “Hello World” ke “Start Game”. Juga menambahkan kotak collider untuk itu, kita perlu ini collider kotak untuk membuat fungsi script kita benar. Setelah Anda mendapatkan semua yang mengatur, menduplikasi Start Game dan memindahkannya ke bawah beberapa unit. Mengubah teks untuk “Quit Game”. Sekarang posisi benda-benda sehingga mereka berada di depan kamera dengan cara yang Anda inginkan.

Create a new C# script, select MenuObject dan tambahkan code di bawahnya:

using UnityEngine;
using System.Collections;

//extend MonoBehaviour so that we can attach this script to an object
public class MenuObject: MonoBehaviour 
{
        //A public bool so that we can change in the editor whether or not the button will quit the application
public bool isQuit = false;

        //For the next three functions, the collider is absolutely necessary
        //these functions will not fire off if there is no collider


        //Fires off when the mouse hovers over the collider
        //When the mouse is over the item, change the colour of it to 
        //red so that the player knows that it is interacting with it
        void OnMouseEnter()
{
renderer.material.color = Color.red;
}

        //Fires off when the mouse leaves the object
        //We want to change the colour of the object back to it’s original when the mouse 
        //is no longer over it so that is exactly what we do here
        void OnMouseExit()
{
renderer.material.color = Color.white;
}


        //Fires off when the mouse is clicked while hovering over the object
        //Here we check if the bool was set to true or not and we load the level id not
        //or quit the application if true
        void OnMouseDown()
{
                if(isQuit)
{
                        Application.Quit();
}
                else
{
                        Application.LoadLevel(1);
}
}
}

Sekarang tinggal memasang script ke objek, dan pastikan Anda mengatur isQuit menjadi true pada objek permainan berhenti. Setelah ini bekerja, Anda perlu masuk ke pengaturan membangun dan mengatur tingkat sehingga mereka dapat dimuat dengan benar. Juga pastikan bahwa tingkat menu utama adalah sebelum tingkat lainnya. Hal ini tampak jelas, namun, Anda tidak pernah tahu. Juga, jika tingkat Anda memuat tidak 1 dalam pengaturan membangun, pastikan bahwa Anda mengubahnya ke apa pun yang Anda butuhkan untuk menjadi, Anda bahkan dapat mengubahnya ke nilai string yang merupakan nama dari tingkat aktual jika Anda ingin.

Jika instruksi yang hilang potongan, atau sesuatu yang bingung Anda memeriksa video di akhir posting ini, harus jelas semuanya.

Cara berikutnya untuk menciptakan menu utama adalah melalui delegasi dalam C #. Hal ini sangat mudah, dan kode ini cukup bersih juga, sehingga Anda tidak perlu khawatir tentang hal itu menjadi berantakan campur aduk.

Pada dasarnya untuk memulai, membuat script C # disebut DelegateMenu dan pasangkan ke kamera utama. Tidak ada yang nyata dibentuk untuk adegan ini kecuali Anda menambahkan beberapa jenis tekstur latar belakang dll pastikan pengaturan membangun sudah benar sebelum Anda mencoba dan mengujinya. Kode yang masuk ke dalam DelegateMenu.cs adalah:

using UnityEngine;
using System.Collections;

public class DelegateMenu : MonoBehaviour 
{
        //we have to declare a delegate so that we can use it in the OnGUI function
        private delegate void MenuDelegate();

        //in order to use a delegate we need to create a variable of MenuDelegate type so that it can be used throughout the code.
        private MenuDelegate menuFunction;

        //these variables are only here because it is cheaper to access a value from memory instead of through a static class
        private float screenHeight;
        private float screenWidth;
        private float buttonHeight;
        private float buttonWidth;

        // Use this for initialization
        void Start ()
{
screenHeight = Screen.height;
screenWidth = Screen.width;

buttonHeight = screenHeight * 0.3f;
buttonWidth = screenWidth * 0.4f;

                //here we set the menuFunction to point to the anyKey function, which is further down in the code
menuFunction = anyKey;
}

        void OnGUI()
{
        //in order to use a delegate we just call it like a function. Simple!
menuFunction();
}

        //in order to change the GUI we just change the function that menuFunction points to. It will basically take care of itself from that point.
        void anyKey()
{
                //check if the user pressed anything, if it did, change the menuFunction to show the main menu
                if(Input.anyKey)
{
menuFunction = mainMenu;
}

                //this is just text in the center of the screen telling the user to press any key
                GUI.skin.label.alignment = TextAnchor.MiddleCenter;
                GUI.Label(new Rect(screenWidth * 0.45f, screenHeight * 0.45f, screenWidth * 0.1f, screenHeight * 0.1f), “Press any key to continue”);
}

        //mainMenu only has two buttons in the version, one to play the game, and one to quit the game
        void mainMenu()
{
                if(GUI.Button(new Rect((screenWidth – buttonWidth) * 0.5f, screenHeight * 0.1f, buttonWidth, buttonHeight), “Start Game”))
{
                        Application.LoadLevel(“Level1”);
}

                if(GUI.Button(new Rect((screenWidth – buttonWidth) * 0.5f, screenHeight * 0.5f, buttonWidth, buttonHeight), “Quit Game”))
{
                        Application.Quit();
}
}
}

Iklan

Berikan Komentar

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s