private void Start()
        {
            enimies      = enimies + 1;                                                                             //Chaneded Here
            player       = GameObject.FindGameObjectWithTag("Player");
            playerHealth = player.GetComponent <PlayerStats>();
            animator     = GetComponent <Animator>();
            chest        = animator.GetBoneTransform(HumanBodyBones.Chest);
            source       = GetComponent <AudioSource>();
            navMeshAgent = GetComponent <NavMeshAgent>();
            aiControl    = GetComponent <AIControl>();
            vision       = GetComponentInChildren <NPCVision>();
            hitFXManager = GetComponent <HitFXManager>();
            states       = GetComponent <NPCStates>();

            visibilityCheckObject      = new GameObject();
            visibilityCheckObject.name = this.name + " visibilityCheckObject";
            visibilityCheckObject.AddComponent <SphereCollider>().radius  = 0.3f;
            visibilityCheckObject.GetComponent <SphereCollider>().enabled = false;

            foreach (Collider collider in GetComponentsInChildren <Collider>())
            {
                collider.enabled = false;
            }
            foreach (Rigidbody rigidbody in GetComponentsInChildren <Rigidbody>())
            {
                rigidbody.isKinematic = true;
            }

            GetComponent <Rigidbody>().isKinematic = false;
            GetComponent <Collider>().enabled      = true;

            StartCoroutine(CheckFriends());

            //Set own position as NavMesh target on start
            desiredPosition = transform.position;

            //Controller variables
            m_Rigidbody     = GetComponent <Rigidbody>();
            m_Capsule       = GetComponent <CapsuleCollider>();
            m_CapsuleHeight = m_Capsule.height;
            m_CapsuleCenter = m_Capsule.center;

            m_Rigidbody.constraints   = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ;
            m_OrigGroundCheckDistance = m_GroundCheckDistance;
        }
示例#2
0
        private void Start()
        {
            GetWeaponSettings();

            if (weaponType != WeaponType.Melee && weaponType != WeaponType.Grenade)
            {
                BalisticProjectilesPool();
            }

            if (GetComponent <Animator>())
            {
                animator = GetComponent <Animator>();
            }
            else
            {
                Debug.LogError("Please attach animator to your weapon object");
            }

            if (GetComponent <AudioSource>())
            {
                audioSource = GetComponentInParent <AudioSource>();
            }
            else
            {
                Debug.LogError("Please attach AudioSource to your weapon object");
            }

            cam = Camera.main;

            controller = FindObjectOfType <FPSController>();

            normalSensX = controller.sensitivity.x;
            normalSensY = controller.sensitivity.y;
            normalFOV   = cam.fieldOfView;

            weaponManager = FindObjectOfType <WeaponManager>();

            scope          = weaponManager.scopeImage;
            ammoText       = GameObject.Find("AmmoText").GetComponent <Text>();
            weaponNameText = GameObject.Find("WeaponText").GetComponent <Text>();

            recoilComponent = FindObjectOfType <Recoil>();
            sway            = FindObjectOfType <Sway>();

            if (weaponType != WeaponType.Melee && weaponType != WeaponType.Grenade)
            {
                if (shell)
                {
                    ShellsPool();
                }
                else
                {
                    Debug.LogError("No shell gameobject attached to weapon settings object");
                }

                if (MuzzleFlashParticlesFX)
                {
                    temp_MuzzleFlashParticlesFX = Instantiate(MuzzleFlashParticlesFX, muzzleFlashTransform.position, muzzleFlashTransform.rotation, muzzleFlashTransform);
                }
                else
                {
                    Debug.LogWarning("There is no shot particle system attached to weapon settings");
                }
            }

            hitFXManager = FindObjectOfType <HitFXManager>();

            ricochetSource = hitFXManager.gameObject.GetComponent <AudioSource>();
            ricochetSounds = hitFXManager.ricochetSounds;

            inventory = FindObjectOfType <Inventory>();
            input     = FindObjectOfType <InputManager>();

            if (weaponManager.UseNonPhysicalReticle)
            {
                if (GameObject.Find("StaticReticle") != null)
                {
                    staticReticle = GameObject.Find("StaticReticle");
                }
            }
            else
            {
                if (GameObject.Find("DynamicReticle") != null)
                {
                    dynamicReticle = GameObject.Find("DynamicReticle").GetComponent <RectTransform>();
                }
            }

            var item = new Item(ammoItemID, "ammo", "ammo", ItemType.ammo);

            item.ammo = 100;

            inventory.GiveItem(item);
        }