2- 자동차 움직이기 게임 만들기

2023. 2. 10. 21:48언어/유니티

728x90

자동차 게임을 만들기 위해서는

차와 깃발 땅 이미지가 필요합니다 .

 

놓고 싶은 위치에 만들어 준후 

car 이미지에 코드 하나와 오디오 소스 컴포넌트를 넣어줍니다.

 

 

 

 

오디오를 하나 준비하여 AudioClip 에 하나 집어 넣어줍니다. 

그리고 car 이미지에 code 추가 해줌

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

public class car : MonoBehaviour
{

    float speed=0;
    Vector2 startPos; //시작 좌표
    Vector2 endPos; // 끝 좌표
    void Update()
    {
        if (Input.GetMouseButton(0))  //마우스가 눌려있는동안 그 마우스 좌표가 startpos다
        {
            this.startPos = Input.mousePosition;
        }
        else if (Input.GetMouseButtonUp(0))  //마우스를 땐순간 마우스 좌표는 endPos
        {
            endPos=Input.mousePosition;
            float swipeLength=( endPos.x - startPos.x);
            //마우스를 땠을때 마우스 좌표에서 마우스가 눌려있는동안의 마우스 좌표를
            //뺀 값이 swipeLength 이다.

            this.speed = swipeLength / 500.0f; 
            //마우스를 끌었을때 길이를 초기 속도로 하기위해서 나눴음

            GetComponent<AudioSource>().Play();
            // 자동차가 행동할때 오디오 소스가 나옴
        }
        transform.Translate(this.speed,0, 0);
        // 이동한 값이 됨
       
        this.speed *= 0.98f; //점점 감속  ex 60프레임 이되면 속도가 낮아짐

    }
}

자세한 내용들은 주석을 달아 놨다

 

 

 

 

 UI에 text를 하나 만들어주고

빈 오브젝트를 하나 만들어주고 이름을 GameDir이라고 칭해준다.

 

GameDir에 코드 하나를 넣어준다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.UIElements; //넣어줘야됨

public class cardis : MonoBehaviour
{
    GameObject car;
    GameObject flag;
    GameObject test;

    void Start()
    {
        this.car = GameObject.Find("car"); //car이미지를 찾아서 위치를 알기위해서
        this.flag = GameObject.Find("flag");
        this.test = GameObject.Find("test");
    }

    void Update()
    {
        float length = this.flag.transform.position.x - this.car.transform.position.x;
        //깃발의 거리에서 자동차의 x위치 를 뺸값이 length가됨
        if (length >= 0)
        {
            this.test.GetComponent<Text>().text = "목표 지점 까지" + length.ToString("F2") + "m";
            //test라는 텍스트옆에 텍스르로 목표지점까지 현재 위치를 실시간으로 알려줌
            // 여기서 ToString 은 
        }
        else
        {
            this.test.GetComponent<Text>().text = "게임 오버";
        }

    }
}

 

 

 

 

넣어주면 이렇게 실시간으로 몇 m 남았는지 알려주고

 

깃발에 도착시 게임 오버라고 뜬다!

728x90