/// <summary> /// start trigger interaction /// </summary> /// <param name="character">character interacting with trigger</param> /// <param name="limbsIK">ik helper</param> /// <param name="use">use flag</param> /// <param name="jump">jump flag</param> /// <param name="v">vertical value</param> /// <param name="h">horizontal value</param> /// <returns>all succeded</returns> public override bool start(TPCharacter character, IKHelper limbsIK, bool use, bool secondaryUse, bool jump, float v, float h) { if (use) { IGameCharacter icharacter = character.GetComponent <IGameCharacter>(); if (icharacter != null) { icharacter.setNewItem(item); } } if (secondaryUse) { IGameCharacter icharacter = character.GetComponent <IGameCharacter>(); if (icharacter != null) { icharacter.setSecondaryItem(item); } } return(false); }
/// <summary> /// Custom On Scene GUI /// </summary> protected virtual void OnSceneGUI() { TPCharacter _TPCharacter = (TPCharacter)target; TPCInverseKinematics inverseKinematics = _TPCharacter.GetInverseKinematics(); if (debugFootIK) { if (inverseKinematics.LeftFootPivot == null && inverseKinematics.RightFootPivot == null) { return; } Handles.color = Color.black; Handles.DrawLine(inverseKinematics.LeftFootPivot.transform.position, inverseKinematics.LeftFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange); Handles.DrawWireArc(inverseKinematics.LeftFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange, Vector3.up, Vector3.forward, 360, 0.03f); Handles.color = new Color(0.25f, 0.25f, 0.25f, 0.1f); Handles.DrawSolidArc(inverseKinematics.LeftFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange, Vector3.up, Vector3.forward, 360, 0.03f); Handles.color = Color.black; Handles.DrawLine(inverseKinematics.RightFootPivot.transform.position, inverseKinematics.RightFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange); Handles.DrawWireArc(inverseKinematics.RightFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange, Vector3.up, Vector3.forward, 360, 0.03f); Handles.color = new Color(0.25f, 0.25f, 0.25f, 0.1f); Handles.DrawSolidArc(inverseKinematics.RightFootPivot.transform.position - Vector3.up * inverseKinematics.RayRange, Vector3.up, Vector3.forward, 360, 0.03f); } if (debugUpperBodyIK) { Animator animator = _TPCharacter.GetComponent <Animator>(); if (animator == null) { return; } Transform head = animator.GetBoneTransform(HumanBodyBones.Head); Transform spine = animator.GetBoneTransform(HumanBodyBones.Spine); Vector3 startPos = Extensions.CenterOfVectors(head.position, spine.position); if (inverseKinematics.LookTarget != null) { Handles.color = Color.black; Handles.DrawLine(startPos, inverseKinematics.LookTarget.position); } } }