0
我在創建一個腳本時遇到了一些問題,一旦玩家點擊一個gameObject,該對象將會跟隨鼠標。一旦鼠標再次被點擊,該對象將被丟棄。用鼠標拖動遊戲對象
下面是腳本:
public float distance = 10;
public void OnMouseDrag()
{
Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance);
Vector3 objPosition = Camera.main.ScreenToWorldPoint(mousePosition);
transform.position = objPosition;
}
這工作得很好,但問題是,如果玩家(主凸輪)有任何形式的在其運動的腳本,如它還是這個角色管理腳本其父母,那麼拾取的gameObject就會移動,就好像它試圖擺脫鼠標一樣。
public float speed = 6.0f;
public float jumpSpeed = 8.0f;
public float gravity = 20.0f;
private Vector3 moveDirection = Vector3.zero;
void Update()
{
CharacterController controller = GetComponent<CharacterController>();
if(Input.GetKey(KeyCode.LeftShift))
{
speed = 15.0f;
}else
{
speed = 6.0f;
}
if(controller.isGrounded)
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
}
if(Input.GetButton("Jump"))
{
moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
float rotateRight = Input.GetAxis("Mouse X");
transform.Rotate(0, rotateRight, 0);
}
如果上面的腳本被禁用,那麼GameObject不會嚇壞了,它可以正常工作。
我知道在字符控制器中進行的輸入是以某種方式影響頂部腳本,鼠標移動使得gameObject在該方向上轉換,同時試圖保持鼠標上的某個點。
但是我怎麼做,所以它不會影響它。
試着將你的更新一個布爾值,獲取切換上拖動'如果(isBeingDragged)回報;'。無論何時都有效地禁用腳本。 –