2017-02-12 9 views
0

私はGameObjectをクリックしてマウスと同じ速度で移動しようとしています。オブジェクトを動かすことができますが、スクリーンから消えないようにするためには、いくつかの狂った修正を行う必要があります。ゲームオブジェクトをonMouseDragと同じ速度で移動するにはどうすればよいですか?

注:究極の目標はモバイル向けですが、マウスを使い始めることです。私は、オブジェクトが画面の外に浮上しないように、15のz値を追加する必要がどのように

public class ItemController : MonoBehaviour { 

    private Vector3 startPos; 
    private bool ObjectMouseDown = false; 

    void Update() 
    { 
     Debug.Log(Input.mousePosition + new Vector3(0,0,15)); 
    } 

    void OnMouseDown() 
    { 
     startPos = transform.position; 
     ObjectMouseDown = true; 
    } 

    void OnMouseDrag() 
    { 
     if (ObjectMouseDown == true) 
     { 
      transform.position = Vector3.MoveTowards(transform.position, Input.mousePosition + new Vector3(0, 0, 5), Time.deltaTime * 2f); 
      //  transform.position = Vector3.MoveTowards(transform.position, endPosition, speed * Time.deltaTime); 
     } 
    } 

    void OnMouseUp() 
    { 
     ObjectMouseDown = false; 
    } 
} 

注意してください。

ご協力いただければ幸いです。

答えて

1

Input.mousePositionワールド位置ではなく画面上の絶対ピクセル位置を返します。あなたは、あなたがここに完璧に働いhttps://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

+0

おかげで多くを読むことができます。この

Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.position.x, Input.position.y, 15); transform.position = mouseWorldPos; 

ようCamera.ScreenToWorldPointなものを使用する必要があります! –

関連する問題