Unity 3D 實(shí)踐案例二

2020-07-11 12:00 更新

在腳本編寫中我們會(huì)經(jīng)常用到移動(dòng)、旋轉(zhuǎn)、縮放功能,可以使用transform.Translate()、transform.Rotate()transform.localScale 來實(shí)現(xiàn)這一效果。

本案例通過創(chuàng)建一個(gè)旋轉(zhuǎn)立方體的實(shí)踐操作,熟悉并掌握腳本編譯中移動(dòng)、旋轉(zhuǎn)、縮放的函數(shù)編寫以及與OnGUI 函數(shù)交互功能的實(shí)現(xiàn)。

案例設(shè)計(jì)

本案例計(jì)劃通過 C# 腳本在 Unity 內(nèi)創(chuàng)建一個(gè)簡單的 Cube 模型,采用 OnGUI 函數(shù)寫 3 個(gè)交互按鈕,實(shí)現(xiàn)與 Cube 模型進(jìn)行移動(dòng)、旋轉(zhuǎn)、縮放的交互功能。

案例實(shí)施

  1. 為游戲項(xiàng)目里的游戲場景添加兩個(gè)游戲?qū)ο螅?code>Cube和Directional,

Cube是腳本具體操作的游戲?qū)ο蟆?/p>

Directional是產(chǎn)生場景照明效果的游戲?qū)ο蟆?/p>

創(chuàng)建一個(gè) Plane 位于 Cube 下方。調(diào)整游戲場景中 3 個(gè)游戲?qū)ο蟮奈恢茫沟?Game 視圖達(dá)到最佳的效果。

  1. 在 Project 視圖里,新建一個(gè) C# 腳本,命名為 MyScript,打開此腳本并添加下面的代碼:

    using UnityEngine;
    using System.Collections;
    public class MyScript:MonoBehaviour
    {
        //聲明4個(gè)變量
        public GameObject myCube;
        public int transSpeed=100;
        public float rotaSpeed=10.5f;
        public float scale=3;
        void OnGUI(){
            if(GUILayout.Button("移動(dòng)立方體")){
                myCube.transform.Translate(Vector3.forward*transSpeed*Time.deltaTime, Space.World);
            }
            if(GUILayout.Button("旋轉(zhuǎn)立方體")){
                myCube.transform.Rotate(Vector3.up*rotaSpeed, Space.World);
            }
            if(GUILayout.Button("縮放立方體")){
                myCube.transform.localScale=new Vector3(scale, scale, scale);
            }
        }
    }

該腳本聲明了 4 個(gè)變量,并都使用 public進(jìn)行修飾,所以它們都可以作為屬性出現(xiàn)在組件下。

OnGUI() 函數(shù)用于在界面中顯示按鈕,玩家可以通過單擊按鈕實(shí)現(xiàn)與立方體的交互功能。

  1. 將腳本 MyScript 賦予 Main Camera

  1. 運(yùn)行游戲,在 Game 視圖的左上角會(huì)出現(xiàn) 3 個(gè)按鈕:“移動(dòng)立方體”、“旋轉(zhuǎn)立方體”和“縮放立方體”。單擊按鈕,即可完成對(duì)立方體對(duì)象的指定操作。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)