我试图通过添加两个球以不同的方式完成滚球教程(https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial)。 所以两个玩家可以玩游戏。 但我面临的问题是,我想配置第二个玩家的首选键,如第一个玩家使用传统的箭头键,第二个玩家使用w,a,s,d向左上移动向右...我的第一个玩家的急剧代码是......
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody> ();
}
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); //Values for movement vector 3 takes three arguments like x y z for positions.
rb.AddForce (movement * speed);
}
}
如果有人有解决方案,请告诉我
答案 0 :(得分:3)
回答类似问题here。
要求您不要修改密钥控件的最简单的解决方案是不使用public class TestClassA{
@Rule
public MockitoRule rule = MockitoJUnit.rule();
@Spy
ClassA instanceA;
public String testTheMethodToBeTested{
doNothing().when(instanceA).methodB();
String result = instanceA.methodToBeTested();
String expected = "foo"
assertTrue(result.equals(expected));
}
...
}
。使用ClassB
及其Mockito
枚举检测每次按键。问题解决了!现在从编辑器中分配两个球。如果你想要的话,你可以很容易地修改它以使用一个球。
Input.GetAxis
答案 1 :(得分:1)
您可以在edit -> project settings -> Input
中定义更多输入。要添加更多输入,只需增加大小值并配置新值。至少输入新输入的名称和键。最后,在您的代码中,使用您在项目设置中指定的名称调用播放器2的新输入。
void FixedUpdate()
{
//float moveHorizontal = Input.GetAxis("Horizontal");
//float moveVertical = Input.GetAxis("Vertical");
// example for player 2
float moveHorizontalPlayer2 = Input.GetAxis("HorizontalPlayer2");
float moveVerticalPlayer2 = Input.GetAxis("VerticalPlayer2");
Vector3 movement = new Vector3 (moveHorizontalPlayer2 , 0.0f, moveVerticalPlayer2 );
rb.AddForce (movement * speed);
}