SlideShare a Scribd company logo
1 of 41
Download to read offline
2D運動與碰撞處理I
Revised on October 4, 2019
 使用碰撞器元件
 使用剛體元件
 物件移動控制
 實作2D UFO遊戲
 顯示遊戲訊息
 真實世界兩個物體撞在⼀起會發⽣碰撞,遊戲世界裡要透過碰撞器來
模擬現實世界的碰撞情形
 碰撞器像是包覆在物件上的透明防護罩,代表物件實體邊界
 我們可依物件外觀,由選單命令Component> Physics 2D中選用合適
的碰撞器
 Box Collider 2D
 Circle Collider 2D
 Edge Collider 2D
 Polygon Collider 2D
 Capsule Collider 2D
 Composite Collider 2D
碰撞器 1/5
2
 Box Collider 2D(方框碰撞器)
 適用於矩形物體
 Circle Collider 2D(圓形碰撞器)
 適用於圓形物體
 Edge Collider 2D(邊緣碰撞器)
 適用於邊界、地板或天花板
 可編輯/調整線段節點
 即使將它編輯成封閉迴路,也只有在線段上才會碰撞,內部不會產⽣碰撞
碰撞器 2/5
3
Circle Collider Box Collider
 Polygon Collider 2D(多邊形碰撞器)
 能較精準貼近不規則物體,但會耗用較多運算資源
 Capsule Collider 2D(膠囊碰撞器)
 適用於膠囊形狀物體
 Composite Collider 2D(複合碰撞器)
 用來將子物件的碰撞器(Box Collider 2D及Polygon Collider 2D)合
併成⼀個碰撞器
 子物件勾選Used By Composite
 會自動附加Rigidbody 2D元件
碰撞器 3/5
4
Polygon ColliderCapsule Collider
碰撞器 4/5
5
Composite Collider 2D
Polygon Collider
Box Collider
 兩個具有碰撞器之物件相互碰觸時,物件程式腳本可以實作
OnCollisionXXX2D函式來處理碰撞作業
void OnCollisionEnter2D (Collision2D other) {
//進入碰撞時
}
void OnCollisionStay2D(Collision2D other) {
//在碰撞物上時
}
void OnCollisionExit2D(Collision2D other) {
//結束碰撞時
}
碰撞器 5/5
6
 當碰撞器被設定Is Trigger屬性,即成為觸發器
 其它碰撞器物件可以穿透觸發器物件
 通常道具元件會設定為Is Trigger
 在物件之程式腳本可使用下列函式來處理碰撞事件
void OnTriggerEnter2D(Collider2D other) {
//進入碰撞範圍時
}
void OnTriggerStay2D(Collider2D other) {
//在碰撞物上時
}
void OnTriggerExit2D(Collider2D other) {
//脫離碰撞範圍時
}
觸發器
7
 剛體是具物理性質的元件,可使物件在物理引擎控制下擬真運動
 物理性質:質量(Mass)、移動阻力(Linear Drag)、旋轉阻力(Angular
Drag)、重力(Gravity Scale)
 套用剛體元件可方便快速建立埸景中的運動物件
 Body Type決定剛體的運動及碰撞互動特性
 Dynamic
動態剛體完全模擬真實世界物理性質,物件會受物理作用力移動。動態剛
體會與其他剛體碰撞,是最耗效能的剛體類型
 Kinematic
運動剛體不受到重力和力的影響,對系統資源的要求較低,常用來製作移
動式平台
 Static
靜態剛體是⼀個固定不動物體,最不耗用系統資源
剛體 (Rigid body)
8
 動態剛體屬性
 Material
物件材質
 Simulated
啟用物理引擎模擬剛體功能
 Use Auto Mass
依據元件的碰撞器自動計算物體質量
 Mass
物體質量
 Linear Drag
物體移動的阻力係數
 Angular Drag
物體旋轉的阻力係數
2D剛體 (Rigidbody 2D) 1/4
9
 Gravity Scale
