protected override void Start() { shooterManager = GetComponent <vShooterManager>(); base.Start(); if (GameController.Instance.IsMultyPlayer()) { if (!isLocalPlayer) { Destroy(this); return; } } 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); } }
void OnEnable() { m_Logo = (Texture2D)Resources.Load("headTrackIcon", typeof(Texture2D)); track = (vHeadTrack)target; animator = track.GetComponentInParent <Animator>(); skin = Resources.Load("skin") as GUISkin; AddEventToTpInput(); }
void OnEnable() { m_Logo = (Texture2D)Resources.Load("icon_v2", typeof(Texture2D)); vHeadTrack track = (vHeadTrack)target; animator = track.GetComponentInParent <Animator>(); skin = Resources.Load("skin") as GUISkin; }
public override void OnInspectorGUI() { vHeadTrack track = (vHeadTrack)target; if (skin != null) { GUI.skin = skin; } if (animator) { GUILayout.BeginVertical("Head Track System", "window"); GUILayout.Label(m_Logo, GUILayout.MaxHeight(25)); openWindow = GUILayout.Toggle(openWindow, openWindow ? "Close" : "Open", EditorStyles.toolbarButton); if (openWindow) { base.DrawDefaultInspector(); if (track.head == null) { track.head = animator.GetBoneTransform(HumanBodyBones.Head); } if (track.useLimitAngle) { GUILayout.BeginVertical("box"); //GUILayout.Box("Head Track Angle Limit", GUILayout.ExpandWidth(true)); GUILayout.Label(new GUIContent("Angle Range X"), EditorStyles.boldLabel); GUILayout.BeginHorizontal(); track.minAngleX = EditorGUILayout.FloatField(track.minAngleX, GUILayout.MaxWidth(40)); EditorGUILayout.MinMaxSlider(ref track.minAngleX, ref track.maxAngleX, -180, 180); track.maxAngleX = EditorGUILayout.FloatField(track.maxAngleX, GUILayout.MaxWidth(40)); GUILayout.EndHorizontal(); GUILayout.Label(new GUIContent("Angle Range Y"), EditorStyles.boldLabel); GUILayout.BeginHorizontal(); track.minAngleY = EditorGUILayout.FloatField(track.minAngleY, GUILayout.MaxWidth(40)); EditorGUILayout.MinMaxSlider(ref track.minAngleY, ref track.maxAngleY, -180, 180); track.maxAngleY = EditorGUILayout.FloatField(track.maxAngleY, GUILayout.MaxWidth(40)); GUILayout.EndHorizontal(); GUILayout.EndVertical(); } } GUILayout.EndVertical(); if (GUI.changed) { EditorUtility.SetDirty(target); } } }
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; }
internal void ExitLook(vHeadTrack vHeadTrack) { onExitLook.Invoke(vHeadTrack); }
internal void EnterLook(vHeadTrack vHeadTrack) { onEnterLook.Invoke(vHeadTrack); }