-
케이디 강의5 - (총든 팔 생성, 발사 구현, 파티클 추가, 사운드 삽입)인프런 강의 - 케이디 생존게임 2022. 11. 7. 22:34반응형
public class GunController : MonoBehaviour { [SerializeField] private Gun currentGun; // 현재 소유하고 있는 총 ((각종 총의 정보를 참조가능해짐)) private float currentFireRate; // gun 스크립트의 FireRate 값을 넣음 //이 값을 깎아 0이 되면 발사할 수 있게 만듬 private AudioSource audioSource; // 오디오소스 요청 private void Start() { { audioSource = GetComponent<AudioSource>(); //오디오 소스 할당 } } void Update() { GunFireRateCalc(); TryFire(); } //##총기 발사## private void GunFireRateCalc() // 발사 딜레이 계산 { if (currentFireRate > 0) //현재 연사속도가 0보다 크면 currentFireRate -= Time.deltaTime; // 1씩 깎는다 } private void TryFire() // 발사시도 { if(Input.GetButton("Fire1") && currentFireRate <= 0) //좌클릭 && 현재 연사속도가 0보다 작거나 같을때만 가능 { Fire(); } } //##실제 발사 (클릭 후 과정)## private void Fire() // 발사 전 { currentFireRate = currentGun.fireRate; // 발사를 하면 fireRate를 원래 값으로 돌림== 0보다 작을 경우에만 발사 할 수 있으므로 재계산까지 발사 못함 Shoot(); } private void Shoot() // 발사 후 { PlaySE(currentGun.fire_Sound); //효과음 (currentGun 안에있는 효과음) currentGun.muzzleFlash.Play(); // 파티클 플레이 Debug.Log("총알 발사함"); } //##사운드## private void PlaySE(AudioClip _clip)//효과음 재생 { audioSource.clip = _clip; //오디오 소스에 클립삽입 audioSource.Play(); //재생 } }
발사 구현 / 사운드 코딩
public class Gun : MonoBehaviour { public string gunName; // 총의 이름(여러 종류의 총을 이름으로 구분) public float range; // 사정 거리 public float accuracy; // 정확도 public float fireRate; // 연사속도 public float reloadTime; // 재장전 속도 public int damage; // 총 데미지 //##총알 수 관리## public int reloadBulletCount; // 총알 재장전 개수 public int currentBulletCount; // 현재 탄알집에 남아있는 총알의 개수 public int maxBulletCount; // 최대 소유 가능 총알 개수 public int carryBulletCount; // 현재 소유하고 있는 총알 개수 //##반동## public float retroActionForce; // 반동 세기 public float retroActionFineSightForce; // 정조준 시 반동 세기 public Vector3 fineSightOrginPos; // 정조준 시 총의 위치값 변수 public Animator anim; // 애니메이터 public ParticleSystem muzzleFlash; // 총구섬광 파티클 public AudioClip fire_Sound; // 총 발사음 }
총기 인포
ㅡ
골자는 이전 강의(케이디 강의 - 4) 와 비슷했다.
총마다 지정해줄 수 있는 여러 정보를 저장하는 스크립트와
총 발사와 여러 효과를 제어하는 스크립트가 오늘 추가되었다.
ㅡ
private void Shoot() // 발사 후
{
PlaySE(currentGun.fire_Sound); //효과음 (currentGun 안에있는 효과음)
currentGun.muzzleFlash.Play(); // 파티클 플레이
Debug.Log("총알 발사함");
}private void PlaySE(AudioClip _clip)//효과음 재생
{
audioSource.clip = _clip; //오디오 소스에 클립삽입
audioSource.Play(); //재생
}사운드 부분 이외에는 대부분 한번씩 봤던 부분이라 크게 주의할 코드는 없었다.
ㅡ
파티클 기능 설명이 대부분인 회차였음 파티클에 대해 상당히 자세하게 설명해준다.
(파티클 만들 때 해당 회차를 참고하면 좋을듯))
반응형'인프런 강의 - 케이디 생존게임' 카테고리의 다른 글
케이디 강의7 - (총 발사 시 피격 이펙트 ,Hit 체크) (0) 2022.11.09 케이디 강의6 - (재장전, 정조준, 총기반동, 각종 이슈 해결) (0) 2022.11.08 케이디 강의4 - (팔 생성, 애니메이션, 작업 중 각종 이슈해결) (0) 2022.11.07 케이디 강의3 - (Terrain을 통한 3D 맵 생성) (0) 2022.11.05 케이디 강의2 - (앉기, 달리기, 점프) (0) 2022.11.05