예제 #1
0
    public void UpdateSimulation(bool forceUpdate = false)
    {
        if (OnSimulation || forceUpdate)
        {
            if (layout == null)
            {
                layout = transform.GetComponent <LayoutPath>();
            }
            if (camActual == null)
            {
                foreach (var cam in Camera.allCameras)
                {
                    if (cam.name == "ReplayActual")
                    {
                        camActual = cam;
                    }
                    else if (cam.name == "ReplayNext")
                    {
                        camNext = cam;
                    }
                }
            }

            layout.GetPositionOnPath(Distance);

            //GameObject.Find("CarSimulator").hideFlags = HideFlags.HideInInspector;
            GameObject.Find("CarSimulator").transform.position = layout.PosOnPath;

            if (camList.Count == 0)
            {
                Sort(true);
            }

            int i = 0;
            foreach (var item in camList)
            {
                if (i == currentCam)
                {
                    ReplayCamActual = item.Value.GetComponent <ReplayCamera>();
                    camActual.transform.position = item.Value.transform.position;
                    camActual.fieldOfView        = ReplayCamActual.Fov;
                    CamActualName = item.Value.name;
                    //ActualFocalLength = ReplayCamActual.FocalLength;
                }
                if (i == currentCam + 1)
                {
                    ReplayCamNext = item.Value.GetComponent <ReplayCamera>();
                    camNext.transform.position = item.Value.transform.position;
                    camNext.fieldOfView        = ReplayCamNext.Fov;
                    CamNextName = item.Value.name;
                    //NextFocalLength = ReplayCamNext.FocalLength;
                }
                i++;
            }

            if (!ReplayCamActual.IsFixed)
            {
                camActual.transform.LookAt(layout.PosOnPath);
            }
            else
            {
                camActual.transform.localRotation = ReplayCamActual.transform.localRotation;
            }
            if (!ReplayCamNext.IsFixed)
            {
                camNext.transform.LookAt(layout.PosOnPath);
            }
            else
            {
                camNext.transform.localRotation = ReplayCamNext.transform.localRotation;
            }

            if (Distance < 0.0f)
            {
                Distance = 0.0f;
            }

            if (Distance > layout.Length)
            {
                Distance = layout.Length;
            }

            // check the camera changin'
            if (Distance > ReplayCamNext.StartDistance && ReplayCamNext.StartDistance != -1)
            {
                currentCam++;
                if (camList.Count <= currentCam)
                {
                    currentCam = camList.Count - 1;
                }
            }
        }
    }
예제 #2
0
    public override void Start()
    {
        #region Init GUI
        if (Camera == null)
        {
            Debug.Log("Camera Master cannot find camera");
        }

        JoinHost = gameObject.GetComponent <GUIJoinHost>();
        if (JoinHost == null)
        {
            Debug.Log("Camera Master cannot find GUI script for join/host");
        }
        MainMenu = gameObject.GetComponent <GUIMainMenu>();
        if (MainMenu == null)
        {
            Debug.Log("Camera master could not find GUI script for main menu");
        }
        SelectTeam = gameObject.GetComponent <GUISelectTeam>();
        if (SelectTeam == null)
        {
            Debug.Log("Camera Master cannot find GUI script for select");
        }

        ExitMenu = gameObject.GetComponent <GUIExitMenu>();
        if (ExitMenu == null)
        {
            Debug.Log("Camera Master cannot find GUI script for exit");
        }

        HostMenu = gameObject.GetComponent <GUIHostMenu>();
        if (HostMenu == null)
        {
            Debug.Log("Camera Master cannot find GUI script for host");
        }

        OptionsMenu = gameObject.GetComponent <GUIOptionsMenu>();
        if (OptionsMenu == null)
        {
            Debug.Log("Camera Master cannot find GUI script for Options");
        }


        LoadingScreen = gameObject.GetComponent <GUILoadingScreen>();
        if (LoadingScreen == null)
        {
            Debug.Log("Camera Maser cannot find GUI script for loading screen");
        }

        ChadCam = gameObject.GetComponent <ChadCam>();
        if (ChadCam == null)
        {
            Debug.Log("Camera Master cannot find ChadCam");
        }
        else
        {
            ChadCam.enabled = false;
        }

        SpectatorCam = gameObject.GetComponent <SpectatorCam>();
        if (SpectatorCam == null)
        {
            Debug.Log("Camera Master cannot find SpectatorCam");
        }
        else
        {
            SpectatorCam.enabled = false;
        }

        Hud = gameObject.GetComponent <ChadHud>();
        if (Hud == null)
        {
            Debug.Log("Camera Master could not find Hud");
        }

        ReplayCam         = gameObject.GetComponent <ReplayCamera>();
        ReplayCam.enabled = false;
        #endregion

        #region Chad Hats
        string settingsHat = UserSettings.GetSetting("Hat");

        if (settingsHat != null)
        {
            SelectedHat = System.Convert.ToInt32(settingsHat);
        }
        else
        {
            SelectedHat = (int)(Random.Range(0.0f, 1.0f) * (HatManager.Instance.Hats.Count - 2)) + 1;
            settingsHat = SelectedHat.ToString();
            UserSettings.AddOrUpdateAppSetting("Hat", settingsHat);
        }

        if (ChadMainMenu != null)
        {
            ChadMMHat = ChadMainMenu.GetComponent <Hatter>();
            ChadMMHat.SetHat(SelectedHat);
        }
        if (ChadTeam1 != null)
        {
            ChadT1Hat = ChadTeam1.GetComponent <Hatter>();
            ChadT1Hat.SetHat(SelectedHat);
        }
        if (ChadTeam1 != null)
        {
            ChadT2Hat = ChadTeam2.GetComponent <Hatter>();
            ChadT2Hat.SetHat(SelectedHat);
        }
        #endregion

        SetState(CAM_STATE.MAIN_MENU);
    }