Inheritance: MonoBehaviour
Ejemplo n.º 1
0
    void Awake()
    {

        dynamicAdminTypes = new List<System.Type>() {
            typeof(CarHeadlights)
        };

        if(driverCam == null)
            driverCam = TrackController.Instance.driverCam;

        if(AppController.Instance.appSettings.projectorBlend)
        {
            AdminSettings.Instance.displayType = DisplayType.PARABOLIC;
        }


        //SetDisplay();

        SetFarClip(AdminSettings.Instance.camFarClip);


        StartCoroutine(LoadDynamicTypes());


        

    }
    void LoadMisc()
    {
        var settings  = GetComponent <DriveAdminUISettings>();
        var driverCam = settings.driverCam;

        var serializer = new XmlSerializer(typeof(MiscSettings));

        using (var filestream = new FileStream(Application.streamingAssetsPath + "/SavedPresets/MiscSettings.xml", FileMode.Open))
        {
            var reader        = new System.Xml.XmlTextReader(filestream);
            var savedSettings = serializer.Deserialize(reader) as MiscSettings;

//            timeOfDay.Components.Time.enabled = savedSettings.progressTime;
            AdminSettings.Instance.sunshafts = savedSettings.sunShafts;
            AdminSettings.Instance.fog       = savedSettings.fog;
            AdminSettings.Instance.fov       = DriverCamera.ScaleFov(savedSettings.fov);
            driverCam.SetFoV(DriverCamera.ScaleFov(savedSettings.fov));
            AdminSettings.Instance.camFarClip = savedSettings.cameraClip;
            settings.SetFarClip(savedSettings.cameraClip);
            AudioController.Instance.MusicVolume   = savedSettings.musicVol;
            AudioController.Instance.FoleyVolume   = savedSettings.foleyVol;
            AudioController.Instance.VehicleVolume = savedSettings.foleyVol;
        }

        //refresh all misc + audio panel info
        adminCategories[1].UpdateValues();
        adminCategories[3].UpdateValues();
    }
    void LoadMisc()
    {
        var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MiscSettings));

        using (var filestream = new FileStream(Application.streamingAssetsPath + "/SavedPresets/MiscSettings.xml", FileMode.Open))
        {
            var reader        = new System.Xml.XmlTextReader(filestream);
            var savedSettings = serializer.Deserialize(reader) as MiscSettings;

            AdminSettings.Instance.fov = DriverCamera.ScaleFov(savedSettings.fov);
        }
    }
Ejemplo n.º 4
0
    public RiskAssessment(Vector3 infoTagStartScale, DriverCamera driverCam, AnimationCurve infoTagResize, Transform rayCastPos, GameObject gameObject, LayerMask mask, LinesUtils linesUtils)
    {
        this.infoTagStartScale = infoTagStartScale;
        this.driverCam         = driverCam;
        this.infoTagResize     = infoTagResize;
        this.rayCastPos        = rayCastPos;
        this.gameObject        = gameObject;
        this.mask       = mask;
        this.linesUtils = linesUtils;

        this.rigidbody         = gameObject.transform.parent.GetComponent <Rigidbody>();
        this.vehicleController = gameObject.transform.parent.GetComponent <VehicleController>();
    }
    void RecalculateCam(DriverCamera cam)
    {
        var lCam = cam.left.GetComponent <Camera>();
        var cCam = cam.center.GetComponent <Camera>();
        var rCam = cam.right.GetComponent <Camera>();

        if (cam.cameraSetup == AdminScreen.DisplayType.PARABOLIC)
        {
            lCam.enabled     = false;
            rCam.enabled     = false;
            cCam.aspect      = 4992f / 1080f;
            cCam.rect        = new Rect(0f, 0f, 1f, 1f);
            cCam.fieldOfView = Mathf.Rad2Deg * 2 * Mathf.Atan(Mathf.Tan(angle * Mathf.Deg2Rad / 2) / cCam.aspect);
        }
        else if (cam.cameraSetup == AdminScreen.DisplayType.FLAT)
        {
            lCam.enabled     = false;
            rCam.enabled     = false;
            cCam.aspect      = 5760f / 1080f;
            cCam.rect        = new Rect(0f, 0f, 1f, 1f);
            cCam.fieldOfView = Mathf.Rad2Deg * 2 * Mathf.Atan(Mathf.Tan(angle * Mathf.Deg2Rad / 2) / cCam.aspect);
        }
        else
        {
            lCam.enabled = true;
            cCam.enabled = true;
            rCam.enabled = true;

            lCam.aspect = 16f / 9f;
            cCam.aspect = 16f / 9f;
            rCam.aspect = 16f / 9f;

            lCam.rect = new Rect(0f, 0f, 0.25f, 1f);
            cCam.rect = new Rect(0.25f, 0f, 0.25f, 1f);
            rCam.rect = new Rect(0.5f, 0f, 0.25f, 1f);

            var mult = Mathf.Atan(Mathf.Tan(angle * Mathf.Deg2Rad / 2) / 3f) * 2;

            var vFov = Mathf.Rad2Deg * 2 * Mathf.Atan(Mathf.Tan(mult / 2) / cCam.aspect);

            lCam.fieldOfView = vFov;
            cCam.fieldOfView = vFov;
            rCam.fieldOfView = vFov;

            cCam.transform.localRotation = Quaternion.identity;
            lCam.transform.localRotation = Quaternion.Euler(0, -(mult * Mathf.Rad2Deg), 0);
            rCam.transform.localRotation = Quaternion.Euler(0, mult * Mathf.Rad2Deg, 0);
        }
    }
    IEnumerator LoadDynamicTypes()
    {
        cachedDynamicObjects = new List <GetterSetter>();

        yield return(null);

        yield return(new WaitForSeconds(4f));

        yield return(null);

        if (driverCam == null)
        {
            driverCam = TrackController.Instance.driverCam;
        }
        foreach (var o in dynamicAdminTypes)
        {
            var sceneObjs = FindObjectsOfType(o);
            foreach (var sceneObj in sceneObjs)
            {
                foreach (var f in o.GetFields(BindingFlags.Public | BindingFlags.Instance))
                {
                    foreach (var a in f.GetCustomAttributes(typeof(AdminRangeAttribute), false))
                    {
                        var rangeAttr = (AdminRangeAttribute)a;
                        var so        = sceneObj;
                        var finfo     = f;
                        cachedDynamicObjects.Add(new GetterSetter {
                            label  = rangeAttr.label,
                            min    = rangeAttr.min,
                            max    = rangeAttr.max,
                            setter = (newVal) => finfo.SetValue(so, newVal),
                            getter = () => { return((float)finfo.GetValue(so)); }
                        });
                    }
                }
            }
        }
    }
Ejemplo n.º 7
0
 // Use this for initialization
 void Start()
 {
     instance = this;
     mCam     = Camera.main;
 }