Example #1
0
    public override void OnInspectorGUI()
    {
        sysObject = target as SimpleSysObject;

        DrawDefaultInspector();

        if (GUILayout.Button("Modify Radius"))
        {
            sysObject.transform.localScale = new Vector3(sysObject.equatorialRadius, sysObject.polarRadius, sysObject.equatorialRadius)
                                             * SimpleSysObject.scaleFactor * 2;
        }
    }
Example #2
0
    public void LateUpdate()
    {
        if (Input.GetMouseButtonUp(0) && _mouseHeldTime < .2f)
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                selectedObject = hit.transform;
            }
            else
            {
                selectedObject = null;
            }
        }
        if (Input.GetMouseButton(0))
        {
            me.Rotate(Input.GetAxis("Mouse Y") * rotateSpeed, -Input.GetAxis("Mouse X") * rotateSpeed, 0);
            _mouseHeldTime += Time.deltaTime;
        }
        else
        {
            _mouseHeldTime = 0;
        }

        me.Rotate(0, 0, Input.GetAxis(AddNeededInputAxis.CamRotateAxisName));
        moveSpeed *= Input.GetAxis("Mouse ScrollWheel") + 1;

        if (followObject)
        {
            followVector += (Input.GetAxis("Horizontal") * me.right + Input.GetAxis("Vertical") * me.forward +
                             Input.GetAxis(AddNeededInputAxis.CamUpDownAxisName) * me.up).normalized * moveSpeed * Time.deltaTime;
            me.position = followObject.position + followVector;
        }
        else
        {
            me.position += (Input.GetAxis("Horizontal") * me.right + Input.GetAxis("Vertical") * me.forward +
                            Input.GetAxis(AddNeededInputAxis.CamUpDownAxisName) * me.up).normalized * moveSpeed * Time.deltaTime;
        }

        bool followed = false;

        if (Input.GetKeyDown(KeyCode.G))
        {
            followObject = selectedObject;
            followed     = true;
        }
        if (followed && followObject)
        {
            sysObj = followObject.GetComponent <SimpleSysObject> () as SimpleSysObject;
            Vector3 dir = -followObject.position.normalized;
            followVector = dir * sysObj.equatorialRadius * SimpleSysObject.scaleFactor * 3;
            me.position  = followObject.position + followVector;
            me.LookAt(followObject.position);
        }

        if (Input.GetKeyDown(KeyCode.O))
        {
            SimpleSysObject.drawOrbit = !SimpleSysObject.drawOrbit;
        }

        if (Input.GetKeyDown(KeyCode.Equals))
        {
            timeScale *= 10;
        }
        else if (Input.GetKeyDown(KeyCode.Minus))
        {
            timeScale /= 10;
        }

        btnLText.text  = "";
        btnLText.text  = "Select : " + (selectedObject ? selectedObject.name : null);
        btnLText.text += "\nFollow : " + (followObject ? followObject.name : null);
        btnLText.text += "\nMove Speed : " + moveSpeed;
        btnLText.text += "\nTime Scale : x" + timeScale;
    }