public void SetUpWeapon(bool active, UnitWeapon.WeaponClasses weaponClass = UnitWeapon.WeaponClasses.Melee) { //CurrentWeapon.gameObject.name = "Desired " + active + " " + weaponClass; //DEBUG CurrentWeapon.gameObject.SetActive(active); if (active) { if (weaponClass == CurrentWeapon.WeaponClass) //if nothing is changing... { return; } else // need a different weapon... { //swap to new desired weapon CurrentWeapon.MeshComponent.sharedMesh = WeaponMgr.PickAWeapon(Team, weaponClass, Profession); CurrentWeapon.Profession = Profession; CurrentWeapon.Team = Team; CurrentWeapon.WeaponClass = weaponClass; //reset position in respect to hand slot CurrentWeapon.transform.localPosition = Vector3.zero; CurrentWeapon.transform.localRotation = Quaternion.identity; } } }
public static Mesh PickAWeapon(Teams team, UnitWeapon.WeaponClasses reach, Professions profession) { foreach (var w in _weapons) { if (w.Team == team && w.WeaponClass == reach && w.Profession == profession) { return(w.MeshComponent.sharedMesh); } } //if no matching weapon found... //Debug.Log("WeaponMgr.PickAWeapon() | Default sharedMesh returned for " + team + "/" + reach + "/" + profession); return((reach == UnitWeapon.WeaponClasses.Melee ? _defaultMelee : _defaultRanged).MeshComponent.sharedMesh); }