示例#1
0
    // public GameObject setTargetOn;


    void Update()
    {
        if (!Input.GetMouseButton(0))
        {
            return;
        }

        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;

        if (!Physics.Raycast(ray, out hitInfo))
        {
            return;
        }

        GameObject    hitObject = hitInfo.transform.gameObject;
        ReactivePlane plane     = hitObject.GetComponent <ReactivePlane> ();

        if (plane == null)
        {
            return;
        }


        transform.position = hitInfo.point + hitInfo.normal * surfaceOffset;

        // if (setTargetOn != null)
        // {
        // setTargetOn.SendMessage("SetTarget", transform);
        // }
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        if (Input.touchCount == 1)
        {
            Vector3 point = Input.GetTouch(0).position;
            ray = Camera.main.ScreenPointToRay(point);

            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                GameObject    hitObject = hit.transform.gameObject;
                ReactivePlane plane     = hitObject.GetComponent <ReactivePlane> ();
                if (plane != null)
                {
                    touchSpot = hit.point;
                }
            }
        }
        transform.position = Vector3.MoveTowards(transform.position, touchSpot, 10.0f * Time.deltaTime);
    }