public void ChangeGun(string gunName)
{
var characteristic = InfoManager.instance.charactoristicInfo;
void UpdateCharacteristic(ref int characteristicValue, int modifier)
{
characteristicValue = Mathf.Clamp(characteristicValue + modifier, 1, 10);
}
void UpdateGunCharacteristics(string gunType, int modifier)
{
switch (gunType)
{
case "AssultRifle":
UpdateCharacteristic(ref characteristic.kncokBackCharacteristic, modifier);
break;
case "SniperRifle":
UpdateCharacteristic(ref characteristic.penetrateCharacteristic, modifier);
break;
case "ShotGun":
UpdateCharacteristic(ref characteristic.bulletAmountCharacteristic, modifier);
break;
case "SubmachineGun":
UpdateCharacteristic(ref characteristic.dashRecoverCharacteristic, modifier);
break;
}
}
UpdateGunCharacteristics(this.currentGun.gunForm.gunType, -2);
this.currentGun = this.gameObject.GetComponent(gunName) as GunState;
UpdateGunCharacteristics(gunName, 2);
this.SetGun();
}
변경된 값을 1~10까지로 한계를 지정합니다. 이떄 ref 키워드를 사용하여 매개 변수의 값을 변경하는 방식으로 코드를 단순화 하였습니다. 또한 as 키워드를 사용하여 gunName을 GunState 타입으로 형변환하였습니다.
'Unity2D' 카테고리의 다른 글
Unity) [유니티 2D] 베지어 곡선을 통한 데미지 텍스트 구현 (0) | 2023.05.06 |
---|---|
Unity) [유니티 2D] 데이터 테이블을 연동하여 다양한 몬스터 생성하기 (0) | 2023.05.06 |
Unity) [Data] 데이터 연동하여 플레이어 능력치 구현 (0) | 2023.05.02 |
Unity) [유니티 2D] 슈터게임 충돌기능을 가진 조준선 구현 (0) | 2023.04.30 |
Unity) [유니티 2D] 보조 슈팅 공격(그레네이드 런쳐) 구현 (0) | 2023.04.29 |