如果我现在使用像GetKeyDown而不是KeyDown按下键“o”什么都不做。 但是如果我正在使用GetKey然后KeyCode.O当我按下O键时,角色会停止行走但我需要一直按下O键,如果我释放按键,角色将继续行走。
我想要做的就是当我点击一次按键O时,即使释放按键,角色也会停止行走,然后如果我点击“p”键,它将恢复行走。
我使用speed属性暂停/继续行走的原因是,如果我将:
gameObject.GetComponent<Animator> ().Stop();
角色停止行走,然后场景/世界的其余部分移动到角色。当我试图使用时:
gameObject.GetComponent<Animator> ().Play();
然后我需要在Play中播放一些参数(“Walk”),但它不起作用。
这就是为什么我决定使用speed属性进行暂停/继续。
using UnityEngine;
using System.Collections;
public class Ai : MonoBehaviour {
Animator _anim;
// Use this for initialization
void Start () {
_anim = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.Z)) {
_anim.speed = 20.0f;
}
if (Input.GetKeyDown ("o"))
gameObject.GetComponent<Animator> ().speed = 0;
if(Input.GetKeyDown("p"))
gameObject.GetComponent<Animator>().speed = 2;
}
}
答案 0 :(得分:1)
Input.GetKeyX
只能获取Edit > Project Settings > Input
下指定的密钥。
如果它与现有密钥不匹配,则需要在那里指定密钥。
如果您不需要,可以更改现有的一个或更改size
以创建额外的。轴的名称是您放入Input.GetKeyX
的内容,例如Input.GetKeyDown("Fire1")
。
编辑:
文档中的一些更深入的信息:https://docs.unity3d.com/Manual/ConventionalGameInput.html