https://assetstore.unity.com/packages/3d/characters/creatures/dungeon-skeletons-demo-71087
Asset Store에서 Dungeon Skeletons를 다운 받아 인포트해서 하이라키에 끌어다 놓는다. 프리팹이 없기때문에 Models폴더에서 끌어다 놓는다
애니메이터가 연결 안되어 있기 때문에 Fox와 동일한 방법으로 만든다.
프로젝트뷰에서 우클릭 [Create]-[Animator Controller] 를 만든후 이름을 NewFoxAnim으로 한다.
더블클릭해서 Animator를 연다.
다음 폴더에서 idel을 끌어다 놓는다
Walk와 attack도 끌어다 놓고 transition을 연결한다.
애니메이션이 walk 밖에 없어서 브랜드트리는 안 만드는 것이다.
파라미터는 Trigger attack, bool move만 만들어준다.
idel>walk 트랜지션속성 Has Exit Time 언체크 Condition>move>false
walk>idel 트랜지션속성 Has Exit Time 언체크 Condition>move>false
완성된 SkeletonAnim을 DungeonSkeletonDemo 인스펙터 Animator컴포넌트의 Controller속성과 연결해준다.
SkeletonCtrl.cs를 다음과 같이 만들고 DungeonSkeletonDemo 에 연결해 준다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SkeletonCtrl : MonoBehaviour {
// Start is called before the first frame update
private Animator anim; // 애니메이터 컴포넌트를 담을 변수
private bool isMove; // Move State 체크용 파라메터
void Start() {
anim = GetComponent<Animator>(); //애니메이터 컴포넌트를 받아온다
}
// Update is called once per frame
void Update() {
float moveSpeed = 3.0f;
float _x = Input.GetAxisRaw("Horizontal"); //키임력을 받아
float _z = Input.GetAxisRaw("Vertical");
Vector3 direction = new Vector3(_x, 0, _z); //벡터를 만들고
isMove = false;
if (direction != Vector3.zero) {
isMove = true; //움직임이 있으면 Move State로 간다
//큐브를 이동시켜주고
this.transform.Translate(direction.normalized * moveSpeed * Time.deltaTime);
}
//애니메이터 파라메터를 설정해준다
//애니메이터 파라메터를 설정해준다
anim.SetBool("move", isMove);
}
}
유니티를 실행해서 WASD를 눌러보면 Fox와 DungeonSkeleton이 같이 움직인다.
'유니티스크립팅 > Animation Rigging' 카테고리의 다른 글
[Animation Rigging] 애니메이션 리깅 (0) | 2023.04.06 |
---|---|
[Animation Rigging] Fox BlendTree Animator (0) | 2023.04.06 |