我必须在Unity中创建动画。动画与Mummy Maze(https://www.youtube.com/watch?v=GR3LlbRKf5w)中的角色相同。
我希望动画会像木乃伊迷宫游戏一样一步一步地移动。
现在,我使用功能
/*targetPosition: position which character will be moved to*/
void Move(Vector3 targetPosition){
this.transform.position = targetPosition;
}
但它看起来像是传送。它不会自然地移动。
如何帮助我让我的角色自然地一步一步地移动到目标位置,而不是像传送一样。谢谢
答案 0 :(得分:0)
您需要使用Update模式移动每帧的木乃伊。
public float MoveSpeed = 1; //在检查器中更改此项以更改木乃伊移动的速度
Vector3 targetPosition;
void Move(Vector3 targetPosition)
{
this.targetPosition = targetPosition;
}
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, targetPosition, MoveSpeed * Time.deltaTime);
}
答案 1 :(得分:0)
感谢Formic,我必须尝试你的建议。现在,我知道你的想法。我是Unity的新手,所以我想问你另一个问题:
单击鼠标或按下按钮时如何调用多帧?
现在,我在Update()函数上捕获事件鼠标或按钮。所以当我按一次按钮时,我的角色只移动一小段距离。我需要按一下按钮才能让我的角色移动到我想要的位置。
如何通过一个按键将角色移动到目标位置?非常感谢你(请查看我的代码)
public float MoveSpeed = 5.0f;
public float Step = 1.0f; //character move one cell one times - distance cells is 1.0f
void Update()
{
if (Input.GetKeyUp ("d")) {
float targetPos = this.transform.position.x + Step; //currentX + Step
Vector3 targetPosition = new Vector3(targetPos, this.transform.position.y, this.transform.position.z);
Move(targetPosition); //call to move
}
}
void Move(Vector3 targetPosition)
{
transform.position = Vector3.MoveTowards(transform.position, targetPosition, MoveSpeed * Time.deltaTime);
}