コード例 #1
0
ファイル: WeaponTemplate.cs プロジェクト: Sicerat/Wandering-3
    private void Awake()
    {
        instantiatedWeapon = Instantiate(weaponObj, weaponPos);
        SetLayerRecursively(instantiatedWeapon, weaponPos.gameObject.layer);
        gunTip            = instantiatedWeapon.GetComponentInChildren <GunTip>().gameObject.transform;
        _gunEffectsHolder = instantiatedWeapon.GetComponentInChildren <GunEffectsHolder>().gameObject.transform;
        _gunInterface     = GetComponentInChildren <GunInterface>();
        _gunInterface.SetSubText(_currentAmmo.ToString());
        CurrentAmmo = clipSize;

        if (tracerEffect != null)
        {
            instantiatedTracer = Instantiate(tracerEffect, _gunEffectsHolder);
        }
        if (muzzleFlash != null)
        {
            instantiatedMuzzleFlash = Instantiate(muzzleFlash, _gunEffectsHolder);
        }

        if (altFireController != null)
        {
            instantiatedAltFireController = Instantiate(altFireController, weaponPos);
            altFire = instantiatedAltFireController.GetComponent <altFireController>().altFireScript as altFireBase;
        }
    }
コード例 #2
0
ファイル: WeaponTemplate.cs プロジェクト: Sicerat/Wandering-3
    public void InitializeNewWeapon(WeaponInstance weapon)
    {
        weaponObj = weapon.weaponObj;

        hitDamage   = weapon.hitDamage;
        fireRate    = weapon.fireRate;
        clipSize    = weapon.clipSize;
        CurrentAmmo = weapon.currentAmmo;
        reloadTime  = weapon.reloadTime;
        isAutomatic = weapon.isAutomatic;

        _isReloading = false;
        IsZoomed     = false;

        spreading           = weapon.spreading;
        normalBurstDuration = weapon.normalBurstDuration;
        burstPenaltySpeed   = weapon.burstPenaltySpeed;
        maxBurstPenalty     = weapon.maxBurstPenalty;
        CurrentBurstPenalty = 0f;

        zoomRotateModifier    = weapon.zoomRotateModifier;
        zoomSpeedModifier     = weapon.zoomSpeedModifier;
        zoomSpreadingModifier = weapon.zoomSpreadingModifier;
        zoomValue             = weapon.zoomValue;
        impactForce           = weapon.impactForce;

        _currentMode      = 1;
        altFireController = weapon.altFireController;

        tracerEffect = weapon.tracerEffect;
        muzzleFlash  = weapon.muzzleFlash;
        impactEffect = weapon.impactEffect;
        hitDecal     = weapon.hitDecal;
        recoilAngle  = weapon.recoilAngle;

        Destroy(instantiatedWeapon);
        Destroy(instantiatedAltFireController);

        instantiatedWeapon = Instantiate(weaponObj, weaponPos);
        gunTip             = instantiatedWeapon.GetComponentInChildren <GunTip>().gameObject.transform;
        _gunEffectsHolder  = GetComponentInChildren <GunEffectsHolder>().gameObject.transform;
        _gunInterface      = instantiatedWeapon.GetComponentInChildren <GunInterface>();
        _gunInterface.SetSubText(CurrentAmmo.ToString());

        instantiatedTracer      = Instantiate(tracerEffect, _gunEffectsHolder);
        instantiatedMuzzleFlash = Instantiate(muzzleFlash, _gunEffectsHolder);

        if (altFireController != null)
        {
            instantiatedAltFireController = Instantiate(altFireController, weaponPos);
            altFire = instantiatedAltFireController.GetComponent <altFireController>().altFireScript as altFireBase;
        }

        GetComponent <ShootingSystem>().gunRecoil = instantiatedWeapon.GetComponentInChildren <RecoilGun>();
    }