W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在腳本編寫中我們會(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í)施
Directional
,
Cube
是腳本具體操作的游戲?qū)ο蟆?/p>
Directional
是產(chǎn)生場景照明效果的游戲?qū)ο蟆?/p>
創(chuàng)建一個(gè) Plane
位于 Cube
下方。調(diào)整游戲場景中 3 個(gè)游戲?qū)ο蟮奈恢茫沟?Game 視圖達(dá)到最佳的效果。
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)與立方體的交互功能。
MyScript
賦予 Main Camera
。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: