Esempio n. 1
0
        public override void Execute(StateManager states)
        {
            Managers.ResourcesManager manager = Managers.GameManagers.GetResourcesManager();

            Weapon weapon = manager.GetItemInstance(states.inventory.weaponID) as Weapon;

            states.inventory.currentWeapon = weapon;
            weapon.Initialize();

            weapon.properties.modelInstance.transform.parent           = states.animatorInstance.GetBoneTransform(HumanBodyBones.RightHand);
            weapon.properties.modelInstance.transform.localPosition    = states.animatorInstance.GetBoneTransform(HumanBodyBones.RightHand).localPosition;
            weapon.properties.modelInstance.transform.localEulerAngles = weapon.rightHandEulers.value;

            states.animatorController.LoadWeapon(weapon);
        }
Esempio n. 2
0
        public bool SpawnCurrentWeapon(Transform parentTransform)
        {
            if (currentWeapon != null && weapons[currentWeaponIndex].name == currentWeapon.name)
            {
                return(false);
            }
            Managers.ResourcesManager rm = Managers.GameManagers.ResourceManager;


            //Create Weapon
            string weaponName = weapons[currentWeaponIndex].name;
            Weapon targetWeapon;

            if (initializedWeapons == null)
            {
                initializedWeapons = new Dictionary <string, Weapon>();
            }
            if (initializedWeapons.TryGetValue(weaponName, out targetWeapon))
            {
                currentWeapon = targetWeapon;
                targetWeapon.CreateModel();
            }
            else
            {
                targetWeapon  = (Weapon)rm.InstiateItem(weaponName);
                currentWeapon = targetWeapon;
                targetWeapon.Init();
                initializedWeapons.Add(weaponName, targetWeapon);
            }

            if (parentTransform != null)
            {
                //Set Weapon Transform
                Transform rightHand       = parentTransform;
                Transform weaponTransform = targetWeapon.runtime.modelInstance.transform;
                weaponTransform.parent           = rightHand;
                weaponTransform.localPosition    = Vector3.zero;
                weaponTransform.localEulerAngles = Vector3.zero;
                weaponTransform.localScale       = new Vector3(1, 1, 1);
            }

            return(true);
        }