SlideShare a Scribd company logo
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

Unity MARS導入セミナー(7月8日号) - Unityステーション
Unity MARS導入セミナー(7月8日号) - UnityステーションUnity MARS導入セミナー(7月8日号) - Unityステーション
Unity MARS導入セミナー(7月8日号) - Unityステーション
Unity Technologies Japan K.K.
 
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
 
Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and Performance
DevGAMM Conference
 
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
UnityTechnologiesJapan002
 
Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有
Imajin Kawabe
 
UE4 ビヘイビアツリー入門
UE4 ビヘイビアツリー入門UE4 ビヘイビアツリー入門
UE4 ビヘイビアツリー入門
r_ngtm
 
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
KLab Inc. / Tech
 
第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみたchonaso
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツ
infinite_loop
 
Advanced Methods for User Evaluation in AR/VR Studies
Advanced Methods for User Evaluation in AR/VR StudiesAdvanced Methods for User Evaluation in AR/VR Studies
Advanced Methods for User Evaluation in AR/VR Studies
Mark Billinghurst
 
Fbx解説 (1 構文編) (1)
Fbx解説 (1  構文編) (1)Fbx解説 (1  構文編) (1)
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
 
Ue4 bone controller
Ue4 bone controllerUe4 bone controller
Ue4 bone controller
Tatsuya Iwama
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
 
Augmented reality
Augmented realityAugmented reality
Augmented reality
HETALPANDYA13
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Yuji Otani
 
自宅サーバラックの勧め 〜ファシリティ編〜
自宅サーバラックの勧め 〜ファシリティ編〜自宅サーバラックの勧め 〜ファシリティ編〜
自宅サーバラックの勧め 〜ファシリティ編〜
h-otter
 
DeviceOwnerのお話
DeviceOwnerのお話DeviceOwnerのお話
DeviceOwnerのお話
まえすとろ
 
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMERVisual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 

What's hot (20)

Unity MARS導入セミナー(7月8日号) - Unityステーション
Unity MARS導入セミナー(7月8日号) - UnityステーションUnity MARS導入セミナー(7月8日号) - Unityステーション
Unity MARS導入セミナー(7月8日号) - Unityステーション
 
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
 
Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and Performance
 
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介
 
Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有Multipeer connectivityを使った 動画のリアルタイム端末間共有
Multipeer connectivityを使った 動画のリアルタイム端末間共有
 
UE4 ビヘイビアツリー入門
UE4 ビヘイビアツリー入門UE4 ビヘイビアツリー入門
UE4 ビヘイビアツリー入門
 
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
 
第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた
 
Unityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツUnityで意外と簡単・・・だけど難しいVRコンテンツ
Unityで意外と簡単・・・だけど難しいVRコンテンツ
 
Advanced Methods for User Evaluation in AR/VR Studies
Advanced Methods for User Evaluation in AR/VR StudiesAdvanced Methods for User Evaluation in AR/VR Studies
Advanced Methods for User Evaluation in AR/VR Studies
 
Fbx解説 (1 構文編) (1)
Fbx解説 (1  構文編) (1)Fbx解説 (1  構文編) (1)
Fbx解説 (1 構文編) (1)
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
Ue4 bone controller
Ue4 bone controllerUe4 bone controller
Ue4 bone controller
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
Augmented reality
Augmented realityAugmented reality
Augmented reality
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
 
自宅サーバラックの勧め 〜ファシリティ編〜
自宅サーバラックの勧め 〜ファシリティ編〜自宅サーバラックの勧め 〜ファシリティ編〜
自宅サーバラックの勧め 〜ファシリティ編〜
 
DeviceOwnerのお話
DeviceOwnerのお話DeviceOwnerのお話
DeviceOwnerのお話
 
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMERVisual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 

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

Unity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理IUnity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理IIUnity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理IIUnity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定 Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定
吳錫修 (ShyiShiou Wu)
 
Roll a ball遊戲專案
Roll a ball遊戲專案Roll a ball遊戲專案
Roll a ball遊戲專案
吳錫修 (ShyiShiou Wu)
 
Keep your code clean
Keep your code cleanKeep your code clean
Keep your code clean
macrochen
 
Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用Unity遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定
吳錫修 (ShyiShiou Wu)
 
Yui3 初探
Yui3 初探Yui3 初探
Yui3 初探isnull
 
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
吳錫修 (ShyiShiou Wu)
 
Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介
吳錫修 (ShyiShiou Wu)
 
從 Singleton 談 constructor
從 Singleton 談 constructor從 Singleton 談 constructor
從 Singleton 談 constructor
Luba Tang
 
Kissy editor开发与设计
Kissy editor开发与设计Kissy editor开发与设计
Kissy editor开发与设计
yiming he
 
基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册基于Eclipse和hadoop平台应用开发入门手册
基于Eclipse和hadoop平台应用开发入门手册
Zhen Li
 
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
imacat .
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
imacat .
 

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遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理IIUnity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 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遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用Unity遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用
 
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遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
 
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/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
 

More from 吳錫修 (ShyiShiou Wu)

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdfmbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdfmbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdfmbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdfmbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdfmbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdfmbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdfmbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdf
吳錫修 (ShyiShiou Wu)
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
吳錫修 (ShyiShiou Wu)
 
Python函式
Python函式Python函式
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
吳錫修 (ShyiShiou Wu)
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
吳錫修 (ShyiShiou Wu)
 
Python分支作業
Python分支作業Python分支作業
Python分支作業
吳錫修 (ShyiShiou Wu)
 
Python基本資料運算
Python基本資料運算Python基本資料運算
Python基本資料運算
吳錫修 (ShyiShiou Wu)
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
吳錫修 (ShyiShiou Wu)
 
micro:bit加速度感測應用
micro:bit加速度感測應用micro:bit加速度感測應用
micro:bit加速度感測應用
吳錫修 (ShyiShiou Wu)
 
C語言檔案處理
C語言檔案處理C語言檔案處理
C語言檔案處理
吳錫修 (ShyiShiou Wu)
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
吳錫修 (ShyiShiou Wu)
 

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

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
 
mbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdfmbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdf
 
mbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdfmbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdf
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf
 
mbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdfmbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdf
 
mbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdfmbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdf
 
mbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdfmbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdf
 
mbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdfmbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdf
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
 
mbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdfmbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdf
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
 
Python函式
Python函式Python函式
Python函式
 
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
 
Python分支作業
Python分支作業Python分支作業
Python分支作業
 
Python基本資料運算
Python基本資料運算Python基本資料運算
Python基本資料運算
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
 
micro:bit加速度感測應用
micro:bit加速度感測應用micro:bit加速度感測應用
micro:bit加速度感測應用
 
C語言檔案處理
C語言檔案處理C語言檔案處理
C語言檔案處理
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
 

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