public override void OnActionReceived(float[] vectorAction) { // jump if (Mathf.FloorToInt(vectorAction[2]) > 1) { actor.AddForce(new Vector3(0, -1, 0) * jumpForce, ForceMode.VelocityChange); } // movement actor.AddForce(Vector3.Normalize(new Vector3(vectorAction[0], 0, vectorAction[1])) * speed, ForceMode.Force); }
/// <summary> /// 这个移动不会改变y坐标,始终在地面上移动 /// </summary> /// <param name="movement"></param> public void GroundMove(Vector3 movement) { actor.AddForce(movement, ForceMode.Acceleration); }