'normalCat' animation 생성 후 'normalCat' gameObject에 할당
2개 이미지를 스프라이트에 번갈아 적용하며 애니메이션 레코딩
고양이 내려오게하기
이건 외울때가 된것 같다
public class cat : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
float x = Random.Range(-8.5f, 8.5f);
float y = 30.0f;
transform.position = new Vector3(x, y, 0f);
}
// Update is called once per frame
void Update()
{
transform.position += new Vector3(0f, -0.05f, 0f);
}
}
밥과 고양이 충돌주기
밥에 food 태그 달기
밥에 rigidbody2D, CircleCollider2D 달기(고양이도 collider가 있어야 되겠다)
rigidbody 의 BodyType을 Kinematic으로 잡아야 물리법칙의 영향을 안받는다
circleCollider에 isTrigger 를 토글하여 충돌감지를 할 수 있도록 하자
void OnTriggerEnter2D(Collider2D collision) // 물리충돌이 아니므로 OnTriggerEnter
{
if (collision.gameObject.tag == "food")
{
if (energy < full)
{
energy += 1.0f;
Destroy(collision.gameObject);
}
else
{
Debug.Log("배가 다 찼어요");
}
}
}
밥 게이지 채우기
front 찾기 : gameObject.transform.Find("hungry/Canvas/front")
front의 scale 찾기 : gameObject.transform.Find("hungry/Canvas/front").transform.localScale
에너지의 비율로 scale 값을 잡는 센스
void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "food")
{
if (energy < full)
{
energy += 1.0f;
Destroy(collision.gameObject);
gameObject.transform.Find("hungry/Canvas/front").transform.localScale = new Vector3(energy / full, 1f, 1f);
}
else
{
gameObject.transform.Find("hungry").gameObject.SetActive(false);
gameObject.transform.Find("full").gameObject.SetActive(true);
}
}
}