Animation 만드는 방법
inspector 에 있는 컴포넌트 들을 animation으로 만들수 있다

숫자는 작업할 프레임이다 저기에 + 를 해서 프레임을 움직일수 있다

item 은 현재 작업하고 있는 폴더를 의미

animation 효과를 주기 위해 add Property에서 선택후 추가하면 된다

유니티는 왼손 좌표계 그래서 360 돈다

loop time을 체크할경우 무한 반복
체크 안할경우 한번만 동작

그래프를 직선형태로 변할려면 왼쪽 클릭후

이렇게 linear를 선택하면 직선 형태로 그래프가 변한다

느리게 애니메이션 효과를 주고 싶으면 선택한것들을 늘리면 된다

문 만들기
hinge를 움직일수 있다 , hinge 축을 볼려면 (center가 아니라 pivot으로 설정해야한다 )
그리고 hinge 위치를 조정할려면 cube와 hinge를 둘다 x축이나 y축 위치를 조정해야한다
회전은 첫 프레임 값지정하고
마지막 프레임 에서 어디까지 갈껀지 정하면 알아서 거기까지 회전한다 (중요)


요가소 파란색 사각형을 늘리면 속도가 느려진다(중요)

이렇게 빈 오브젝트를 만든다음에 animation 효과를 넣어주고 Add property에서 조절할 컴포넌트들을 가지고 와서 조절하면 된다 (조절할때는 녹화를 키고 하기 )

녹화버튼

녹화를 하는 이유

문 애니메이션효과 코드로 작성해서 동작해보기
using Unity.VisualScripting;
using UnityEngine;
public class ScriptDoor : MonoBehaviour
{
public Animator animator = null; // 동작할 애니메이터
// 옛날 방식이다
//public Animation animationStart = null; // 초기화할 애니메이션
void Start()
{
// animaotr 가 비어 있으면 오브젝트에서 Animator를 찾아서 animator 변수에 넣는다는의미이다
if (animator == null) // 컴포넌트가 비어있는지 확인
// 최신방식
animator = GetComponent<Animator>(); // 컴포넌트 가져오기
//gameObject,GetComponent<Animator>(); //GetComponent 앞에 gameobject는 생략 가능
//옛날방식
//animator.Play(animationStart.clip.name); // 애니메이션 재생(재생할 이름)
animator.SetBool("IsOpen", false); // 문이 닫힌 상태로 초기화
}
// trigger 메서드 두개는 box collider 에 잇는 is trigger를 뜻한다
// collider 를 지나가면 동작
// 감지 영역에 들어오면 동작
public void OnTriggerEnter(Collider other)
{
//other.CompareTag("Player") = true,false 값이 나온다
//Debug.Log(other.name + " : " + other.tag+" : "+other.CompareTag("Player"));
if (other.CompareTag("Player") == true)
{
// 문 열기 애니메이션
//Debug.Log("문열기 애니메이션 진행");
if(animator != null)
{
animator.SetBool("IsOpen", true);
}
}
}
// 감지 영역에서 나가면 동작
public void OnTriggerExit(Collider other)
{
if (other.CompareTag("Player") == false)
{
// 문 닫기 애니메이션
//Debug.Log("문닫기 애니메이션 진행");
if(animator != null)
{
animator.SetBool("IsOpen", false);
}
}
}
}
코드 실행
이미지 처럼하면 animator 창으로 이동할수 있다

is trigger는 감지영역을 쓸지 말지 정하는거다

체크한 두개만 사용한다
tag
layer = 그래픽을 나눌때사용

start assets sample 바로 들어가는 방법

저거를 풀어줘야 한번만 재생한다

에셋을 넣었는데 파츠가 분홍색이면 STANDARD인거다
제대로된 MATERIAL을 넣을려면

UNIVERSAL RENDER PIPLINE을 선택후

LIT을 넣으면 된다

이렇게 있으면 무조거 부모에게 ANIMATOR와 스크립트 파일을 넣어야 한다

close 에다가 모션
open 모션 각각 따로 넣어야 한다

그리고 ANIMATION 넣을때는 한번에 열렸다 닫혔다 를 만들지말고 각각의 ANIMATION을 만들어야 한다

감지하게 되면 이 두 스크립트가 동작한다

tag 변경

player 는 regidbody가 있어야한다 없으면 colider를 인식 못한다
