Submit Search
Upload
Unity遊戲程式設計(05) 2D移動與碰撞處理II
•
1 like
•
6,989 views
吳錫修 (ShyiShiou Wu)
Follow
介紹使用剛體物件及碰撞器進行遊戲物件移動及碰撞處理
Read less
Read more
Software
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計
吳錫修 (ShyiShiou Wu)
Unity遊戲設計- 2D動畫製作及應用
Unity遊戲設計- 2D動畫製作及應用
吳錫修 (ShyiShiou Wu)
【schoo WEB-campus】「頭を使う」ってどういうことだろう? 先生:細谷 功
【schoo WEB-campus】「頭を使う」ってどういうことだろう? 先生:細谷 功
schoowebcampus
Recommended
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D 物理關節應用
Unity遊戲程式設計 - 2D 物理關節應用
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計(01) Unity簡介
Unity遊戲程式設計(01) Unity簡介
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計
吳錫修 (ShyiShiou Wu)
Unity遊戲設計- 2D動畫製作及應用
Unity遊戲設計- 2D動畫製作及應用
吳錫修 (ShyiShiou Wu)
【schoo WEB-campus】「頭を使う」ってどういうことだろう? 先生:細谷 功
【schoo WEB-campus】「頭を使う」ってどういうことだろう? 先生:細谷 功
schoowebcampus
Unity遊戲程式設計(02) 應用2D圖片物件
Unity遊戲程式設計(02) 應用2D圖片物件
吳錫修 (ShyiShiou Wu)
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
動作認識におけるディープラーニングの最新動向1 3D-CNN
動作認識におけるディープラーニングの最新動向1 3D-CNN
WEBFARMER. ltd.
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity Technologies Japan K.K.
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
【Unity道場】物理シミュレーション完全マスター
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用
吳錫修 (ShyiShiou Wu)
나만의 엔진 개발하기
나만의 엔진 개발하기
YEONG-CHEON YOU
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
Kaggle M5 Forecasting (日本語)
Kaggle M5 Forecasting (日本語)
Masakazu Mori
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
Deep Learning JP
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
UnityTechnologiesJapan002
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Unity Technologies Japan K.K.
PRML 2.3節
PRML 2.3節
Rei Takami
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
UnityTechnologiesJapan002
Extending the Unity Editor
Extending the Unity Editor
Masamitsu Ishikawa
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
UnityTechnologiesJapan002
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
harmonylab
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定
吳錫修 (ShyiShiou Wu)
More Related Content
What's hot
Unity遊戲程式設計(02) 應用2D圖片物件
Unity遊戲程式設計(02) 應用2D圖片物件
吳錫修 (ShyiShiou Wu)
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
動作認識におけるディープラーニングの最新動向1 3D-CNN
動作認識におけるディープラーニングの最新動向1 3D-CNN
WEBFARMER. ltd.
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity Technologies Japan K.K.
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
【Unity道場】物理シミュレーション完全マスター
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用
吳錫修 (ShyiShiou Wu)
나만의 엔진 개발하기
나만의 엔진 개발하기
YEONG-CHEON YOU
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
エピック・ゲームズ・ジャパン Epic Games Japan
Kaggle M5 Forecasting (日本語)
Kaggle M5 Forecasting (日本語)
Masakazu Mori
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
Deep Learning JP
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
UnityTechnologiesJapan002
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Unity Technologies Japan K.K.
PRML 2.3節
PRML 2.3節
Rei Takami
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
UnityTechnologiesJapan002
Extending the Unity Editor
Extending the Unity Editor
Masamitsu Ishikawa
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
UnityTechnologiesJapan002
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
harmonylab
What's hot
(20)
Unity遊戲程式設計(02) 應用2D圖片物件
Unity遊戲程式設計(02) 應用2D圖片物件
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
動作認識におけるディープラーニングの最新動向1 3D-CNN
動作認識におけるディープラーニングの最新動向1 3D-CNN
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unity道場】物理シミュレーション完全マスター
【Unity道場】物理シミュレーション完全マスター
Unity遊戲程式設計 - 2D粒子特效應用
Unity遊戲程式設計 - 2D粒子特效應用
나만의 엔진 개발하기
나만의 엔진 개발하기
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
Kaggle M5 Forecasting (日本語)
Kaggle M5 Forecasting (日本語)
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
【Unite Tokyo 2019】たのしいDOTS〜初級から上級まで〜
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PRML 2.3節
PRML 2.3節
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
Extending the Unity Editor
Extending the Unity Editor
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
Similar to Unity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
吳錫修 (ShyiShiou Wu)
component based html5 game engine
component based html5 game engine
hbbalfred
Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件
吳錫修 (ShyiShiou Wu)
Yui3 初探
Yui3 初探
isnull
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01
imacat .
Unity遊戲程式設計(03) 2D動畫製作及應用
Unity遊戲程式設計(03) 2D動畫製作及應用
吳錫修 (ShyiShiou Wu)
Roll a ball遊戲專案
Roll a ball遊戲專案
吳錫修 (ShyiShiou Wu)
Chinese hans
Chinese hans
firstnameEQBg0ks1W lastnameEQBg0ks1W
Chinese hans
Chinese hans
firstnamefgA7dbVGT lastnamefgA7dbVGT
testing leads fix for ppt2
testing leads fix for ppt2
dummyuser1analytics
Chinese hans
Chinese hans
gr0Jmmd7Q_qarobo gr0Jmmd7Q_qarobo
mBot教學(2)-mBlock積木式程式設計
mBot教學(2)-mBlock積木式程式設計
吳錫修 (ShyiShiou Wu)
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
imacat .
Unity遊戲程式設計 - 2D動畫製作及應用
Unity遊戲程式設計 - 2D動畫製作及應用
吳錫修 (ShyiShiou Wu)
Behind Tetris5
Behind Tetris5
Junwen Sun
Similar to Unity遊戲程式設計(05) 2D移動與碰撞處理II
(20)
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(09) 3D物件與光源設定
Unity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計(04) 2D運動與碰撞處理I
Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 3D物件與光源設定
Unity遊戲程式設計 - 2D運動與碰撞處理I
Unity遊戲程式設計 - 2D運動與碰撞處理I
component based html5 game engine
component based html5 game engine
Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - Roll a ball遊戲
Unity遊戲程式設計 - 應用Sprite物件
Unity遊戲程式設計 - 應用Sprite物件
Yui3 初探
Yui3 初探
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01
Unity遊戲程式設計(03) 2D動畫製作及應用
Unity遊戲程式設計(03) 2D動畫製作及應用
Roll a ball遊戲專案
Roll a ball遊戲專案
Chinese hans
Chinese hans
Chinese hans
Chinese hans
testing leads fix for ppt2
testing leads fix for ppt2
Chinese hans
Chinese hans
mBot教學(2)-mBlock積木式程式設計
mBot教學(2)-mBlock積木式程式設計
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
Unity遊戲程式設計 - 2D動畫製作及應用
Unity遊戲程式設計 - 2D動畫製作及應用
Behind Tetris5
Behind Tetris5
More from 吳錫修 (ShyiShiou Wu)
Vuforia AR影片程式設計
Vuforia AR影片程式設計
吳錫修 (ShyiShiou Wu)
micro:bit亮度感測應用
micro:bit亮度感測應用
吳錫修 (ShyiShiou Wu)
Vuforia AR同時追踨多張辨識圖
Vuforia AR同時追踨多張辨識圖
吳錫修 (ShyiShiou Wu)
micro:bit開關控制應用
micro:bit開關控制應用
吳錫修 (ShyiShiou Wu)
Vuforia AR應用程式設計入門
Vuforia AR應用程式設計入門
吳錫修 (ShyiShiou Wu)
Vuforia AR應用程式準備作業
Vuforia AR應用程式準備作業
吳錫修 (ShyiShiou Wu)
micro:bit LED顯示控制
micro:bit LED顯示控制
吳錫修 (ShyiShiou Wu)
IDE for micro:bit
IDE for micro:bit
吳錫修 (ShyiShiou Wu)
Microbit 1 introduction
Microbit 1 introduction
吳錫修 (ShyiShiou Wu)
Arduino overview
Arduino overview
吳錫修 (ShyiShiou Wu)
使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計
吳錫修 (ShyiShiou Wu)
使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計
吳錫修 (ShyiShiou Wu)
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
吳錫修 (ShyiShiou Wu)
nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言
吳錫修 (ShyiShiou Wu)
Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲
吳錫修 (ShyiShiou Wu)
Python與Ardinio整合應用
Python與Ardinio整合應用
吳錫修 (ShyiShiou Wu)
mBlock積木式設計程式
mBlock積木式設計程式
吳錫修 (ShyiShiou Wu)
Arduino程式除錯
Arduino程式除錯
吳錫修 (ShyiShiou Wu)
Arduino程式開發工具
Arduino程式開發工具
吳錫修 (ShyiShiou Wu)
Arduino程式快速入門
Arduino程式快速入門
吳錫修 (ShyiShiou Wu)
More from 吳錫修 (ShyiShiou Wu)
(20)
Vuforia AR影片程式設計
Vuforia AR影片程式設計
micro:bit亮度感測應用
micro:bit亮度感測應用
Vuforia AR同時追踨多張辨識圖
Vuforia AR同時追踨多張辨識圖
micro:bit開關控制應用
micro:bit開關控制應用
Vuforia AR應用程式設計入門
Vuforia AR應用程式設計入門
Vuforia AR應用程式準備作業
Vuforia AR應用程式準備作業
micro:bit LED顯示控制
micro:bit LED顯示控制
IDE for micro:bit
IDE for micro:bit
Microbit 1 introduction
Microbit 1 introduction
Arduino overview
Arduino overview
使用Makeblock App學習mBot程式設計
使用Makeblock App學習mBot程式設計
使用M部落App學習mBot程式設計
使用M部落App學習mBot程式設計
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學02 - Lua語言
nodeMCU IOT教學02 - Lua語言
Unity遊戲程式設計 - 2D Platformer遊戲
Unity遊戲程式設計 - 2D Platformer遊戲
Python與Ardinio整合應用
Python與Ardinio整合應用
mBlock積木式設計程式
mBlock積木式設計程式
Arduino程式除錯
Arduino程式除錯
Arduino程式開發工具
Arduino程式開發工具
Arduino程式快速入門
Arduino程式快速入門
Unity遊戲程式設計(05) 2D移動與碰撞處理II
1.
電子工程系應 用 電
子 組 電 腦 遊 戲 設 計 組 Unity遊戲程式設計(05) 2D移動與碰撞處理II 吳錫修 Oct 24, 2016
2.
shapethefuture 遊戲世界裡必須透過碰撞器來模擬現實世界的物體碰撞情形 碰撞器是在元件加入⼀層透明的偵測層,代表元件物理效應發⽣的 範圍
選單命令Component>Physics 2D內可找到所有碰撞器 Rigidbody 2D (剛體) 具備物理性質:摩擦力 (Mass)、線性阻力 ( Linear Drag)、旋轉阻力 (Angular Drag)、重力 (Gravity Scale) 剛體會被碰撞器阻擋 IsKinematic屬性 設定為運動物件,本身不受重力影響 埸景中的活動物件都應使用剛體來實現 剛體、碰撞器與觸發器 1/3 2 Wu, ShyiShiou Dept. of E.E., NKUT
3.
shapethefuture 碰撞器 Box
Collider 2D (方框碰撞器) 適用於矩形物件上 Circle Collider 2D (圓形碰撞器) 適用於球形物件上 Edge Collider 2D (邊緣碰撞器) 適用於邊界、地板或天花板 可編輯/調整線段節點 Polygon Collider 2D (多邊形碰撞器) 能較精準貼近不規則物件,但會耗用較多運算資源 剛體、碰撞器與觸發器 2/3 3 Wu, ShyiShiou Dept. of E.E., NKUT
4.
shapethefuture 觸發器 當碰撞器被設定Is
Trigger屬性,即成為觸發器 剛體物件可以穿透觸發器物件,但支援碰撞偵測 剛體物件之程式腳本必須實作OnTriggerXXX2D函式來處理碰撞作業 void OnTriggerEnter2D(Collider2D other) { //進入碰撞時 } void OnTriggerStay2D(Collider2D other) { //在碰撞物上時 } void OnTriggerExit2D(Collider2D other) { //結束碰撞時 } 剛體、碰撞器與觸發器 3/3 4 Wu, ShyiShiou Dept. of E.E., NKUT
5.
shapethefuture 在Update()中控制物件移動 更新座標方式
(自行計算位移,物體移動⽣硬不自然) 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); 物件移動控制 5 Wu, ShyiShiou Dept. of E.E., NKUT
6.
shapethefuture 預設場景上的物件都是放置在Default圖層 Layer屬性是用來做碰撞管理
Sorting Layer是2D遊戲物體前後層次管理 同圖層物件則依Order in Layer值,數值較 大者在上層, 若Order in Layer值相同時依 Position Z值 (與Main Camera遠近) 遊戲圖層及碰撞管理 1/4 Wu, ShyiShiou Dept. of E.E., NKUT6
7.
shapethefuture 管理圖層 選單命令Edit>Project
Settings>Tags and Layers來管理圖層 在Sorting Layers增加Background、Interactive、Player圖層 遊戲圖層及碰撞管理 2/4 下層 上層 Wu, ShyiShiou Dept. of E.E., NKUT7 新增圖層
8.
shapethefuture 將在Sorting Layers中加入的圖層,同步更新到Layers中 遊戲圖層及碰撞管理
3/4 8 Wu, ShyiShiou Dept. of E.E., NKUT
9.
shapethefuture 碰撞管理 選單命令Edit>Project
Settings>Physics 2D進行碰撞管理 設定Layer Collision Matrix 預設全部圖層間都會進行碰撞檢測處理 依據遊戲設計需求,設定圖層碰撞檢核 遊戲圖層及碰撞管理 4/4 9 Wu, ShyiShiou Dept. of E.E., NKUT
10.
shapethefuture 冒險家可左、右移動及跳躍 冒險家接觸到毒霧會受傷
冒險家靠近寶箱時會顯示提示箭頭,此時按空白鍵可開啟寶箱 探險遊戲設計 1/2 10 Wu, ShyiShiou Dept. of E.E., NKUT
11.
shapethefuture 新增2D遊戲專案 將預設場景以adventure名稱存檔
將floor.png、trap0.png、trap1.png、trap2.png、tresure0.png、 treasure1.png、up.png及主角分鏡素材滙入到專案AssetsSprite 資料夾 Main Camera Size設定為16 Background設定為深藍色 探險遊戲設計 2/2 11 Wu, ShyiShiou Dept. of E.E., NKUT
12.
shapethefuture 選單命令Edit>Project Settings>Tags
and Layers 在Sorting Layers增加Background、Interactive、Player圖層 在Layers加入Background、Interactive、Player圖層 建立遊戲圖層 12 Wu, ShyiShiou Dept. of E.E., NKUT
13.
shapethefuture 將floor拖曳到場景 Position設定為
(x, y, z) = (0, -8, 0) Scale設定為 (x, y, z) = (2.5, 0.2, 1) Sorting Layer設定為"Interactive" Layer設定為"Interactive" 設定碰撞器 在floor加入 Edge Collider 20邊緣碰撞器 選單命令Component>Physics 2D>Edge Collider 2D 建造地板 13 Wu, ShyiShiou Dept. of E.E., NKUT
14.
shapethefuture 下載主角素材 http://gameart.eu.org/files/adventure_girl.zip
將AssetsSpriteidle1拖曳到場景 命名為girl Position設定為 (x, y, z) = (-16, -5, 0) Sorting Layer設定為"Player" Layer設定為"Player" 加入剛體性質 選單命令Component>Physics 2D>Rigidbody 2D 加入圓形碰撞器 選單命令Component>Physics 2D>Circle Collider 2D Radius = 2.5,Offset X = -0.5 建立主角 14 Wu, ShyiShiou Dept. of E.E., NKUT
15.
shapethefuture 選取girl物件 選單命令Window>Animation開啟動畫編輯器,使用girl分鏡素材建立 以下動畫
建立girl_idle動畫 建立girl_walk動畫 建立girl_jump動畫 建立主角動畫 15 Wu, ShyiShiou Dept. of E.E., NKUT
16.
shapethefuture 選取girl物件 選單命令Window>Animator開啟Animator編輯器
建立⼀個名為act的Int參數 設定girl_idlegirl_walk動作狀態切換條件 取消Has Exit Time Settings/Transtion Duration設為0 在Consitions中新增act Equals 1 設定girl_idlegirl_jump動作狀態切換條件 取消Has Exit Time Settings/Transtion Duration設為0 在Consitions中新增act Equals 2 設定主角動畫狀態切換控制 1/2 16 Wu, ShyiShiou Dept. of E.E., NKUT
17.
shapethefuture 設定其它狀態girl_idle動作狀態切換條件 勾選Has
Exit Time Settings/Exit Time設定為1 Settings/Transtion Duration設為0 設定主角動畫狀態切換控制 2/2 17 Wu, ShyiShiou Dept. of E.E., NKUT
18.
shapethefuture 將AssetsSpritetrap0拖曳到場景 命名為trap
Position設定為 (x, y, z) = (6, -6, 0) Scale設定為 (x, y, z) = (0.8, 0.8, 1) Sorting Layer設定為"Interactive" Layer設定為"Interactive" 在Tag欄新增"trap"標籤 製作陷阱道具 1/2 18 Wu, ShyiShiou Dept. of E.E., NKUT
19.
shapethefuture 在trap物件加入方框碰撞器 選取trap物件
選單命令Component>Physics 2D>Circle Collider 2D 勾選「Is Trigger」屬性 (會偵測物體碰接,但允許剛體物件穿過) Offset Y=-2.2,讓碰撞邊界比貼近陷阱外緣 製作陷阱道具 2/2 19 Wu, ShyiShiou Dept. of E.E., NKUT
20.
shapethefuture 選取trap物件 選單命令Window>Animation開啟動畫編輯器,使用trap分鏡素材建立 以下動畫
建立trap動畫 製作陷阱道具動畫 20 Wu, ShyiShiou Dept. of E.E., NKUT
21.
shapethefuture 將AssetsSpritetreasures0拖曳到場景 命名為treasure
Position設定為 (x, y, z) = (21, -6, 0) Scale設定為 (x, y, z) = (0.6, 0.6, 1) Sorting Layer設定為"Interactive" Layer設定為"Interactive" 在Tag欄新增"treasure"標籤 製作寶箱道具 1/6 21 Wu, ShyiShiou Dept. of E.E., NKUT
22.
shapethefuture 在treasure物件加入方框碰撞器 選取treasure物件
Component->Physics 2D->Box Collider 2D 勾選「Is Trigger」屬性 將up素材拖曳到treasure物件上,做為treasure的子物件 命名為up Position設定為 (x, y, z) = (0, 6.5, 0) 製作寶箱道具 2/6 22 Wu, ShyiShiou Dept. of E.E., NKUT
23.
shapethefuture 在treasure物件加入TreasureControl程式腳本 public class
TreasureControl : MonoBehaviour { public Sprite open; //寶箱已開啟之Sprite圖片 public bool isOpen; //寶箱狀態 private bool _isShow = false; //指示箭頭顯示旗號 private float _alpha = 0.0f; private float _da = -0.01f; private GameObject _prompt; private SpriteRenderer _upSprite; void Awake () { _prompt=GameObject.Find("up"); //指示箭頭物件參照 _prompt.gameObject.SetActive (_isShow); //隱藏指示箭頭 } void Start () { _upSprite = _prompt.GetComponent<SpriteRenderer> (); } 製作寶箱道具 3/6 23 Wu, ShyiShiou Dept. of E.E., NKUT
24.
shapethefuture // Update is
called once per frame void Update () { if (isOpen) { //寶箱已被開啟 this.GetComponent<SpriteRenderer> ().sprite = open; _prompt.gameObject.SetActive (false); //隱藏指示箭頭 } else { if (_isShow) { _alpha += _da; //使指示箭頭淡入淡出動態顯示 _upSprite.material.color = new Color (1f, 1f, 1f, _alpha); if (_alpha>1.0f || _alpha<0.0f) _da = -_da; } } } 製作寶箱道具 4/6 24 Wu, ShyiShiou Dept. of E.E., NKUT
25.
shapethefuture //玩家到達寶箱位置 void OnTriggerEnter2D(Collider2D c)
{ if (c.gameObject.name == "girl") { _isShow = true; _prompt.gameObject.SetActive (_isShow); //顯示指示箭頭 } } //玩家離開寶箱位置 void OnTriggerExit2D(Collider2D c) { if (c.gameObject.name == "girl") { _isShow = false; _prompt.gameObject.SetActive (_isShow); //隱藏指示箭頭 _alpha = 0.0f; } } } 製作寶箱道具 5/6 25 Wu, ShyiShiou Dept. of E.E., NKUT
26.
shapethefuture 將AssetsSpritetreasures1素材(寶箱開啟圖片)拖曳到寶箱之 Treasure Control下的Open屬性 製作寶箱道具
6/6 26 Wu, ShyiShiou Dept. of E.E., NKUT
27.
shapethefuture 在girl物件加入GirlControl程式腳本 public class
GirlControl : MonoBehaviour { private Animator _animator; //主角動畫控制器 public float speed = 10f; //主角移動速度 private float _alpha = 0.0f; private float _da = -0.1f; private SpriteRenderer _playerSprite; private bool _isInjure = false; //主角跳躍旗號 private bool _isJump = false; //主角跳躍旗號 // Use this for initialization void Start () { _animator = this.GetComponent<Animator> (); _playerSprite = this.GetComponent<SpriteRenderer> (); } 設計主角程式腳本 1/5 27 Wu, ShyiShiou Dept. of E.E., NKUT
28.
shapethefuture //動畫撥放副程式 private void PlayAnimation(int
action){ _animator.SetInteger ("act", action); } // Update is called once per frame void Update () { if (Input.GetKey (KeyCode.RightArrow)) { this.transform.eulerAngles = Vector3.zero; //使主角面向右 this.transform.Translate (speed * Time.deltaTime, 0, 0); //主角向右移動 if (!_isJump) PlayAnimation (2); //跑步動畫 } else if (Input.GetKey (KeyCode.LeftArrow)) { this.transform.eulerAngles = new Vector3 (0, 180, 0); //使主角面向左 this.transform.Translate (speed * Time.deltaTime, 0, 0); //主角向左移動 if (!_isJump) PlayAnimation (2); //跑步動畫 } 設計主角程式腳本 2/5 28 Wu, ShyiShiou Dept. of E.E., NKUT
29.
shapethefuture else if (Input.GetKey
(KeyCode.UpArrow)) { if (!_isJump) { this.GetComponent<Rigidbody2D> ().AddForce (Vector2.up * 500); _isJump = true; //主角為跳躍狀態 PlayAnimation (1); //跳躍動畫 } } else if (!_isJump) { PlayAnimation (0); } if (_isInjure) { //顯示主角受傷效果 _alpha += _da; _playerSprite.material.color = new Color (1f, 1f, 1f, _alpha); if (_alpha > 1.0f || _alpha < 0.0f) _da = -_da; } } 設計主角程式腳本 3/5 29 Wu, ShyiShiou Dept. of E.E., NKUT
30.
shapethefuture void OnTriggerEnter2D(Collider2D c)
{ if (c.gameObject.tag == "trap") { //主角碰到陷阱 _isInjure = true; //主角為受傷狀態 } } void OnTriggerExit2D(Collider2D c) { if (c.gameObject.name == "trap") { //主角脫離陷阱 _isInjure = false; //主角為正常狀態 _playerSprite.material.color = new Color (1f, 1f, 1f, 1f); } } 設計主角程式腳本 4/5 30 Wu, ShyiShiou Dept. of E.E., NKUT
31.
shapethefuture void OnTriggerStay2D (Collider2D
c) { if (c.gameObject.tag == "treasure") { //主角在寶箱處 if (Input.GetKeyDown (KeyCode.Space)) { //按空白鍵取得寶藏 c.gameObject.GetComponent<TreasureControl>().isOpen=true; } } } void OnCollisionEnter2D(Collision2D c) { if (c.gameObject.name == "floor") { //主角接觸地板 _isJump = false; } } } 設計主角程式腳本 5/5 31 Wu, ShyiShiou Dept. of E.E., NKUT
Download now