초오오오오오짜개발자의낙서장

게임-토이프로젝트, auto defence 개발 일지 주간 정리 11월 3째주 본문

카테고리 없음

게임-토이프로젝트, auto defence 개발 일지 주간 정리 11월 3째주

코딩하는곰팅이 2024. 11. 17. 18:16

기획서를 토대로 만들어 보자

 

기반이 되는 Plane object

일단 땅이 있어야 뭘 올려놓을수 있으니 Plane 을 깔아서 땅을 만들었다.

땅이 작아보여 Scale을 X : 200, Z : 100으로 늘렸다.

 

카메라의 위치를 조정해 전체적으로 알수 있게 조정을 했다.

 

기능 테스트를 위해 몬스터를 뜻하는 mob 이라는 프리팹을 생성( 아직 프리팹을 기억하고 있었다.)

 

이제 이 프리팹을 정해진 위치에 랜덤하게 스폰하도록 하는 스크립트를 작성해야한다.

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

public class Monster_generator : MonoBehaviour
{
    public GameObject monsterPrefab;
    public float span;
    float delta = 0;
    float echo = 0;
    // Update is called once per frame
    void Update()
    {
        this.delta += Time.deltaTime;
        if (this.delta > this.span)
        {
            this.delta = 0;
            GameObject go = Instantiate(monsterPrefab) as GameObject;
            int px = Random.Range(-40, 40);
            go.transform.position = new Vector3(px, 20, 45);
        }
        
    }
}

 

delta 값을 이용해 게임 내부의 시간 진행을 얻어오고 span이라는 시간이 소환 주기가 된다.

px 를 -40~40 까지의 값을 줘서 랜덤한 위치의 x 좌표를 설정한다.

Vector3 를 이용해 몬스터를 소환할 좌표값을 입력하면 span 주기마다 몬스터가 랜덤한 위치에서 소환이된다.

 

이제 소환을 시켯으니 몬스터를 이동시킨다.

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

public class moving : MonoBehaviour
{
    public int Speed;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //transform.Translate(Vector3. * Speed * Time.deltaTime);
        transform.position += new Vector3(0, 0, -1 * Speed) * Time.deltaTime;
    }
}

 

 

speed 변수를 선정해서 시간마다 일정거리를 이동하게 만든다.

 

 

실행을 시켜보면 생성된 mob 프리팹들이 전진하면서 낭떨어지로 떨어지는 모습을 보여준다.