총알 제작
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 위로 이동하고싶다.
public class Bullet : MonoBehaviour
{
public float speed = 10;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.position += Vector3.up * speed * Time.deltaTime;
}
}
적 제작
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 태어날 때 30% 확률로 플레이어 방향, 나머지 확률로 아래방향으로 정하고
// 살아가면서 그 방향으로 계속 이동하고싶다.
public class Enemy : MonoBehaviour
{
// 방향
Vector3 dir;
// 속력
public float speed = 5;
// Start is called before the first frame update
void Start()
{
// 태어날 때
// 30 % 확률로 플레이어 방향, 나머지 확률로 아래방향으로 정하고
int result = UnityEngine.Random.Range(0, 10);
if (result < 3)
{
// 플레이어 방향
GameObject target = GameObject.Find("Player");
// dir = target - me
dir = target.transform.position - transform.position;
dir.Normalize();
}
else
{
// 아래방향
dir = Vector3.down;
}
}
// Update is called once per frame
void Update()
{
// 살아가면서 그 방향으로 계속 이동하고싶다.
transform.position += dir * speed * Time.deltaTime;
}
}
Start > GameObject가 생성될 때 한번 호출
Update > GameObject가 유지되는동안 호출
Find > 다른 GameObject 발견
적 생성 주기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 일정시간마다 적공장에서 적을 만들어서 내 위치에 가져다 놓고싶다.
public class EnemyManager : MonoBehaviour
{
// 적 공장
public GameObject enemyFactory;
// 현재시간
float currentTime;
// 생성시간
public float createTime = 1;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 시간이 흐르다가
currentTime += Time.deltaTime;
// 현재시간이 생성시간이 되면
if (currentTime > createTime)
{
// 적공장에서 적을 만들어서
GameObject enemy = Instantiate(enemyFactory);
// 내 위치에 가져다 놓고싶다.
enemy.transform.position = transform.position;
// 현재시간을 0으로 초기화한다.
currentTime = 0;
}
}
}
'공부 > Unity 기초' 카테고리의 다른 글
2D 슈팅 - 4 / 이펙트, 오디오 적용, 동적 배경 스크롤 (0) | 2022.05.15 |
---|---|
2D 슈팅 - 3 / 충돌 시스템 구현 (0) | 2022.05.15 |
2D 슈팅 - 1 / 사용자 입력 제어 및 오브젝트 이동 처리 (0) | 2022.05.15 |
가운데 문자 가져오기 (0) | 2022.05.15 |
문자열 나누기 (0) | 2022.05.13 |