Beispiel #1
0
    public void LateUpdate()
    {
        if (DialogueManager.IsConversationActive)
        {
            //The character speaking
            CurrentConversantName = DialogueManager.CurrentConversationState.subtitle.speakerInfo.Name;
            //Find the speaking character in the scene
            try
            {
                ActiveConversant = Conversants.Where(hC => hC.gameObject.tag == CurrentConversantName).FirstOrDefault();
            }
            catch (System.Exception)
            {
                throw new UnityException("Fix This pls!!!");
            }
            //finally
            //{
            //    if (ActiveConversant == null)
            //        NameColor = Color.black;
            //}



            if (ActiveConversant != null && ActiveConversant != PreviousConversant)
            {
                //get custom offset for speaking character
                CharInfo = ActiveConversant.GetComponent <CharacterGUIInfo>();
                Transform HeadPosition = CharInfo.HeadPosition;
                NameColor = CharInfo.NameTextColor;

                Vector3 ScreenPos = KickStarter.mainCamera.attachedCamera._camera.WorldToScreenPoint(HeadPosition.position);

                if (GUIPositioner != null)
                {
                    GUIPositioner.SetConversantGUI(ScreenPos);
                }
                PreviousConversant = ActiveConversant;
            }
            else if (ActiveConversant == null)
            {
                GUIPositioner.ResetGUI();
                PreviousConversant = null;
            }
        }
        _Camera tmpCamera = KickStarter.mainCamera.attachedCamera;

        if (tmpCamera != currentCamera && CharInfo != null)
        {
            Transform HeadPosition = CharInfo.HeadPosition;
            Vector3   ScreenPos    = KickStarter.mainCamera.attachedCamera._camera.WorldToScreenPoint(HeadPosition.position);

            if (GUIPositioner != null)
            {
                GUIPositioner.SetConversantGUI(ScreenPos);
            }

            lastCamera    = currentCamera;
            currentCamera = tmpCamera;
        }
    }
Beispiel #2
0
 void Awake()
 {
     Conversants           = new List <GameObject>();
     CurrentConversantName = "Not Set";
     ActiveConversant      = null;
     PreviousConversant    = null;
     GUIPositioner         = GameObject.Find("SYSTEM_DIALOGUEMANAGER").GetComponent <DialogueSystemGUIPositioner>();
     NameColor             = Color.black;
     currentCamera         = KickStarter.mainCamera.attachedCamera;
     lastCamera            = KickStarter.mainCamera.attachedCamera;
 }
Beispiel #3
0
    public void SetGameCamera(_Camera _camera)
    {
        attachedCamera = _camera;

        if (attachedCamera is GameCamera)
        {
            GameCamera gameCam = (GameCamera)attachedCamera;
            cursorAffectsRotation = gameCam.followCursor;
            lookAtAmount          = gameCam.cursorInfluence;
        }
    }
Beispiel #4
0
    override public float Run()
    {
        if (!isRunning)
        {
            isRunning = true;

            MainCamera mainCam = GameObject.FindWithTag(Tags.mainCamera).GetComponent <MainCamera>();

            if (mainCam)
            {
                _Camera cam = linkedCamera;

                if (returnToLast && mainCam.lastNavCamera)
                {
                    cam = (_Camera)mainCam.lastNavCamera;
                }

                if (cam)
                {
                    if (mainCam.attachedCamera != cam)
                    {
                        mainCam.SetGameCamera(cam);

                        if (transitionTime > 0f)
                        {
                            mainCam.SmoothChange(transitionTime, moveMethod);

                            if (willWait)
                            {
                                return(transitionTime);
                            }
                        }
                        else
                        {
                            if (!returnToLast)
                            {
                                linkedCamera.MoveCameraInstant();
                            }
                            mainCam.SnapToAttached();
                        }
                    }
                }
            }
        }
        else
        {
            isRunning = false;
        }

        return(0f);
    }
Beispiel #5
0
    public override void OnInspectorGUI()
    {
        _Camera _target = (_Camera)target;

        EditorGUILayout.HelpBox("Attach this script to a custom Camera type to integrate it with Adventure Creator.", MessageType.Info);

        EditorGUILayout.BeginVertical("Button");
        EditorGUILayout.LabelField("Depth of field", EditorStyles.boldLabel);
        _target.focalDistance = EditorGUILayout.FloatField("Focal distance", _target.focalDistance);
        EditorGUILayout.EndVertical();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(_target);
        }
    }
Beispiel #6
0
    public void SetFirstPerson()
    {
        if (settingsManager)
        {
            if (settingsManager.controlStyle == ControlStyle.FirstPerson)
            {
                attachedCamera = GameObject.FindWithTag(Tags.firstPersonCamera).GetComponent <_Camera>();
                SnapToAttached();
            }
        }

        if (attachedCamera)
        {
            lastNavCamera = attachedCamera;
        }
    }