羅見順網站
多媒體程式設計
(current)
3D遊戲引擎
行動遊戲程式設計
iOS APP程式設計
資料庫設計
電子商務網站設計
行動遊戲程式設計
課程介紹
先修課程為3D遊戲引擎
本課程目標針對手遊、網路資料庫、多人連線、手機攝影機控制、Google Map API、擴增實境程式設計為目標
學生自備器材Android平板或手機
環境安裝教學影片
教案
Canvas UI學習
換圖陣列
計時器
進入學習
考題列表
時鐘專案
廖士榮時鐘下載
進入學習
CV12 電子鐘範例
梁詠琳電子鐘下載
翻牌配對遊戲
遊戲FLA下載
前往學習
基礎篇生命靈數
第一次接觸Unity 3D遊戲引擎
影片學習請前往
>>
H01直升機旋轉動畫
目標示範
素材下載
建立專案
直升機影格分割
建立Animation
Build APP
H01.apk 安裝
專案下載
H02 直升機由上而下前進使用Animation
目標示範
建立空物件
加入子物件
建立Animation
專案下載
H03 直升機由上而下前進使用Script
目標示範
HeliMove.txt
設定新位置
this.transform.position = new Vector3(0, y, 0);
專案下載
H04 隨機產生直升機出發起點
HMRandom.txt
依照亂數產生新的X座標起點
x = Random.Range(-1.4f, 1.4f);
專案下載
H05 設定Prefab
建立Prefab
套上直升機物件
專案下載
H06 使用Prefab製作兩台直升機
專案下載
拉出兩個HeliPrefab,完成
H07 依照生存時間或飛行距離自動毀滅直升機
專案下載
設定速度、生存時間、最大飛行距離
public int speed = 1;
public double lifeTime = 5.0f;
public double dist = 10.0f;
每次進入update的時間不一,使用deltaTime可以確保飛行速度維持一致
y -= speed* Time.deltaTime;
當Time out或飛行距離已達上限,就自動銷毀自己
dist -= speed * Time.deltaTime;
if (Time.time > spawnTime + lifeTime || dist < 0) Destroy(this.gameObject);
H08 新增一個FirePoint連續發射直升機
專案下載
執行檔
SpawnHelicopter.txt
將Helicopter Prefab連接至bulletPrefab
public GameObject bulletPrefab;
引入FirePoint發射點物件
public Transform spawnPoint;
由count與frequence控制子彈發射速度
private int count = 0;
private double frequence = 0.5f;
當產生一個子彈go
private GameObject go;;
H09 變大與縮小
專案下載
ScaleChange.txt
float scale;
Vector3 scaleChange;
scale = Random.Range(0.5f, 2.0f);
scaleChange = new Vector3(1.0f, 1.0f, 0.0f) * scale;
this.transform.localScale = scaleChange;
M01 滑鼠游標位置
滑鼠座標顯示執行檔
專案下載
MousePos.txt
取得文字欄位
public GameObject MouseX;
Text txtMX;
txtMX = MouseX.gameObject.GetComponent<Text>();
取得滑鼠座標
Vector3 mPos = Input.mousePosition;
顯示座標
txtMX.text = mPos.x.ToString();
M02 滑鼠左鍵按下顯示游標位置
執行檔
專案下載
MouseBtnDown.txt
檢查是否按下滑鼠左鍵
if (Input.GetMouseButtonDown(0))
M03 匯出Helicopter & 匯入新專案中
打開H07專案匯出Helicopter Prefab,產生
Helicopter.unitypackage
匯入M02專案中
M04 射擊標的物
執行檔
ShootObject.unitypackage
Shoot.txt
遊戲物件需AddComponent cube collider
新增tag
物件套上tag
由攝影機射向滑鼠游標位置射出射線
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
射出距離100內
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
Debug.DrawLine(ray.origin, hit.point);
Debug.Log(hit.transform.tag);
txtMsg.text = hit.transform.tag;
M05 射除標的物與加入射擊聲
執行檔
ShootOutObject.unitypackage
ShootOutObject.txt
AudioClip 存放音效檔
public AudioClip HitSound;
遊戲物件需加入AudioSource
private AudioSource audioSource;
audioSource = GetComponent<AudioSource>();
播放射擊音效
audioSource.PlayOneShot(HitSound);
消滅偵測到的遊戲物件
Destroy(hit.transform.gameObject);
家庭作業01 直升機
執行檔下載
參考程式EX01
作業報告下載撰寫
家庭作業02 五隻敵機隨機偏移來襲
執行檔下載
匯入FiveEnemyStart套件進行作業
作業報告下載回答問題
驗收重點
五台直升機空中停三秒
隨機產生左右偏移值(-1.0 ~ 1.0)
向下飛行設定生命值10秒與飛行距離10為上限
期中考 戰機發射砲火 滑鼠點選左右移動戰機
執行檔下載
Fighter素材包
(包含戰機、砲火、雷射砲聲、背景圖)
H08AutoGenUnitypackage
ShootOutObjectUnitypackage
驗收重點
畫面寫上學號
輸出執行檔壓縮上傳
戰機與砲火Animation
砲火自戰機前每秒自動發射一發
砲火限時或現距離消失
砲火發出雷射砲聲
滑鼠點選背景戰機隨點選位置左右移動
SpaceWar01 Drag Fighter
執行檔
DragFighter.unitypackage
DragFighter.txt
加入plane作為bakcground接受滑鼠點擊
if (Input.GetMouseButtonDown(0))
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
if (hit.transform.tag == "Background")
px = hit.point.x;
py = hit.point.y;
this.transform.position = new Vector3(px, py, 0);
SpaceWar02 Fighter Fire
執行檔
FighterFire.unitypackage
Bullet.txt
DragFighter.txt
Fire bullets
Quaternion coneRandomRotation = Quaternion.Euler(0, 0, 0);
go = Spawn(bulletPrefab, spawnPoint.position, spawnPoint.rotation * coneRandomRotation);
SpaceWar03 Mouse Hit Enemy
執行檔
HitEnemy.unitypackage
EnemyHitted
.txt
使用Animations切換技術
設定bLive來記錄敵機是否消滅?
Animator m_Animator;
m_Animator.SetBool("bLive", false);
擊中的聲音
public AudioClip HitSound;
private AudioSource audioSource;
audioSource = GetComponent<AudioSource>();
audioSource.PlayOneShot(HitSound);
Animation中使用外部function來消失敵機
public void ObjectDestroy()
Destroy(this.gameObject);
SpaceWar04 Virtual Joystick Control Actor
執行檔
VJoystickActor.unitypackage
VirtualJoystick2D.unitypackage
joystick.cs掛在pointer影像上
ActorMove.cs掛在主角戰機上
主角戰機掛上AutoFire.cs可自動發射子彈
SpaceWar05 空中大戰遊戲第3版
執行檔
專案檔
遊戲開始跳場景 SceneManager.LoadScene(1);
遊戲結束 Application.Quit();
炮彈偵測擊中敵機(
BulletHitted.txt
)
主角機偵測被敵機擊中(
Hitted.txt
)
敵機飛行路線與管控(
Enemy.txt
)
全螢幕640x480強制設定(
ScreenSet.txt
)
期末測驗-小蜜蜂射擊遊戲
執行檔
專案素材下載
自我檢驗報告下載
自我檢驗報告內容
App第2章
2-1 Android App的主角:Activity
2-2 Android 程式的設計流程
2-3 認識Activity的基本程式邏輯
2-4 元件的佈局與屬性設定
U3D第3章
2D Sprite Animation
(補充教材)
參考目標: Flash
八個方向角色控制
建立八個方向的角色動作圖去背做成PNG檔
建立2D Sprit Animation
下載
Ch06_key8.zip
延伸作業: 將主角的8個方向動作做出來
成果原始檔
成果執行檔
操作說明
作者:郭一仁、曾昱豪、莊忠霖、趙俊任、曾子衡
黃律瑋、葉珊瑜、鄭婷婷、湯承諺、方慧能、童祺竣
U3D第4章 UI 介面設計
UISamples V01下載
UITextChange
動態文字顯示
執行檔下載
InputText
輸入文字
執行檔下載
Button
參考教學影片
按鈕事件
比對數字
執行檔下載
RandomNum
產生四個不重複亂數
採用陣列方式處理
亂數產生器
執行檔下載
延伸作業:比對數字
採用Button場景
新增RandomNum產生四個不重複亂數
按下按鈕比對數字
UI Slider(介面圓形滑桿)
GameObject/UI/Slider
勾選 Interactable
Transition選擇Color Tint
Direction:滑動方向
Min Value:最小值
Max Value:最大值
Whole Numbers:等分
Value:目前值
UI ScrollTextArea
UI Dropdown
UI Input Field
第5章 2D Character
官方教材範例下載
開啟2D Character
研討問題
角色為何可以站立在平台(Platforms)上?跳躍時如何控制頭部不會穿越頂上平台?
角色動畫的組成有哪些?動作彼此運作的條件機制有哪些?
說明鍵盤控制角色運動方式?
角色如何推動方塊?
追隨角色的鏡頭運鏡方式說明。
角色死亡重生的機制為何?
延伸作業:
PACMan
PACMan Flash版素材下載
作業項目
將PACMan角色及場景碰撞建立起來
PACMan鍵盤角色控制及碰撞控制
小粒丸放置及碰撞吃分的計分機制
鬼角色建立及追趕角色AI機制
角色死亡重玩機制
大粒丸放置及鬼變色後機制
開頭動畫及介面
FCU PBL 微學分專區 & 行動導覽遊戲專區
人體動作控制 HumanV2
平面影片播放控制速度
滑鼠滑入滑出按下控制
;
UI Button版
角色選單範例(林芝佑專題授權版)
;
執行檔
遊戲底框
;
溪頭導覽遊戲V1
第一人稱目視建物出現名稱之VR720場景
遊戲音效網站
遊戲音樂播放參考script
兩部影片自動切換
;
按鈕切換Videos
使用B612錄製鬼臉做
ARFace
Vuforia Core Sample 2018
;
套件
猜數字ASP.NET網頁版
;
ACCESS Database Engine
TestArea下載
http://cslo.nfu.edu.tw/TestArea/EditDB.aspx
http://cslo.nfu.edu.tw/TestArea/GetToDB.aspx?GN=1111
http://cslo.nfu.edu.tw/TestArea/ResponseData.aspx?GNID=30
Unity讀寫網站
經絡VR遊戲(使用VIVE)
溪頭導覽遊戲專區
溪頭景點導覽網站
(Flash)
溪頭景點導覽Flash分鏡下載
(Flash)
平面影片播放控制速度
;
里程速度V5
;
定速里程結束V6
主選單按鈕
路線1
景點語音介紹
(
Audio下載
;
文字腳本
)
景點導覽V3Skip專案檔
;
V4完整版
; V4執行檔
拼圖遊戲V4
;
V5
頓阿巴娜AR範例專區
AR測試展板1
AR測試展板2
Android APP載點
iOS APP載點
vuforia AR 開發者網站
Vuforia 6.5 SDK下載
vuforia-unity-6-2-10.unitypackage
Marker1
Video1
Audio1
已註冊好的資料
AR範例程式
,
執行檔
How To Markerless AR with Vuforia and GPS Based Augmented Reality?
Model Targets -
Vuforia's
latest object recognition technology
Unity VR 360 Video Tutorial - How to Render a 360-Degree Video
Google VR SDK v1.1 + Unity3D - Adding a Spherical 360° Photo