
[ μΉμ 0. OT ]
# νκ²½ μ€μ
- 'DOTween'μ ' C#μ μ΅μ νλ λΉ λ₯΄κ³ ν¨μ¨μ μ΄λ©° μμ ν ννμ μμ ν κ°μ²΄ μ§ν₯ μ λλ©μ΄μ μμ§'μ΄λ€.
~> https://dotween.demigiant.com/download.php μμ λ€μ΄λ°μ μ μλ€.
~> CameraController Scriptμμ μ£Όμ μ²λ¦¬λ λΆλΆμ DOTween μ λ£ λ²μ μ½λμ΄λ€.
- 'Spine'μ 2Dλ₯Ό μ¬μ©νλ νλ‘μ νΈμμ μ λ§ λ§μ΄ μ¬μ©λλ Toolλ‘ μ¬μ΄ μ μ, λμ νλ¦¬ν° λ° μμ°μ±μ κ°μ§λ€.
~> https://ko.esotericsoftware.com/spine-unity-download μμ λ€μ΄λ°μ μ μλ€.
~> https://ko.esotericsoftware.com/spine-in-depth μμ μ½κ² μ 리λ κΈμ ν΅ν΄ Spineμ μ₯μ μ νμΈν μ μλ€.
[ μΉμ 1. μ½λ λΆμ ]
# Addressable
- κΈ°μ‘΄μλ Resources ν΄λ μ°νμ Prefab, Sprites, Sound λ±μ ν΄λλ₯Ό μμ±νμ¬ κ³μΈ΅κ΅¬μ‘°λ₯Ό ν΅ν΄ μμ μ κ΄λ¦¬νμλ€.
~> Addressableμ ν΅ν΄ λΆνμν μμ μ λ‘λλ₯Ό λ°©μ§ν μ μλ€.
- [ Window ] - [ PackageManager ] μμ Packagesλ₯Ό Unity Registry λ‘ λ°κΎΌ λ€ 'Addressables' κ²μ ν Install νλ€.
~> μ€μΉ ν [ Window ] - [ Asset Management ] - [ Groups ] - [ Create Addressables Settings ] μμ μ΄κΈ° μΈν μ νλ€.
~> [ New ] - [ Blank (no schema) ] λ₯Ό ν΅ν΄ μλ‘μ΄ κ·Έλ£Ήμ λ§λ€ μ μλ€. (κ·Έλ£Ή λ¨μλ‘ λ¬Άμ΄ κ΄λ¦¬ κ°λ₯)
~> λ³κ²½λ μ¬νμ΄ μλ€λ©΄ [ Build ] - [ New Build ] - [ Default Build Script ] λ₯Ό ν΄μ€μΌ λΉλμ μ€λ₯κ° λ°μνμ§ μλλ€.
~> μ¬μ©νκ³ μ νλ μμ μ [ Inspector ] μ°½μμ [ Addressable ] λ₯Ό 체ν¬νμ¬ μΆκ°ν μ μλ€.
~> κΈ°λ³Έμ μΌλ‘ Address κ°μ μμ μ κ²½λ‘λ‘ μ€μ λμ§λ§ μ¬μ©μκ° μμλ‘ μμ ν μ μλ€. (Address κ°μ ν΅ν΄ λ‘λ)
~> μμ μ κ²½λ‘λ₯Ό λ°κΏλ Pathλ μλμΌλ‘ μμ λλ€.
- Addressableμ λΉλκΈ° νΈμΆμ΄λ€.
~> κΈ°μ‘΄μ μ¬μ©νλ Resources.Load() λ λ‘λκ° λλμΌμ§λ§ λ€μ μ½λλ‘ λμ΄κ°λ€. (λκΈ° νΈμΆ)
~> Addressableμ λΉμ₯ μ€νλλ κ²μ΄ μλλ―λ‘ μ½λ°± ν¨μλ₯Ό μ¬μ©νλ€. (λ‘λ©μ΄ μλ£λ κ²½μ° μ€ννλλ‘)
~> Releaseλ₯Ό ν΄μ€μΌ λ©λͺ¨λ¦¬μμ μ¬λΌμ§λ€.
Addressable μ¬μ© μμ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class TestAddressable : MonoBehaviour
{
void Start()
{
AsyncOperationHandle<GameObject> obj = Addressables.LoadAssetAsync<GameObject>("KeyName");
obj.Completed += (val) =>
{
GameObject go = val.Result;
Debug.Log(go.name);
Addressables.Release(obj);
};
}
}β
# μ€ν μ΄μ§μ μΈλ²€ν 리
- 첨λΆνμΌμ AlicePang νλ‘μ νΈλ₯Ό ν΅ν΄ μ°Ύκ³ μ νλ κΈ°λ₯μ΄ μ΄λμ, μ΄λ€μμΌλ‘ ꡬνλμ΄ μλμ§ μ§μ μ°Ύκ³ νμΈν΄λ³΄κΈ°
- κ°μ± μμ€ν μμ μμ΄ν μ λ½μλ λλΆλΆ μμ΄ν μ΄ λ°λ‘ λ±μ₯νλ κ²μ΄ μλ λ€μν ν¨κ³Όκ° λ°μν λ€ λ±μ₯νλ€.
~> Animationλ μνλ₯Ό ν΅ν΄ κ΄λ¦¬νλ κ²μ΄ μ’λ€.
μνλ₯Ό ν΅ν Animation κ΄λ¦¬ μμ
void OnClickTouchPanel()
{
Debug.Log("ClickTouchPanel");
switch(_animationSequence)
{
case AnimationSequence.StartGacha:
state.Complete -= MotionToWaitForOpenIdle;
WaitForOpenAnimation();
break;
case AnimationSequence.WaitForOpenIdle:
OpenAnimation();
break;
case AnimationSequence.Open:
state.Complete -= MotionToAfterOpen;
AfterOpenAnimation();
break;
case AnimationSequence.AfterOpenIdle:
WaitForShowCardAnimation();
break;
case AnimationSequence.WaitForShowCardIdle:
ShowCardAnimation();
break;
case AnimationSequence.ShowCard:
ShowCardAnimation();
break;
case AnimationSequence.EndGacha:
break;
}
}β
# μ ν¬ μ½λ λΆμ
- 첨λΆνμΌμ AlicePang νλ‘μ νΈλ₯Ό ν΅ν΄ μ°Ύκ³ μ νλ κΈ°λ₯μ΄ μ΄λμ, μ΄λ€μμΌλ‘ ꡬνλμ΄ μλμ§ μ§μ μ°Ύκ³ νμΈν΄λ³΄κΈ°
- Polygon Collider 2Dλ 2D 물리 μμ€ν κ³Ό μνΈμμ©νλ Collider 2D μ»΄ν¬λνΈμ΄λ€.
~> λͺ¨μμ λΌμΈ μΈκ·Έλ¨ΌνΈμ μμ ν κ°μ₯μ리λ‘, μ€νλΌμ΄νΈ λͺ¨μμ΄λ λ€λ₯Έ λͺ¨μμ λ§κ² μ‘°μ ν μ μλ€.