影片範例
這堂課希望你能學會:
- 新增兩個GameObject物件,一個Plane(平面)、一個Capsule(膠囊)
- 將Capsule(膠囊),重新命名為player
- 套用Materials(材質)在Plane物件,使它看起來像綠色的
- 新增一個空物件(Empty),把它命名為main
- 將main物件,套用main.cs程式碼
- 透過這端程式碼,你可以使用W鍵跟S鍵控制膠囊上下移動
- 課堂延伸:使用A鍵跟D鍵讓膠囊左右移動如何?
- 課堂延伸:
- 再新增一個膠囊,命名為emeny,並讓他看起來是藍色的
- 透過I、J、K、L鍵,控制emeny。
main.cs 程式碼:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class main : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetKey ("w")) { GameObject.Find ("player").transform.position += new Vector3 (0, 0, 0.05f); } if (Input.GetKey ("s")) { GameObject.Find ("player").transform.position += new Vector3 (0, 0, -0.05f); } } }
[3/5新增程式碼說明]
- 寫在void Start(){ }內的在Unity執行時將會跑一次
- 寫在void Update(){ }內的在Unity執行時將會重複跑
- GameObject.Find("XXX"),告訴Unity說找出名叫XXX的物件
- main.cs裡面中,我們要找出名叫"player"的物件
- 所以XXX我們是輸入player,也就是GameObject.Find("player")
- ".transform.position"代表物件的座標。
- +=表示對既有數值做加減,這個下次上課我會在說明詳細些。
- 也會慢慢把這個網頁內容補整齊些。
- .transform.position是使用3軸座標(三維向量),所以我們使用 new Vector3(X,Y,Z)
- 如果我們想要往Y軸移動0.5f,其他軸不動則輸入:
- GameObject.Find("XXX").transform.position+=new Vector3(0,0,0.5f);
- if是程式判斷式,if(XXX){GGG}代表當XXX裡面的事情發生了,才執行GGG的內容。
- 所以if (Input.GetKey ("s")) ,代表當偵測到使用者輸入s鍵時,執行{ }的內容。
最後結果檔案下載: Download [2021.10.30 修正連結]
[2017.03.12] 太驚訝了...winrar居然不支援7z的壓縮檔案,只好改成zip
[2017.03.12] 太驚訝了...winrar居然不支援7z的壓縮檔案,只好改成zip
有任何問題再私下敲我囉
sakmor@gmail.com
對新手是很好的學習.我是新手
回覆刪除寫遊戲真的很好玩~~對有任何問題歡迎提出唷!
刪除太感謝你了教學了!!!
回覆刪除好有趣好有成就感(因為本來就有一點c#的底子 + 都在玩winform)
感謝感謝!!!
哇哈哈哈
刪除謝謝你的鼓勵,讓我知道這個Bloger是有人在看的
其實這教學系列還有一篇沒有更新上去
我再找時間放出來吧
加油,我從高中時就一直對寫Game很有興趣,當時自學C Language半年就寫了個時下最流行的貪食蛇。現在進業界10年了,工作和寫Game無關,一直沒有目標,最近想寫個育教遊戲給小孩,希望您會一直維護這個Blog,我會一直follow您,加油!
回覆刪除很感動呢~謝謝你的鼓勵。
刪除我很幸運的在畢業後就一直待在遊戲產,我覺得作遊戲真的是非常好玩的一件事情。
斷斷續續製作的自己的獨立遊戲當中。
希望大學課餘能把所有的文章看完!!
回覆刪除加油唷 有看不懂的儘管發問
刪除下載下來卻不知道怎麼開....
回覆刪除https://sammaru.blogspot.com/2019/08/blog-post.html
刪除我新增教學囉
請問我做的敵人用transform.position+=new Vector3這個移動
回覆刪除但為什麼會穿過地形不會沿著地形高低起伏移動 請問要怎麼解決
因為你的地形、人物沒有放碰撞範圍 (collision) 還有剛體 (rigidbody) 的組件
刪除可參考:https://youtu.be/xv4Xt-B5EFc