Exemple #1
0
    protected override void Start()
    {
        shooterManager = GetComponent <vShooterManager>();

        base.Start();

        leftHand          = animator.GetBoneTransform(HumanBodyBones.LeftHand);
        rightHand         = animator.GetBoneTransform(HumanBodyBones.RightHand);
        leftUpperArm      = animator.GetBoneTransform(HumanBodyBones.LeftUpperArm);
        rightUpperArm     = animator.GetBoneTransform(HumanBodyBones.RightUpperArm);
        onlyArmsLayer     = animator.GetLayerIndex("OnlyArms");
        aimAngleReference = new GameObject("aimAngleReference");
        aimAngleReference.transform.rotation = transform.rotation;
        var chest = animator.GetBoneTransform(HumanBodyBones.Chest);

        aimAngleReference.transform.SetParent(chest);
        aimAngleReference.transform.localPosition = Vector3.zero;

        headTrack = GetComponent <vHeadTrack>();

        if (!controlAimCanvas)
        {
            Debug.LogWarning("Missing the AimCanvas, drag and drop the prefab to this scene in order to Aim", gameObject);
        }
    }
Exemple #2
0
    void Start()
    {
        shooterManager = GetComponent <vShooterManager>();
        if (shooterManager)
        {
            shooterManager.onReloadWeapon.AddListener(ReloadWeapon);
            shooterManager.totalAmmoHandler = new vShooterManager.TotalAmmoHandler(TotalAmmo);
        }

        itemManager = GetComponent <vItemManager>();
        if (itemManager)
        {
            itemManager.onUseItem.AddListener(UseAmmo);
            itemManager.onAddItem.AddListener(AddAmmo);
            itemManager.onDropItem.AddListener(DropAmmo);
            itemManager.onLeaveItem.AddListener(LeaveAmmo);
            ammoItems = itemManager.items.FindAll(item => item.type == vItemType.Ammo);
        }

        if (ammoListData)
        {
            ammos.Clear();
            for (int i = 0; i < ammoListData.ammos.Count; i++)
            {
                var ammo = new vAmmo(ammoListData.ammos[i]);
                ammos.Add(ammo);
            }
        }
    }
 void Setup_ShooterManager(GameObject prefab)
 {
     if (prefab.GetComponent <vShooterManager>())
     {
         vShooterManager org = prefab.GetComponent <vShooterManager>();
         if (!prefab.GetComponent <PUN_ShooterManager>())
         {
             prefab.AddComponent <PUN_ShooterManager>();
             PUN_ShooterManager newComp = prefab.GetComponent <PUN_ShooterManager>();
             PUN_Helpers.CopyComponentTo(org, newComp);
             DestroyImmediate(prefab.GetComponent <vShooterManager>());
         }
     }
 }
    public override void OnInspectorGUI()
    {
        GUI.skin = skin;

        vShooterManager manager = (vShooterManager)this.target;


        GUILayout.BeginVertical("Shooter Manager", "window");
        GUILayout.Label(m_Logo, GUILayout.MaxHeight(25));

        openCloseWindow = GUILayout.Toggle(openCloseWindow, openCloseWindow ? "Close" : "Open", EditorStyles.toolbarButton);

        if (openCloseWindow)
        {
            base.OnInspectorGUI();

            if (Application.isPlaying)
            {
                EditorGUILayout.BeginVertical("box");
                EditorGUILayout.HelpBox("Playmode Debug - Equip a weapon first", MessageType.Info);
                EditorGUILayout.Space();

                if (GUILayout.Button(manager.tpCamera.lockCamera ? "Unlock Camera" : "Lock Camera", EditorStyles.toolbarButton))
                {
                    manager.tpCamera.lockCamera = !manager.tpCamera.lockCamera;
                }
                EditorGUILayout.Space();
                if (GUILayout.Button(manager.alwaysAiming ? "Unlock Aiming" : "Lock Aiming", EditorStyles.toolbarButton))
                {
                    manager.alwaysAiming = !manager.alwaysAiming;
                }
                EditorGUILayout.Space();
                if (GUILayout.Button(manager.showCheckAimGizmos ? "Hide Aim Gizmos" : "Show Aim Gizmos", EditorStyles.toolbarButton))
                {
                    manager.showCheckAimGizmos = !manager.showCheckAimGizmos;
                }
                EditorGUILayout.EndVertical();
            }
        }
        EditorGUILayout.EndVertical();
        EditorGUILayout.Space();
    }