物體受重力影響的程度
 Collision Detection
碰撞檢測機制
 Discrete
新位置產⽣時才檢測;如果物體移動速度太快,在物理更新期間,剛體
可能與碰撞器重疊或穿過
 Continuous
Unity先計算新位置座標是否碰撞再移動剛體。會耗用較多運算資源
 Sleeping Mode
物體休眠模式,讓靜止的物體進入休眠以減低運算資源;例如箱子掉落到
地板後進入休眠
 Never Sleep
禁用休眠 (會耗用較多運算資源,儘可能不用)
2D剛體 (Rigidbody 2D) 2/4
10
 Start Awake
初始為活躍狀態
 Start Asleep
初始為休眠,但可以被碰撞喚醒
 Interpolate
在物理更新之間進行插值方式 (當運動趨於劇烈時有用)
 None
 Interpolate
基於前⼀幀中的位置座標計算插值使運動平滑
 Extrapolate
基於下⼀幀中的位置座標計算插值使運動平滑
 Constraints
設定剛體移動或旋轉之限制
2D剛體 (Rigidbody 2D) 3/4
11
 運動剛體屬性
 Use Full Kinematic Contacts
勾選時,運動剛體能與所有剛體產⽣碰撞;否則運動剛體只會與動態剛體
產⽣碰撞
 其餘屬性參照動態剛體屬性說明
 靜態剛體屬性
2D剛體 (Rigidbody 2D) 4/4
12
 更新座標方式(要計算位移,物體移動比較⽣硬不自然)
transform.Translate(Vector3.up * 0.1f);
transform.Translate(Vector3.down * 0.1f);
transform.Translate(Vector3.right * 0.1f);
transform.Translate(Vector3.left * 0.1f);
 對剛體物件施加外力(較吻合真實世界情境)
rigidbody2D = this.GetComponent<Rigidbody2D>();
Vector2 force2D = Vector2.zero;
force2D.y += forceValue;
//force2D.x += forceValue;
rigidbody2D.AddForce(force2D);
物件移動控制
13
 建立2D遊戲專案,新增場景,以ufo名稱存檔
 將Background.png、Pickup.png及UFO.png素材滙入到專案
AssetsSprites資料夾
2D UFO遊戲素材
14
Background.png
Pickup.png
UFO.png
 將Background.png拖曳到場景,重置Transform
 Main Camera元件
 Camera Background = Black
 Camera Size = 16.5
設定場景背景
15
 將UFO.png拖曳到場景
 Position(X,Y,Z) = (0, 0, 0)
 Scale(X,Y,Z) = (0.75, 0.75, 0.75)
 Order in Layer = 1
加入UFO物件
16
 為UFO元件新增UFOController程式腳本
讓UFO動起來 1/3
17
 編輯UFOController程式如下:
