我正在使用 Unity3D 创建一个基于购物的游戏。在我的游戏中,我让我的物品沿着传送带移动,然后他们必须用鼠标将其拾起并扔进购物车。到目前为止,我可以让鼠标拾取物品,但我将如何让它们将其扔向特定的方向。我还需要做到这一点,以使鼠标无法将对象拖动到游戏所在房间的边界之外。
我到目前为止的代码是:
#pragma strict
var screenPoint:Vector3;
var offset:Vector3;
private var oldMouse:Vector3;
private var mouseSpeed:Vector3;
function Start(){
oldMouse = Vector3.zero;
}
function Update(){
mouseSpeed = oldMouse - Input.mousePosition;
oldMouse = Input.mousePosition;
}
function OnMouseDown()
{
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
function OnMouseDrag()
{
var curScreenPoint:Vector3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
var curPosition:Vector3 = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
transform.position = curPosition;
}
function OnMouseUp(){
rigidbody.AddForce(mouseSpeed*Time.deltaTime, ForceMode.Force);
}
詹姆士