unity3d中如何判断角色状态
我在脚本中写下了wasd控制人物移动的命令,又加入了一个检测e键使人物坐下的命令,但人物坐下后还会因wasd移动,请问怎么判断当前人物是否为sit状态,使wasd不控制人...
我在脚本中写下了wasd控制人物移动的命令,又加入了一个检测e键使人物坐下的命令,但人物坐下后还会因wasd移动,请问怎么判断当前人物是否为sit状态,使wasd不控制人物。
展开
1个回答
展开全部
bool sit = false;
void Update () {
if (Input.GetKeyDown(KeyCode.E)) {
//你自己的人物蹲下的动作
if (!sit)
{
sit = true;
Debug.Log("现在坐下了");
}
else {
sit = false;
Debug.Log("现在站起来了");
}
}
if (!sit) {
if (Input.GetKey(KeyCode.W)) {
transform.Translate(0,0,Time.deltaTime*2.5f);
}
//这里只有向前的,其他的可以自己写
}
}
我也是萌新,目前解决这个问题我的想法是给他加一个布尔值,再通过if语句判断布尔来决定是否执行.
这是我目前想到的一个方法,还有一个想法就是把wasd移动和蹲下分开脚本写,然后蹲下时把wasd脚本的enable=false; 。
void Update () {
if (Input.GetKeyDown(KeyCode.E)) {
//你自己的人物蹲下的动作
if (!sit)
{
sit = true;
Debug.Log("现在坐下了");
}
else {
sit = false;
Debug.Log("现在站起来了");
}
}
if (!sit) {
if (Input.GetKey(KeyCode.W)) {
transform.Translate(0,0,Time.deltaTime*2.5f);
}
//这里只有向前的,其他的可以自己写
}
}
我也是萌新,目前解决这个问题我的想法是给他加一个布尔值,再通过if语句判断布尔来决定是否执行.
这是我目前想到的一个方法,还有一个想法就是把wasd移动和蹲下分开脚本写,然后蹲下时把wasd脚本的enable=false; 。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询