如何移動Unity中的物理Sprite?我是否像在farseers物理中一樣對身體施加力量,還是移動角色精靈?這是我目前如何嘗試移動它,並即時得到:在Unity中移動物理Sprite
的NullReferenceException:UnityEngine.Rigidbody2D.get_velocity()
_position.x = Input.GetAxis ("Horizontal");
_position.y = Input.GetAxis ("Vertical");
if (Input.GetKeyDown(KeyCode.Space))
{
_rig.AddForce(new Vector2(_rig.velocity.x, _jumpHeight));
_rig.velocity = new Vector2(Mathf.Clamp(_rig.velocity.x, -_clampValue.x, _clampValue.x), Mathf.Clamp(_rig.velocity.y, -_clampValue.y, _clampValue.y));
}
if (Input.GetKey(KeyCode.D))
{
//_rig.AddForce(new Vector2(_moveSpeed, _rig.velocity.x));
//_rig.velocity = new Vector2(Mathf.Clamp(_rig.velocity.x, -_clampValue.x, _clampValue.x), Mathf.Clamp(_rig.velocity.y, -_clampValue.y, _clampValue.y));
_rig.velocity = new Vector2(_position.x * _moveSpeed, _rig.velocity.y);
}
if (Input.GetKey(KeyCode.A))
{
_rig.AddForce(new Vector2(-_moveSpeed, _rig.velocity.y));
_rig.velocity = new Vector2(Mathf.Clamp(_rig.velocity.x, -_clampValue.x, _clampValue.x), Mathf.Clamp(_rig.velocity.y, -_clampValue.y, _clampValue.y));
}
從[Rigidbody2D.velocity](http://docs.unity3d.com/ScriptReference/Rigidbody2D-velocity.html ):「價值通常不是直接設定,而是通過使用力量來設定」。 – dbc
這就是我最初的做法,但是使用KeyCode.D語句只是因爲原始方法不起作用。 「_rig.velocity = new Vector2(Mathf.Clamp(_rig.velocity.x,-_clampValue.x,_clampValue.x),Mathf.Clamp(_rig.velocity.y,-_clampValue.y,_clampValue.y));」用於設置速度的最小值和最大值。這就是物理原理的東西,但我會試着去看看它是如何工作的。 – KGSB
拿出所有的鉗線,它並沒有幫助 – KGSB