コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        if (visualiseAll)
        {
            return;
        }

        if (Input.GetMouseButton(1))
        {
            if (currentOrbit)
            {
                currentOrbit.EndVisualise();
                currentOrbit = null;
            }
            return;
        }

        var        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;
        var        hit = UnityEngine.Physics.Raycast(ray.origin, ray.direction, out hitInfo);

        Orbit orbit;

        if (hit && (orbit = hitInfo.collider.gameObject.GetComponent <Orbit>()) != null)
        {
            if (orbit == currentOrbit)
            {
                return;
            }
            else if (currentOrbit != null)
            {
                currentOrbit.EndVisualise();
            }

            currentOrbit = orbit;
            orbit.Visualise();
        }
        else if (currentOrbit)
        {
            currentOrbit.EndVisualise();
            currentOrbit = null;
        }
    }