示例#1
0
        public void Initialize(PlayerUnit player)
        {
            baseWeapon = player.AimController.CurrentWeapon;

            if(updateRoutine!=null)
                StopCoroutine(updateRoutine);

            updateRoutine = StartCoroutine(UpdateCoroutine());
        }
示例#2
0
        public override void Initialize(BaseWeapon targetBaseWeapon)
        {
            base.Initialize(targetBaseWeapon);

            Ray shootRay = new Ray(transform.position, transform.forward);
            Vector3 finalShootPosition = transform.position + transform.forward * weaponDefinition.GetRange();
            RaycastHit hit;

            if (Physics.Raycast(shootRay, out hit, weaponDefinition.GetRange(), layerMask))
            {
                finalShootPosition = hit.point;

                IHitByBullet[] affectedObjects = hit.transform.GetComponents<IHitByBullet>();
                base.ApplyEffect(affectedObjects, hit.point);
            }

            finalShootPosition = new Vector3(finalShootPosition.x, transform.position.y, finalShootPosition.z);

            lineRenderer.SetPosition(0, targetBaseWeapon.GetExitPoint().position);
            lineRenderer.SetPosition(1, finalShootPosition);

            this.DestroyBullet(0.05f);
        }
示例#3
0
 public void Hit(BaseWeapon baseWeapon)
 {
     attributePool.GetAttribute(AttributeType.Health).ChangeValue(-baseWeapon.GetWeaponDefinition().GetDamage());
 }
示例#4
0
 public virtual void Initialize(BaseWeapon targetBaseWeapon)
 {
     baseWeapon = targetBaseWeapon;
     weaponDefinition = baseWeapon.GetWeaponDefinition();
     layerMask = baseWeapon.GetWeaponLayerMask();
 }
示例#5
0
 private void Awake()
 {
     currentWeapon = GetComponentInChildren<BaseWeapon>();
 }
示例#6
0
 private void Awake()
 {
     baseUnit = GetComponent<BaseUnit>();
     currentWeapon = GetComponentInChildren<BaseWeapon>();
     currentWeapon.Initialize(baseUnit);
 }