본문 바로가기
IT

[유니티] 현재 위치에서 일정 구간/범위 앞뒤로 움직이기

by 배애앰이 좋아 2022. 2. 14.
반응형

 

게임 만들다가 보니 보스가 가만히 있는 채로 공격하는 것보다 앞뒤로 왔다갔다 움직이면서 공격하는 것이 사용자 입장에서 더 역동적이고 재밌을 것 같아 해당 코드를 짜고 정리하게 되었습니다. 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Boss1 : MonoBehaviour
{
    private float time;
    private float realtime;
    Vector3 firstP;
    int a = 1;

    // Start is called before the first frame update
    void Start()
    {
        firstP = transform.position;
    }

    private void Update()
    {
        time += Time.deltaTime;

        if (firstP.x + 2 < transform.position.x)
        {
            a = 1;
        }
        else if (firstP.x - 2 > transform.position.x)
        {
            a = -1;
        }
        transform.Translate(Vector3.left * 1.0f * Time.deltaTime * a);
    }
}

 

코드를 간략히 소개하자면, firstP 를 통해서 오브젝트의 처음 위치를 저장한 후 +2 만큼 -2 만큼 왔다갔다 움직일 수 있게 if 문을 통해서 조건문을 만들어주었습니다. transform.Translate 를 통해서 움직이는 코드가 매순간 호출될 수 있게 update 안에 넣어주었고 a 를 조정해서 앞뒤로 움직이는 코드입니다.

 

게임에 적용한 결과,

 

 

요렇게 귀엽게 고양이랑 알파카 보스가 앞뒤로 움직이는 것을 보실 수 있습니다. 

앞으로 게임 만들 때 많이 사용하지 않을까 하여 정리해보았습니다. 감사합니다.

반응형

댓글