[SerializeField]
private float speed;
void Update() {
if (Input.GetKey (KeyCode.W)) {
this.transform.position += new Vector3 (0, speed * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.S)) {
this.transform.position += new Vector3 (0, -speed * Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.A)) {
this.transform.position += new Vector3 (-speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey (KeyCode.D)) {
this.transform.position += new Vector3 (speed * Time.deltaTime, 0, 0);
}
}
讓UFO動起來 2/3
18
 將UFO之Speed欄設定為10,執行測試
 可以用W、A、S、D鍵移動飛碟,但是飛碟移動非常⽣硬,沒有外太空
移動的感覺,且飛碟會穿透邊界
讓UFO動起來 3/3
19
 在UFO元件加上剛體性質
 選取UFO元件
 選單命令Component> Physics 2D> Rigidbody 2D
 執行測試發現UFO會受重力而往下墬落
 把Gravity Scale改成0,模擬太空無重力狀態
改用物理加速度方式移動 1/3
20
 修改UFOController程式如下:
[SerializeField]
private float speed;
private Rigidbody2D rigidbody2D = null;
void Start () {
rigidbody2D = this.GetComponent<Rigidbody2D> ();
}
void FixedUpdate() {
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector2 movement = new Vector2 (moveHorizontal, moveVertical);
rigidbody2D.AddForce (movement * speed);
}
改用物理加速度方式移動 2/3
21
 Force Value設定為3,執行測試;UFO能以加速度方式移動了,但是UFO還
是會飛出邊界
改用物理加速度方式移動 3/3
22
 在UFO元件加入圓形碰撞器
 選取UFO元件
 選單命令Component> Physics 2D> Circle Collider 2D
 調整Radius = 2.12,使讓圓形碰撞器大小符合UFO元件
設定UFO飛行邊界 1/2
23
 在Background元件加上邊緣碰撞器
 選取Background元件
 選單命令Component> Physics 2D> Edge Collider 2D
 點擊Edit Collider按鈕,使邊緣碰撞器環繞背景內緣四週
 執行測試,飛碟不會穿牆出去了
設定UFO飛行邊界 2/2
24
 將Main Camera拖曳到UFO元件底下
 執行測試
 遊戲鏡頭會以飛碟為中心
 飛碟撞到邊界,飛碟會旋轉;由於Camera鏡頭是依附在飛碟上,飛碟時旋
轉遊戲鏡頭也會跟著旋轉
使畫面鏡頭跟隨飛碟移動 1/2
25
 Main Camera元件加入CameraController程式腳本,強制鎖住鏡頭
旋轉角度
public class CameraController : MonoBehaviour {
void Start () {
}
void Update () {
this.transform.eulerAngles = Vector3.zero;
}
}
 執行測試
 飛碟可以在邊界內飛行,背景圖也不會旋轉了
使畫面鏡頭跟隨飛碟移動 2/2
26
 將Pickup.png拖曳到場景,命名為Pickup
 Order in Layer = 1
 Tag = PickUp
 加上剛體性質
 選單命令Component> Physics 2D> Rigidbody 2D
 Body Type設定為Kinematic
佈置金塊道具 1/5
27
 加入圓形碰撞器
 選單命令Component> Physics 2D> Circle Collider 2D
 勾選Is Trigger
 Raduis = 1
佈置金塊道具 2/5
28
 Pickups元件加入PickupController程式腳本,讓金塊自主旋轉
public class PickupController : MonoBehaviour {
[SerializeField]
private float RotateSpeed;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
this.transform.Rotate (new Vector3(0, 0, RotateSpeed * Time.deltaTime));
}
}
佈置金塊道具 3/5
29
 Rotate Speed設定為45
 執行測試,金塊會自主旋轉
佈置金塊道具 4/5
30
 將Pickup元件拖曳到AssetsPrefabs資料夾,建立Pickup預製元件
 從AssetsPrefabs資料夾拖曳Pickup預製元件到場景,擺設如下
 執行測試
 飛碟會穿過金塊
佈置金塊道具 5/5
31
 當飛碟碰到金塊,讓金塊消失;開啟UFOController.cs,加入以下
程式碼
void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.CompareTag ("PickUp")) {
other.gameObject.SetActive(false);
}
}
void OnTriggerExit2D(Collider2D other) {
}
 執行測試
 飛碟碰到金塊時,金塊會自動消失了
讓UFO收集金塊
32
 選單命令GameObject> UI> Text新增Text元件
,命名為CountText
 Anchor設為左上角 (Pos屬性的參考原點)
 Pos(X,Y,Z) = (10, -10, 0) (依實際情形調整)
 Width設為100,Height設為100
 Pivot(X,Y) = (0, 1)
 Text = CountText
 Font Size設為14
 Color設為黃色
顯示遊戲訊息 1/6
33
 選單命令GameObject> UI> Text新增Text元件
,命名為WinText
 Anchor設為中心
 Pos(X,Y,Z) = (0, 75, 0) (依實際情形調整)
 Width設為160,Height設為30
 Text設為WinText
 Alignment設為置中
 Font Size設為24
 Color設為黃色
