---
# System prepended metadata

title: Sort Out Tutorial
tags: [Notes, ' Starry']

---

---
title: Sort Out Tutorial
describes: Note for unity
tags: Notes, Starry
---

# Learning Video
## Sprites
### Photoshop
- [How to Draw and Animate Hollow Knight Characters - PS and Unity BEGINNER TUTORIAL (2019)
](https://www.youtube.com/watch?v=oKUg-uRHk-4)
    - [color=#000000]Sprites
- [HOW TO MAKE SPRITE SHEETS FOR YOUR UNITY GAME - TUTORIAL
](https://www.youtube.com/watch?v=ou8VkQB2sos)
    - [color=#000000]Animations

## Optimization
- [優化總結](https://www.itread01.com/content/1546561630.html)

### Animation
- [ANIMATE 2D CHARACTERS in Unity](https://www.youtube.com/watch?v=eXIuizGzY2A)
    - Issue:[Install 2D animation](https://answers.unity.com/questions/1588025/why-is-2d-animation-not-showed-in-the-package-mana.html)
    - More Info:
        - [【心得】Unity 2D 原生骨骼動畫包(2D Animation Package)](https://forum.gamer.com.tw/C.php?bsn=60602&snA=2404) 
> Bone animation in unity

-  [2D Animation in Unity (Tutorial)](https://www.youtube.com/watch?v=hkaysu1Z-N8)
> Animator tutorial

- [Player Controller PART 1: How To Export Animation From Spine And Import Into Unity (Tutorial)
](https://www.youtube.com/watch?v=sh3pnVFtsGI)
> Import animtion from spine into unity

## UI
### Button and Text
- [How to make UI in UNITY - EASY TUTORIAL](https://www.youtube.com/watch?v=_RIsfVOqTaE)
- [START MENU in Unity](https://www.youtube.com/watch?v=zc8ac_qUXQY)

- Tip : [How to import SVG](https://stackoverflow.com/questions/52562020/how-to-import-svg-to-unity-2018-2)
--- 

## Audio
### Unity_Audio
- [Introduction to AUDIO in Unity](https://www.youtube.com/watch?v=6OT43pvUyfY)

---

## ScriptableObject
### [ScriptableObject Tutorial](https://www.raywenderlich.com/2826197-scriptableobject-tutorial-getting-started)

---

## Asset

### [Asset Bundle DLC](https://www.youtube.com/watch?v=iXpqfXoaFA0&list=PLslSygXr20fhM9guJfwC2cJEnxeS1qcek)

---

## Teamplate
- [模板介紹](https://godstamps.blogspot.com/2018/09/unity-20181.html)

---

# Resource

---

## Recomand
- [Blackthornprod](http://youtube.com/channel/UC9Z1XWw1kmnvOOFsj6Bzy2g/playlists)
    - 2D Channel

## Notes
- [常見錯誤解決辦法](https://groups.google.com/forum/#!topic/smomogame/2Qu4fe41mbE)
- [5 Steps To Making A Gorgeous 2D Game](https://www.youtube.com/watch?v=QD3SFyWPVFY)
- [AliveGameStudio](https://space.bilibili.com/580207?from=search&seid=174224582471790421)
- [【心得】Unity遊戲製作常用資源與筆記](https://forum.gamer.com.tw/C.php?bsn=60602&snA=2181)
- [【Unity】GameObject.Find 系関数の処理速度の検証結果](http://baba-s.hatenablog.com/entry/2014/07/09/093240)
- [【C#】Coding Style](https://github.com/ktaranov/naming-convention/blob/master/C%23%20Coding%20Standards%20and%20Naming%20Conventions.md)
- [【OOP】Singleton Design Pattern](https://sourcemaking.com/design_patterns/singleton)
- [【OOP】Delegates](https://learn.unity.com/tutorial/delegates#5c894658edbc2a0d28f48aee)
- [[Unity] 簡單瞭解「Collision碰撞」與「Trigger觸發」](https://home.gamer.com.tw/creationDetail.php?sn=2300960)
- [Unity — Steam 成就](https://home.gamer.com.tw/creationDetail.php?sn=4156394&fbclid=IwAR2IOMcbzqzdd3R6c0_OKErBMM85AYd85DYyhIXygjhsC2CFsKvcydogRuo)
- [ONE WAY COLLISION PLATFORMS](https://www.youtube.com/watch?v=M_kg7yjuhNg&feature=youtu.be&fbclid=IwAR1iCsKrDLOVpgn48dkan416C2nBBS_tQhrIxre9_qLqYJSBpgfCrSw3Vak)

---

# Life circle

- Monobehavirous
![](https://i.imgur.com/GEDD53J.png)
![](https://i.imgur.com/Y5d35ys.png)

---

# Collision

```
主要觀念──

1) 想要讓程式判斷兩個物件有接觸，則雙方都必需要有Collider（碰撞器），
並且正在動的一方一定要有Rigidbody（剛體）才有效，另一方有沒有剛體無所謂。
※也就是說，如果動的一方沒有剛體，它去撞的靜止一方即使有剛體，也是當作沒撞到。

2) 接下來有兩種方式判斷接觸，
一、Collision碰撞，造成物理碰撞，可以在碰撞時執行OnCollision函式。
二、Trigger觸發，取消所有物理碰撞，可以在觸發時執行OnTrigger函式。
所以兩個物件A跟B接觸時，不可能同時產生碰撞+觸發，最多產生其中一種，
但是可以辦到讓A跟B產生碰撞，A跟C產生觸發。

3) 產生接觸的設定方式如下──

一、Collision碰撞：雙方都有碰撞器，並且至少動的一方有剛體，
就會造成碰撞，可以執行OnCollision函式。
※但若雙方都勾了Kinematic運動學，或任一方勾了Trigger觸發器，則碰撞無效。

二、Trigger觸發：雙方都有碰撞器，並且至少動的一方有剛體，
並且至少其中一方的碰撞器有勾觸發器，就會造成觸發，可以執行OnTrigger函式。

4) 接觸後的函式又細分為Enter、Stay、Exit三種，
以Trigger為例，就是OnTriggerEnter、OnTriggerStay、OnTriggerExit
（Collision依此類推）。
Enter函式是當兩個物件接觸的瞬間，會執行一次這個函式；
Stay函式是當兩個物件持續接觸時，會不斷執行這個函式；
Exit函式是當兩個物件分開的瞬間，會執行一次這個函式。



細部解釋──

【Collider碰撞器】：
最重要的核心！只要有碰撞器就會對其他物件產生碰撞；
若自身要受到碰撞的話，則需要碰撞器+剛體，缺一不可。
若自身要受到程式Translate位移或Rotate旋轉，也至少需要碰撞器。

【IsTrigger觸發器】：
勾了就不允許自身受到／造成碰撞，也不會受到重力等物理作用力影響，
而是改為Trigger觸發，雙方碰到時會直接穿越並執行Trigger函式。
但自身還是可以受到程式位移或旋轉。

【Rigidbody剛體】：
允許自身受到碰撞，且動的一方要有剛體才允許產生Trigger觸發。
加了剛體的物件才會受到物理作用力，如受到重力而落下、被物理作用力推動／旋轉，
也無法主動穿越其他碰撞器，這都是受到剛體的影響。
而對方若是沒加剛體，對方就不會受到碰撞的作用力推擠，但仍然可以判斷雙方有碰撞。

【IsKinematic運動學】：
不允許自身受到碰撞，但還是會對其他物件造成碰撞。
也不會受到重力等物理作用力影響。
※雙方都勾運動學的話，雙方都不會受到碰撞，會直接穿越，
　因此會被視為沒有碰撞到，無法執行OnCollision函式。
※對自身而言，剛體+運動學的效果，就等同於不加剛體，
　唯一差異是「剛體+運動學」去撞「靜止的碰撞體」時，
　仍可以執行碰撞、觸發函式；
　但雙方都不加剛體的話，則無法執行碰撞、觸發函式。

【Constraints限制】：
自身受到碰撞時，勾選的位置（Position）、角度（Rotarion）不受力。
很類似把運動學拆成六個細項來設定，但唯一差別在於仍然算有碰撞，
可以照常執行OnCollision函式。

【Drag空氣阻力】：提高數值可減少落下速度、被撞飛距離。

【Angular Drag角阻力】：提高數值可減少旋轉速度。
```


