熱鍵
基本介面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Transform : 物件位置/旋轉/大小 Mesh Filter : 物件形狀 Box Collider : 物件碰撞設定 可以按 Edit Collider 按鈕決定物件碰撞的範圍 Mesh Renderer: 物件材質 可以在 Asset 建立材質,然後直接拉給物件使用 Rigidbady : 鋼體,和真實物理相關的設定 質量設定(Mass) 例如使用重力(Use Gravity) Is Kinematic 打勾物件就不會動
Script Asset -> Create -> C# Script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 預設程式碼 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } }
Start 會在一開始使用,之後就不會再呼叫
Update 會在每一次 frame 呼叫一次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { public bool varBool = false; public string name = "Jason"; public int number = 2; // Use this for initialization void Start () { Debug.Log(varBool); Debug.Log(name); Debug.Log(number); } // Update is called once per frame void Update () { } }
變數加上 public 可以在 Unity 裡面覆寫掉原本的值
有個要注意的地方是,你可以在play 模式
直接改變值,或是增加其他物件等等
畫面會及時顯示出來改變的東西,當你暫停時會回復到原始的狀態
改變play 模式
顯示的顏色可以去下面設定
1 Edit -> Preferences -> Color
匯入素材 1 2 3 4 5 6 7 Import New Asset Create -> 2D Object -> Sprite 再把剛剛匯入的素材拉到 Sprite 中的 Sprite Renderer 如果拉不過去,要先把素材的 TexTure Type 改為 "Sprite (2D & UI)"
一開始的素材是把多張圖合成一張
我們目的是把此張圖切成不同小張圖
首先 Sprite Mode 改為 Multiple
再按 Sprite Editor -> 按下 Slice 就會自動切 -> Apply
選第 7 張當作初始圖
控制人物 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 void Update () { Movement(); } void Movement() { if( Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow) ) { transform.Translate(0, speed * Time.deltaTime, 0); } if( Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow) ) { transform.Translate(0, -speed * Time.deltaTime, 0); } if( Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) ) { transform.Translate(-speed * Time.deltaTime, 0, 0); } if( Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow) ) { transform.Translate(speed * Time.deltaTime, 0, 0); } }
如果不想要你的人物能斜著走,改成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // Update is called once per frame void Update () { Movement(); } void Movement() { if( Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow) ) { transform.Translate(0, speed * Time.deltaTime, 0); } else if( Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow) ) { transform.Translate(0, -speed * Time.deltaTime, 0); } else if( Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) ) { transform.Translate(-speed * Time.deltaTime, 0, 0); } else if ( Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow) ) { transform.Translate(speed * Time.deltaTime, 0, 0); } }