コード例 #1
0
    // Start is called before the first frame update
    void Start()
    {
        int maxPlanets = 10;

        int countPlanets = Random.Range(0, maxPlanets + 1);

        HashSet <int> planetsIndices = new HashSet <int>();

        while (planetsIndices.Count < countPlanets)
        {
            planetsIndices.Add(Random.Range(0, maxPlanets + 1));
        }

        foreach (var planetsIndex in planetsIndices)
        {
            float RiRatio = SpaceMaths.GetPlanetRadiusByTitius_Bode(planetsIndex);
            float R       = Constants.UnityUnitConverter.FromAstronomicalUnits(RiRatio);
            float T       = SpaceMaths.YearsToSeconds(SpaceMaths.KeplerLawPeriod(RiRatio, 1f));
            //Debug.Log(T);
            GameObject planet = Instantiate(SpherePrefab);
            planet.name = "Planet " + (planetsIndex + 1);
            OrbitControl control = planet.GetComponent <OrbitControl>();
            CreateOrbitPoints(planet.GetComponent <LineRenderer>(), R);
            float      phi_0 = Random.Range(0, Mathf.PI * 2);
            PlanetData data  = new PlanetData(R, T, phi_0);
            control.SetPlanetData(data);
        }


        Camera.main.GetComponent <CameraSetupper>().target = GameObject.Find("Center").transform;
        //Camera.main.GetComponent<CameraSetupper>().target = GameObject.Find("Planet 3").transform;
    }
コード例 #2
0
    private void Awake()
    {
        // Scrollwheel zooming is stateless.  It's handled
        // whenever a delta greater than 0 is detected.
        _scrollZoomControl = new ScrollZoomControl();
        _scrollZoomControl.Init(transform);

        // Need to maintain a refernce to _orbitControl since other states
        // can affect its orbit point.
        _orbitControl = new OrbitControl();
        _orbitControl.Init(transform);

        _transformControls = new Dictionary <CameraState, ITransformControl>
        {
            { CameraState.ORBIT, _orbitControl },
            { CameraState.PAN, new PanControl() },
            { CameraState.ROTATE, new RotationControl() },
            { CameraState.MOUSE_ZOOM, new MouseZoomControl() }
        };

        Reset();
    }