Skip to content

develop Weapon Accessory Management

pianop edited this page Feb 9, 2023 · 3 revisions

무기, 악세서리를 얻거나 레벨이 올라가는 것을 관리

여기서 말하는 "장비"라 함은 무기와 악세서리를 총칭하는 말입니다.
무기 관련 함수는 Weapon.cs에, 악세서리 관련 함수는 Character.cs에 있습니다.

목차

Summary

  1. 무기의 1레벨 기본 값과 레벨업시 올라가는 스텟, 수치를 전처리로 저장해주기
  2. 장비를 처음 획득할 때 처리할 함수와 이후 업그레이드를 처리해줄 함수를 작성함

levelOneWeaponPreprocessing

image
무기 획득시 적용되는 기본 무기 스탯값들을 전처리하는 함수
defaultWeaponStats[무기 index, 스탯 index] = 기초 스탯 값
Constants.X는 -1f를, Constants.INF는 1e10f를 의미하는 상수.

weaponUpgradePreprocessing

image
무기 종류별로 레벨업함에 따라 올라가는 무기 스텟값을 전처리하는 함수
WeaponUpgrade[무기 index][무기 level(레벨업 후)] = 해당 레벨에 올라가는 List< Tuple<스탯 index, 올라가는 수치>>를 반환, 한 번의 레벨업으로 여러 스탯이 올라가는 장비가 있기에 List를 하나 더 붙여주었음
0레벨은 없고 1레벨에는 업그레이드를 하지 않으므로 더미 값을 넣어주었음

AccessoryUpgradePreprocessing

image
위 함수의 액세서리 버전
위의 weaponUpgrade의 경우와 동일하나 1레벨 때의 기본 값과 업그레이드 시 올라가는 방식이 같아서 Upgrade하나로 처리함. 때문에 1레벨부터 적용되므로 0레벨에만 더미 값을 넣어주었음.

GetWeapon

image
인자로 획득한 무기의 index를 받아서 해당 무기를 Weapons에 추가해줌
획득한 무기의 index가 가지고있는 Weapons(Weapon 리스트)의 몇 번째 index에 있는지를 넣어줌(없는 장비라면 -1가 기본 값) WeaponSetting()은 Weapon이 생성될 때 처리해야 하는 과정을 맡은 함수, 생성자를 사용하지 않은 이유는 유니티는 : MonoBehaviour가 붙은 클래스를 new로 생성하면 안되기에 Player 오브젝트에 Component로 생성된 Weapon을 붙여주고 생성자 역할을 해줄 함수를 따로 만들었음
새로 무기가 추가됨에 따라 뽑기 테이블 수정이 필요해져서 UpdateWeaponPickUpList 함수를 호출함

  • 작성중
Clone this wiki locally