顯示遊戲訊息 2/6
34
 新增UI元件時,會自動建立Canvas元件,而如果場景中已經有畫布,
新增的 UI 元素將會自動成為此畫布的子物件
 遊戲執行時,系統會依據Render Mode自動調整Canvas大小及位置
 Render Mode預設為Screen Space - Overlay
顯示遊戲訊息 3/6
35
Canvas
Game resolution
 修改UFOController程式腳本,當飛碟收集到金塊時更新CountText
訊息,收集滿12個金塊時顯示You win!
using UnityEngine;
using UnityEngine.UI;
public class UFOController : MonoBehaviour {
[SerializeField]
private float speed;
private Rigidbody2D rigidbody2D = null;
[SerializeField]
private Text countText;
[SerializeField]
private Text winText;
private int count;
void Start () {
rigidbody2D = this.GetComponent<Rigidbody2D> ();
count = 0;
winText.text = "";
SetCountText ();
}
顯示遊戲訊息 4/6
36
注意Text是定義在Unity.Engine.UI底下
void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.CompareTag ("PickUp")) {
other.gameObject.SetActive(false);
count = count + 1;
SetCountText ();
}
}
void SetCountText() {
countText.text = "Count: " + _count.ToString ();
if (count >= 12)
winText.text = "You win!";
}
}
顯示遊戲訊息 5/6
37
 選取UFO物件,然後把CounterText及WinText分別拖曳到UFO
Controller的對應欄位
顯示遊戲訊息 6/6
38
 Update()
 每個frame執行⼀次,更新週期是變動性的
 用來進行
 非剛體物件之移動
 簡單計時器
 讀取週邊輸入
 FixedUpdate()
 更新週期是固定的
 用來進行剛體物件調整
 選單命令Edit> Project Settings> Time
Update()與FixedUpdate() 1/3
39
 在Main Camera新增以下程式腳本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UpdateAndFixedUpdate : MonoBehaviour {
void Update () {
Debug.Log ("Update time: " + Time.deltaTime);
}
void FixedUpdate(){
Debug.Log ("FixedUpdate time: " + Time.deltaTime);
}
}
Update()與FixedUpdate() 2/3
40
Update()與FixedUpdate() 3/3
41
會變動
時間間距固定
時間間距會變動

More Related Content

What's hot

Shader model 5 0 and compute shader
Shader model 5 0 and compute shaderShader model 5 0 and compute shader
Shader model 5 0 and compute shader
zaywalker
 

What's hot (20)

Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
 
Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引Unity遊戲設計- Unity基礎指引
Unity遊戲設計- Unity基礎指引
 
シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
 
つぶやきGLSLのススメ
つぶやきGLSLのススメつぶやきGLSLのススメ
つぶやきGLSLのススメ
 
企劃提案概論 For students
企劃提案概論 For students企劃提案概論 For students
企劃提案概論 For students
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
【Unity道場 3月 ~ライティングとVFX Graph~】Unityのライティング機能のおさらい
【Unity道場 3月 ~ライティングとVFX Graph~】Unityのライティング機能のおさらい【Unity道場 3月 ~ライティングとVFX Graph~】Unityのライティング機能のおさらい
【Unity道場 3月 ~ライティングとVFX Graph~】Unityのライティング機能のおさらい
 
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
 
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
 
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
 
Shader model 5 0 and compute shader
Shader model 5 0 and compute shaderShader model 5 0 and compute shader
Shader model 5 0 and compute shader
 
Reactive Programming by UniRx for Asynchronous & Event Processing
Reactive Programming by UniRx for Asynchronous & Event ProcessingReactive Programming by UniRx for Asynchronous & Event Processing
Reactive Programming by UniRx for Asynchronous & Event Processing
 
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
 
シェーダーグラフで作るヒットエフェクト
シェーダーグラフで作るヒットエフェクトシェーダーグラフで作るヒットエフェクト
シェーダーグラフで作るヒットエフェクト
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
 
