---
# System prepended metadata

title: Project Ping Pong
tags: [Unity]

---

---
title: Project Ping Pong
tags: Unity
description: Unity tutorial
---
<table>
    <tr>
        <td>功能</td>
        <td>遊戲系統</td>
        <td>角色</td>
    </tr>
    <tr>
        <td>工作細項</td>
        <td>程式系統分工</td>
    </tr>
    <tr>
        <td>素材</td>
        <td>素材需求</td>
    </tr>
</table>

---
> [Project Ping Pong](https://github.com/NGD-unity-tutorial/Project-Ping-Pong)

## reference(教學／資料/參考專案)
> [雲端、素材](https://drive.google.com/drive/folders/1oy1plA-1L4gwK4BZlLfa1W6HETBgyGlT)
> [Git Note](https://hackmd.io/OE0icB5rTM6QZdOddIvtXg)
> 指令 2, 3 循環
> Git Flow
> ![](https://i.imgur.com/dZhgrAW.png)
> [Unity Tutorial](https://hackmd.io/lvnMNMhFTWiWg5_lrRR6zQ)
> [[Old] - Ping Pong](https://github.com/AaronXue0/Unity-Mini-Game-One)
---

## 功能
- Interfaces
    - Basic Control
        - 移動
        - 打球
            - 角度
            - 力道
            - 殺球
        - 技能
            - 分身
            -  
        - 血量
        - 回合死亡系統
- 玩家 
> Basic Control
- AI
> Basic Control 

- System
    - Mode
        - 分數
        - 時間
        - 遊戲規則
            - 對打
                - 全地圖
                - 上下
            - 關卡
            - 挑戰賽
            - 準度
        - 計分方式
    - 風速系統
        - 影響球速、角度
    - 天氣系統
        - 影響人物數值
- 球
    - 數量
    - 速度
        - 攻擊力
    - 角度
    - 可被打擊數

- 道具(直接永久給予獲得的玩家技能)
    - 變速
    - 改角度
    - 分身球
    - 玩家血量
    - 磁鐵
    - 玩家分身
    - 移動速度
    - 揮球速度
    - 變化瞬移球(有規律的)
    - 鏡像球
    - 隱形球
- 地圖 
    - 場景
    - 互動物件
    - 蟲洞
    - 坦克車

---

## 工作細項

- Mode
    - 整體(大廳到選擇遊戲)
    > 中期
    - 回合(遊戲內)
        - 時間
        - 分數
        ```
        int playerScore = 0;
        int enemyScore = 0;
        
        void update(){
            if(input.getkey(keycode.a)){
                PlayerGoal(1)
            }
        }
        
        void PlayerGoal(int score){
            playerScore += score;
        }
        void EnemyGoal(int score){
            enemyScore += score;
        }
        ```
    > 前期
        
- 角色
    - 玩家
    - AI
    ```
    Rigibody
    Collider
    Animator
    Animation
    ```
> 前期

- 物件
    - 球
        ```
        void update(){
            if(input.getkey(keycode.space)){
                ballBounce();
            }
        }
        
        void BallBounce(){
            //do bounce...
        }
        ```
    - 道具
> 前期

- 美術
    - 地圖
        - 場景
        - 場景互動物件
        - 蟲洞
> 中期
 
- 音效
> 後期

- 背景音樂
> 後期

---

## 素材
- 美術
    - 地圖
        - 場景
        - 場景互動物件
        
> 中期
 
- 音效
> 後期

- 背景音樂
> 後期

---

## 資料夾(Objects/Folders 大駝峰)
- Assets
    - Prefabs
        - Feature Name (Ex: DefaultControl)
            - Objects
    - Scripts
        - Feature Name (Ex: DefaultControl)
            - Classes
                - Ex: Player
                    - .cs
            > Interfaces
            > Attributes
    - Sprites(上傳不了，可以隨意放圖片素材)
    - Scenes
    > 其他
    > 其他
- Packages
- ProjectSettings
## 目前問題
### 未解決
- 碰撞後造成傷害判定
- 未造成傷害球卻轉向問題
- AI
- 死亡後仍會受到傷害
- 隔擋功能需按住
- AI不會往前打球速太慢
- 