Static이 되어있는지 확인하자
Add event로 이벤트를 등록했는데 지정해주지 않으면 오류가 발생한다
Create New Clip

Any State어떤 상태에서도 해당 상태로 바로 전환이 가능한 경우이다
ex) 즉각적으로 애니메이션을 바꿔야할 경우, Die()나 피격당했을때 바로 호출되야할때 사용됨
피격당한뒤 다시 Idle상태로 이동해야한다
Entry
ExitExit로 넘어가서 탈출하고 다시 Entry로 이동
Make Transition애니메이션 클립 간 연결
-> 양방향으로도 가능하다

Transition을 누르면 애니메이션이 넘어가는 지점도 셋팅할 수 있고, Has Exit Time 체크 여부도 설정할 수 있다
Has Exit Time
Set as Layer Default State
애니메이션의 상태 전환을 제어하는 변수


컴포넌트를 가져온 후
참조변수.Set파라미터 타입("이름", 해당 값);
아래의 예시에선 SetFloat를 사용하여 speed값이 변경하면 Float Speed애니메이션을 진행
스페이스바를 누르면 SetBool로 지정한 isJumping이 true 가 되어 애니메이션 진행
애니메이션 컨트롤러 내부의 Condition에서 transition간 파라미터를 지정할 수 있다


InstantiateInstantiate(원본객체, 위치값, 회전값);0,0,0)과 (회전x)가 들어간다
ex)
게임오브젝트 knife를 동적생성하기
clone은 게임오브젝트 타입의 생성된 knife를 가리키는 참조변수임
-> 참조변수를 통해서 회전값, 위치값을 변경할 수 있다 (생성될 때 바로 값을 정할 수도 있음)


회전값을 변경하기
회전 값 변경전에 유니티의 회전을 다룰 때 사용하는 오일러 각(Euler Angles)과 사원수(Quaternion) 방법에 대해 알아보자
X, Y, Z 축을 기준으로 회전값을 표현하는 방식Vector3(x, y, z) 형태로 표현된다
4차원(𝑥, 𝑦, 𝑧, 𝑤)으로 표현되는 회전 방식
Quaternion(x, y, z, w) 형태로 표현된다
짐벌락의 문제가 없어서 안정적인 회전이 가능하다
사용 시에 Quaternion.Euler(x, y, z);로 사용하면 오일러 각을 사원수로 변환한다

Quaternion.Identity; 는 회전을 안하겠다는 뜻 (회전값이 없다)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public class WeaponManager : MonoBehaviour
{
[SerializeField] GameObject knife;
[SerializeField] GameObject [] weapons;
// 게임 오브젝트 타입 리스트
[SerializeField] List<GameObject> weaponList;
private int count;
void Start()
{
count = 0;
}
public void Equip()
{
if(weapons.Length <= count)
{
return;
}
GameObject clone = Instantiate(weapons[count++]);
clone.gameObject.SetActive(false);
// 리스트에 생성된 게임 오브젝트 추가
weaponList.Add(clone);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Equip();
}
}
}