Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- [CreateAssetMenu(fileName = "Weapon", menuName = "Weapon/New Weapon", order = 0)]
- public class PlayerWeapon : ScriptableObject
- {
- [SerializeField]GameObject weaponPrefab = null;
- public AnimatorOverrideController animatorOverride = null;
- public float weapDMG = 10f;
- public float wepRange = 2f;
- public Projectile projectile = null;
- const string wepName = "Weapon";
- // Update is called once per frame
- void Update()
- {
- }
- public void Spawn(Transform handTrans, Animator animator)
- {
- DestroyOldWepon(handTrans);
- if(weaponPrefab != null)
- {
- GameObject weapon = Instantiate(weaponPrefab, handTrans);
- weapon.name = wepName;
- }
- var overrideController = animator.runtimeAnimatorController as AnimatorOverrideController;
- if (animatorOverride != null)
- {
- animator.runtimeAnimatorController = animatorOverride;
- }
- else if (overrideController != null)
- {
- animator.runtimeAnimatorController = overrideController;
- }
- }
- private void DestroyOldWepon(Transform handTrans)
- {
- Transform oldwep = handTrans.Find(wepName);
- if (oldwep == null) return;
- oldwep.name = "Destroy";
- Destroy(oldwep.gameObject);
- }
- public bool HasProjectile()
- {
- return projectile != null;
- }
- public void LaunchProjectile(Transform handTrans, Health target, GameObject instigator, float dmgCalc)
- {
- Projectile projecIns = Instantiate(projectile, handTrans.position, Quaternion.identity);
- projecIns.SetTarget(target,instigator,dmgCalc);
- }
- public float GetDamage()
- {
- return weapDMG;
- }
- public float GetRange()
- {
- return wepRange;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement