이전 글의 PlayerFire
2022.05.15 - [Unity] - 2D 슈팅 - 1 / 사용자 입력 제어 및 오브젝트 이동 처리
플레이어가 발사할 총알의 수를 지정할 수 있는 변수를 추가
변수에 설정된 숫자만큼 1.5m의 간격으로 총알 발사
// 총알의 총 간격 = (총알의 수 - 1) * 총알의 간격
float totalSpacing = (bulletCount - 1) * spacing;
// 총알의 최초 위치(벡터) = x: firePosition - (총알의 총 간격 / 2), y:0, z:0
Vector3 firstPos = firePosition.transform.position - new Vector3(totalSpacing * 0.5f, 0, 0);
// 만약 사용자가 마우스 왼쪽버튼을 누르면
if (Input.GetButtonDown("Fire1"))
{
// bulletCount에 설정된 숫자만큼
for (int i = 0; i < bulletCount; i++)
{
// 총알공장에서 총알을 만들어서
GameObject bullet = Instantiate(bulletFactory);
// 총구 위치에 가져다 놓고싶다.
// bullet.transform.position = firePosition.transform.position;
// 최초 생성위치부터 1.5m 간격으로 생성.
bullet.transform.position = firstPos + new Vector3(i * 1.5f, 0, 0);
}
}
}
PlayerFire 전문
더보기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 사용자가 마우스 왼쪽버튼을 누르면
// 총알을 발사하고싶다. (Bullet prefab을 읽어와서 총구 위치에 가져다 놓고싶다.)
// 플레이어가 발사할 총알의 수를 지정할 수 있는 변수 bulletCount를 추가한다.
// bulletCount에 설정된 숫자만큼 Player가 총알을 발사한다.
// 발사되는 총알의 간격은 1.5m로 균일해야한다.
public class PlayerFire : MonoBehaviour
{
// 총알공장
public GameObject bulletFactory;
// 총구위치
public GameObject firePosition;
// 총알의 수
public int bulletCount = 1;
// 총알 발사 가능 체크용 변수
public bool canFire = true;
// 총알의 간격
float spacing = 1.5f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 총알의 총 간격 = (총알의 수 - 1) * 총알의 간격
float totalSpacing = (bulletCount - 1) * spacing;
// 총알의 최초 위치(벡터) = x: firePosition - (총알의 총 간격 / 2), y:0, z:0
Vector3 firstPos = firePosition.transform.position - new Vector3(totalSpacing * 0.5f, 0, 0);
// 만약 사용자가 마우스 왼쪽버튼을 누르면
if (Input.GetButtonDown("Fire1"))
{
// 만일, 총알을 쏠 수 있는 상태라면
if (canFire == true)
{
// bulletCount에 설정된 숫자만큼
for (int i = 0; i < bulletCount; i++)
{
// 총알공장에서 총알을 만들어서
GameObject bullet = Instantiate(bulletFactory);
// 총구 위치에 가져다 놓고싶다.
// bullet.transform.position = firePosition.transform.position;
// 최초 생성위치부터 1.5m 간격으로 생성.
bullet.transform.position = firstPos + new Vector3(i * 1.5f, 0, 0);
}
}
}
}
}
'공부 > Unity 기초' 카테고리의 다른 글
2D 슈팅 - 9 / 누적점수에 따른 속도변경 (0) | 2022.05.17 |
---|---|
2D 슈팅 - 8 / 함정 추가 (0) | 2022.05.16 |
2D 슈팅 - 6 / 이동속도 증감 (0) | 2022.05.16 |
2D 슈팅 - 5 / 에셋 적용하기 (0) | 2022.05.16 |
2D 슈팅 - 4 / 이펙트, 오디오 적용, 동적 배경 스크롤 (0) | 2022.05.15 |