Пример #1
0
    //クリックしたオブジェクトの取得
    public void IconObjectClick()
    {
        GameObject TransportObj = null;
        Rigidbody  ObjectRig;
        float      power = 10.0f;

        if (Input.GetButton("JoyStick L1"))
        {
            Ray        ray = Camera.main.ScreenPointToRay(transform.position);
            RaycastHit hit = new RaycastHit();
            Debug.DrawRay(ray.origin, ray.direction * 100, Color.blue, 3, false);
            if (Physics.Raycast(ray, out hit))
            {
                TransportObj = hit.collider.gameObject;
                ObjectRig    = TransportObj.GetComponent <Rigidbody>();
                //nullチェック
                if (ObjectRig != null)
                {
                    //タッチしたとき力を加える
                    ObjectRig.AddForce(Vector3.up * power);
                    //オブジェクトの位置をスクリーン座標に変換
                    Vector3 ObjVec = Camera.main.WorldToScreenPoint(TransportObj.transform.position);
                    //UIの場所とオブジェクトの位置を統合
                    Vector3 UIPointInScren = new Vector3(transform.position.x, transform.position.y, ObjVec.z);
                    //UIの位置をワールド座標に変換
                    Vector3 UIPointInWorld = Camera.main.ScreenToWorldPoint(UIPointInScren);
                    //z軸は反映されない
                    UIPointInWorld.z = TransportObj.transform.position.z;
                    //保存したマウスのワールド座標をタッチしたオブジェクトに反映
                    TransportObj.transform.position = UIPointInWorld;
                }
            }
        }
    }
Пример #2
0
    //クリックしたオブジェクトの取得
    public void ObjectClick()
    {
        GameObject TransportObj = null;
        Rigidbody  ObjectRig;
        float      power = 10.0f;

        if (Input.GetButton("JoyStick L1"))
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit = new RaycastHit();
            if (Physics.Raycast(ray, out hit))
            {
                TransportObj = hit.collider.gameObject;
                ObjectRig    = TransportObj.GetComponent <Rigidbody>();
                //nullチェック
                if (ObjectRig != null)
                {
                    //タッチしたとき力を加える
                    ObjectRig.AddForce(Vector3.up * power);
                    //オブジェクトの位置をスクリーン座標に変換
                    Vector3 ObjVec = Camera.main.WorldToScreenPoint(TransportObj.transform.position);
                    //マウスの場所とオブジェクトの位置を統合
                    Vector3 mousePointInScren = new Vector3(Input.mousePosition.x, Input.mousePosition.y, ObjVec.z);
                    //マウスの位置をワールド座標に変換
                    Vector3 mousePointInWorld = Camera.main.ScreenToWorldPoint(mousePointInScren);
                    //z軸は反映されない
                    mousePointInWorld.z = TransportObj.transform.position.z;
                    //保存したマウスのワールド座標をタッチしたオブジェクトに反映
                    TransportObj.transform.position = mousePointInWorld;
                    ObjectRig.AddForce(mousePointInWorld);
                }
            }
        }
    }