[고1 게임엔진] 09 - (4)

2023. 9. 18. 14:51·고1/게임엔진
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Forever_Chase : MonoBehaviour
{
    // 유령이 플레이어을 계속 쫓아다닌다.
    // 목표오브젝트(타겟-boy)
    Rigidbody2D rb;
    GameObject targetObject; // 타겟오브젝트를 찾기위한 변수선언

    public float speed = 5;         // 유령의 이동속도
    public string targetObjectName; // 목표오브젝트에 이름 저장
    public string showObjectName;   // 표시할오브젝트 이름 저장(햄버거)

    GameObject showObject; // 표시할 오브젝트를 찾아서 저장할 변수 선언

    void Start()
    {
        // 리지드바디 컴포넌트 가져오기
        rb = GetComponent<Rigidbody2D>();
        // 중력을 0, 충돌후에 회전금지
        rb.gravityScale = 0;
        rb.constraints = RigidbodyConstraints2D.FreezeRotation;

        // 타겟오브젝트 찾기
        targetObject = GameObject.Find(targetObjectName); // 오브젝트의 이름으로 찾는방법

        Time.timeScale = 1;     // 처음부터 시간이 움직이게 처리한다.

        // 유니티 실행시키자마자 햄버거를 지운다. 지우기전에 햄버거를 기억해둔다.
        showObject = GameObject.Find(showObjectName); // 햄버거오브젝트 찾아서 저장
        showObject.SetActive(false); // 플레이시키자마자 햄버거 안보이게(비활성화)
    }

    // 일정한 속도로 유령이 쫓아가게하기 위해서
    void FixedUpdate()
    {
        // 유령이 목표오브젝트의 위치와 방향을 찾는다(벡터-속도: 크기+방향)
        // 지역변수 dir
        Vector2 dir = (targetObject.transform.position - this.transform.position).normalized;
        // 벡터 : 배열객체, 2차원배열(x, y)


        // 유령이 그 방향으로 계속 따라간다
        float vx = dir.x * speed;
        float vy = dir.y * speed;
        rb.velocity = new Vector2(vx, vy);


        // 이동방향에서 좌우반전
        GetComponent<SpriteRenderer>().flipX = (vx < 0);
    }
    void OnCollisionEnter2D(Collision2D collision)
    {
        // 만약 충돌한 것의 이름이 목표오브젝트(boy)라면
        if(collision.gameObject.name == targetObjectName)
        {
            showObject.SetActive(true); // 지운것(=비활성화된것)을 다시 표시

            Time.timeScale = 0; // 시간을 멈춘다=모든 오브젝트의 움직임을 정지해라
        }
    }
}
저작자표시 (새창열림)

'고1 > 게임엔진' 카테고리의 다른 글

[고1 게임엔진] 09 - (6)  (0) 2023.09.25
[고1 게임엔진] 09 - (5)  (2) 2023.09.20
[고1 게임엔진] 09 - (3)  (0) 2023.09.13
[고1 게임엔진] 09 - (2)  (3) 2023.09.11
[고1 게임엔진] 09 - (1)  (0) 2023.09.04
'고1/게임엔진' 카테고리의 다른 글
  • [고1 게임엔진] 09 - (6)
  • [고1 게임엔진] 09 - (5)
  • [고1 게임엔진] 09 - (3)
  • [고1 게임엔진] 09 - (2)
백학도령
백학도령
  • 백학도령
    백학도령
  • 전체
    오늘
    어제
  • 공지사항

    • 유용한 청년
    • 목록 (110)
      • 웹디자인개발기능사 (5)
      • 티스토리 (1)
      • 고3 (5)
        • 응용 프로그래밍 (2)
        • 데이터베이스 (1)
        • 성공적인 직업생활 (1)
        • 비즈니스 영어 (1)
      • 고2 (40)
        • 문학 (4)
        • 수학 (4)
        • 인공지능 수학 (1)
        • 통합사회 (4)
        • 영어 (6)
        • 한국사 (6)
        • 일본어 (4)
        • 응용 프로그래밍 (3)
        • 게임 프로그래밍 (4)
        • 자료 구조 (4)
      • 고1 (59)
        • 국어 (4)
        • 수학 (4)
        • 과학 (4)
        • 영어 (4)
        • 프로그래밍 (16)
        • 화면구현 (11)
        • 게임엔진 (15)
        • 인공지능 (1)
  • hELLO· Designed By정상우.v4.10.3
백학도령
[고1 게임엔진] 09 - (4)
상단으로

티스토리툴바