Exemple #5
0
    protected override void Start()
    {
        shooterManager = GetComponent <vShooterManager>();

        base.Start();

        leftHand      = animator.GetBoneTransform(HumanBodyBones.LeftHand);
        rightHand     = animator.GetBoneTransform(HumanBodyBones.RightHand);
        rightUpperArm = animator.GetBoneTransform(HumanBodyBones.RightUpperArm);
        onlyArmsLayer = animator.GetLayerIndex("OnlyArms");
        headTrack     = GetComponent <vHeadTrack>();
        if (headTrack)
        {
            headTrack.onFinishUpdate.AddListener(UpdateAimBehaviour);
        }
        if (!controlAimCanvas)
        {
            Debug.LogWarning("Don't exist a AimCanvas in current scene", gameObject);
        }
        animator.updateMode = AnimatorUpdateMode.AnimatePhysics;
    }
 protected override void Start()
 {
     base.Start();
     shooterManager = GetComponent <vShooterManager>();
 }
        static void CreateShooterPoints(vItemManager itemManager, vShooterManager shooterManager)
        {
            if (!shooterManager)
            {
                return;
            }
            var animator = itemManager.GetComponent <Animator>();

            #region LeftEquipPoint

            var equipPointL = itemManager.equipPoints.Find(p => p.equipPointName == "LeftArm");
            if (equipPointL == null)
            {
                EquipPoint pointL = new EquipPoint();
                pointL.equipPointName = "LeftArm";
                if (shooterManager)
                {
#if UNITY_EDITOR
                    UnityEventTools.AddPersistentListener <GameObject>(pointL.onInstantiateEquiment, shooterManager.SetLeftWeapon);
#else
                    pointL.onInstantiateEquiment.AddListener(shooterManager.SetLeftWeapon);
#endif
                }

                if (animator)
                {
                    var defaultEquipPointL = new GameObject("defaultEquipPoint");
                    var parent             = animator.GetBoneTransform(HumanBodyBones.LeftHand);
                    defaultEquipPointL.transform.SetParent(parent);
                    defaultEquipPointL.transform.localPosition = Vector3.zero;
                    defaultEquipPointL.transform.forward       = itemManager.transform.forward;
                    defaultEquipPointL.gameObject.tag          = "Ignore Ragdoll";
                    pointL.handler = new vHandler();
                    pointL.handler.defaultHandler = defaultEquipPointL.transform;
                }
                itemManager.equipPoints.Add(pointL);
            }
            else
            {
                if (equipPointL.handler.defaultHandler == null)
                {
                    if (animator)
                    {
                        var parent       = animator.GetBoneTransform(HumanBodyBones.LeftHand);
                        var defaultPoint = parent.Find("defaultEquipPoint");

                        if (defaultPoint)
                        {
                            equipPointL.handler.defaultHandler = defaultPoint;
                        }
                        else
                        {
                            var _defaultPoint = new GameObject("defaultEquipPoint");
                            _defaultPoint.transform.SetParent(parent);
                            _defaultPoint.transform.localPosition = Vector3.zero;
                            _defaultPoint.transform.forward       = itemManager.transform.forward;
                            _defaultPoint.gameObject.tag          = "Ignore Ragdoll";
                            equipPointL.handler.defaultHandler    = _defaultPoint.transform;
                        }
                    }
                }

                bool containsListener = false;
                for (int i = 0; i < equipPointL.onInstantiateEquiment.GetPersistentEventCount(); i++)
                {
                    if (equipPointL.onInstantiateEquiment.GetPersistentTarget(i).GetType().Equals(typeof(vShooterManager)) && equipPointL.onInstantiateEquiment.GetPersistentMethodName(i).Equals("SetLeftWeapon"))
                    {
                        containsListener = true;
                        break;
                    }
                }

                if (!containsListener && shooterManager)
                {
#if UNITY_EDITOR
                    UnityEventTools.AddPersistentListener <GameObject>(equipPointL.onInstantiateEquiment, shooterManager.SetLeftWeapon);
#else
                    equipPointL.onInstantiateEquiment.AddListener(shooterManager.SetLeftWeapon);
#endif
                }
            }
            #endregion

            #region RightEquipPoint

            var equipPointR = itemManager.equipPoints.Find(p => p.equipPointName == "RightArm");
            if (equipPointR == null)
            {
                EquipPoint pointR = new EquipPoint();
                pointR.equipPointName = "RightArm";
                if (shooterManager)
                {
#if UNITY_EDITOR
                    UnityEventTools.AddPersistentListener <GameObject>(pointR.onInstantiateEquiment, shooterManager.SetRightWeapon);
#else
                    pointR.onInstantiateEquiment.AddListener(shooterManager.SetRightWeapon);
#endif
                }

                if (animator)
                {
                    var defaultEquipPointR = new GameObject("defaultEquipPoint");
                    var parent             = animator.GetBoneTransform(HumanBodyBones.RightHand);
                    defaultEquipPointR.transform.SetParent(parent);
                    defaultEquipPointR.transform.localPosition = Vector3.zero;
                    defaultEquipPointR.transform.forward       = itemManager.transform.forward;
                    defaultEquipPointR.gameObject.tag          = "Ignore Ragdoll";
                    pointR.handler = new vHandler();
                    pointR.handler.defaultHandler = defaultEquipPointR.transform;
                }
                itemManager.equipPoints.Add(pointR);
            }
            else
            {
                if (equipPointR.handler.defaultHandler == null)
                {
                    if (animator)
                    {
                        var parent       = animator.GetBoneTransform(HumanBodyBones.RightHand);
                        var defaultPoint = parent.Find("defaultEquipPoint");
                        if (defaultPoint)
                        {
                            equipPointR.handler.defaultHandler = defaultPoint;
                        }
                        else
                        {
                            var _defaultPoint = new GameObject("defaultEquipPoint");
                            _defaultPoint.transform.SetParent(parent);
                            _defaultPoint.transform.localPosition = Vector3.zero;
                            _defaultPoint.transform.forward       = itemManager.transform.forward;
                            _defaultPoint.gameObject.tag          = "Ignore Ragdoll";
                            equipPointR.handler.defaultHandler    = _defaultPoint.transform;
                        }
                    }
                }

                bool containsListener = false;
                for (int i = 0; i < equipPointR.onInstantiateEquiment.GetPersistentEventCount(); i++)
                {
                    if (equipPointR.onInstantiateEquiment.GetPersistentTarget(i).GetType().Equals(typeof(vShooterManager)) && equipPointR.onInstantiateEquiment.GetPersistentMethodName(i).Equals("SetRightWeapon"))
                    {
                        containsListener = true;
                        break;
                    }
                }

                if (!containsListener && shooterManager)
                {
#if UNITY_EDITOR
                    UnityEventTools.AddPersistentListener <GameObject>(equipPointR.onInstantiateEquiment, shooterManager.SetRightWeapon);
#else
                    equipPointR.onInstantiateEquiment.AddListener(shooterManager.SetRightWeapon);
#endif
                }
            }
            #endregion
        }