我想知道的是如何做这件事。例如,角色自动向右移动,然后当它点击时,它已经移动到顶部栏并仍然向右移动,并且当它点击它时它已经返回到向下的栏。
public float speed;
public GameObject[] buttons;
private void Start()
{
foreach (GameObject button in buttons)
button.GetOrAddComponent<MouseEventSystem>().MouseEvent += ChangeBoyPosition;
}
private void ChangeBoyPosition(GameObject target, MouseEventType type)
{
if (type == MouseEventType.CLICK)
{
int buttonIndex = System.Array.IndexOf(buttons, target);
if (buttonIndex == 0)
{
//do down position
}
else
{
//do up position
}
}
}
void Update()
{
//used for automatic movement
//set a speed that responds to the speed of the boy
//automatically move it to the right, then we will change the direction when it reaches the X axis limit
transform.Translate(Vector3.right * speed * Time.deltaTime);
}
基本上我有两个按钮,向上和向下,我操纵角色。如果有人知道如何让这个物理变得更简单?谢谢!!!
答案 0 :(得分:1)
您可以尝试使用map
修改y值。
Physics2D.gravity
你可能会把它放在更新功能中,因为它需要检查输入,因此我建议创建两个向量Physics2D.gravity = new Vector2(0, -1); // To go down
Physics2D.gravity = new Vector2(0, 1); // To go up
和gravityUp
并将gravityDown
设置为等于一个或另一个,取决于你想去的方向。
像这样:
Physics.gravity
同样适用于3D,但您必须使用Vector2 gravityUp = Vector2.up;
Vector2 gravityDown = Vector2.down;
和Vector3
。
您的代码可能如下所示:
Physics.gravity