public void Initialize(PlayerUnit player) { baseWeapon = player.AimController.CurrentWeapon; if(updateRoutine!=null) StopCoroutine(updateRoutine); updateRoutine = StartCoroutine(UpdateCoroutine()); }
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); }
public void Hit(BaseWeapon baseWeapon) { attributePool.GetAttribute(AttributeType.Health).ChangeValue(-baseWeapon.GetWeaponDefinition().GetDamage()); }
public virtual void Initialize(BaseWeapon targetBaseWeapon) { baseWeapon = targetBaseWeapon; weaponDefinition = baseWeapon.GetWeaponDefinition(); layerMask = baseWeapon.GetWeaponLayerMask(); }
private void Awake() { currentWeapon = GetComponentInChildren<BaseWeapon>(); }
private void Awake() { baseUnit = GetComponent<BaseUnit>(); currentWeapon = GetComponentInChildren<BaseWeapon>(); currentWeapon.Initialize(baseUnit); }