Lightmassの仕組み ~Precomputed Light Volume編~ (Epic Games Japan: 篠山範明)
 Lightmassの仕組み ~Precomputed Light Volume編~ (Epic Games Japan: 篠山範明) Lightmassの仕組み ~Precomputed Light Volume編~ (Epic Games Japan: 篠山範明)
Lightmassの仕組み ~Precomputed Light Volume編~ (Epic Games Japan: 篠山範明)
 
Niagara In UE4
Niagara In UE4Niagara In UE4
Niagara In UE4
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
 

Similar to Unity遊戲程式設計 - 2D運動與碰撞處理I

Yui3 初探
Yui3 初探Yui3 初探
Yui3 初探
isnull
 

Similar to Unity遊戲程式設計 - 2D運動與碰撞處理I (20)

Unity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理IUnity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理I
 
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理IIUnity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
 
Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用
 
I os 14
I os 14I os 14
I os 14
 
Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定 Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定
 
Roll a ball遊戲專案
Roll a ball遊戲專案Roll a ball遊戲專案
Roll a ball遊戲專案
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code clean
 
Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件
 
Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲
 
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定
 
Yui3 初探
Yui3 初探Yui3 初探
Yui3 初探
 
Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介
 
從 Singleton 談 constructor
從 Singleton 談 constructor從 Singleton 談 constructor
從 Singleton 談 constructor
 
Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计
 
基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册
 
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
 
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2Solitaire with Greenfoot #2
Solitaire with Greenfoot #2
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
 
180518 ntut js and node
180518 ntut js and node180518 ntut js and node
180518 ntut js and node
 
Android 智慧型手機程式設計
Android 智慧型手機程式設計Android 智慧型手機程式設計
Android 智慧型手機程式設計
 

More from 吳錫修 (ShyiShiou Wu)

More from 吳錫修 (ShyiShiou Wu) (20)

Vuforia AR影片程式設計
Vuforia AR影片程式設計Vuforia AR影片程式設計
Vuforia AR影片程式設計
 
micro:bit亮度感測應用
micro:bit亮度感測應用micro:bit亮度感測應用
micro:bit亮度感測應用
 
Vuforia AR 同時追踨多張辨識圖
Vuforia AR同時追踨多張辨識圖Vuforia AR同時追踨多張辨識圖
Vuforia AR 同時追踨多張辨識圖
 
micro:bit開關控制應用
micro:bit開關控制應用micro:bit開關控制應用
micro:bit開關控制應用
 
Vuforia AR 應用程式設計入門
Vuforia AR應用程式設計入門Vuforia AR應用程式設計入門
Vuforia AR 應用程式設計入門
 
Vuforia AR 應用程式準備作業
Vuforia AR應用程式準備作業Vuforia AR應用程式準備作業
Vuforia AR 應用程式準備作業
 
micro:bit LED顯示控制
micro:bit LED顯示控制micro:bit LED顯示控制
micro:bit LED顯示控制
 
IDE for micro:bit
IDE for micro:bitIDE for micro:bit
IDE for micro:bit
 
Microbit 1 introduction
Microbit 1 introductionMicrobit 1 introduction
Microbit 1 introduction
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
 
使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計
 
使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計
 
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
 
nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言
 
Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲
 
Python與Ardinio整合應用
Python與Ardinio整合應用Python與Ardinio整合應用
Python與Ardinio整合應用
 
mBlock積木式設計程式
mBlock積木式設計程式mBlock積木式設計程式
mBlock積木式設計程式
 
Arduino程式除錯
Arduino程式除錯Arduino程式除錯
Arduino程式除錯
 
Unity遊戲設計- 2D動畫製作及應用
Unity遊戲設計-  2D動畫製作及應用Unity遊戲設計-  2D動畫製作及應用
Unity遊戲設計- 2D動畫製作及應用
 
Arduino程式開發工具
Arduino程式開發工具Arduino程式開發工具
Arduino程式開發工具
 

Unity遊戲程式設計 - 2D運動與碰撞處理I