当使用过渡使士兵瞄准枪时如何使其保持瞄准?

时间:2017-09-03 04:27:56

标签: c# unity3d unity5

在Animator中,我有一个Aiming状态,转换到Movement状态,从Movement返回到Aiming。并且Aiming参数类型为bool。

当我单击鼠标右键时,它会瞄准,但然后立即切换回运动而不进行瞄准。

在从运动过渡到瞄准瞄准设定为假,从瞄准到运动瞄准设定为真。

Aiming

脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Soldier : MonoBehaviour
{
    private Animator anim;

    private void Start()
    {
        anim = GetComponent<Animator>();
    }

    void Update()
    {
        var inputVelx = Input.GetAxis("Horizontal");
        var inputVely = Input.GetAxis("Vertical");

        transform.Rotate(0, inputVelx, 0);

        anim.SetFloat("VelX", inputVelx);
        anim.SetFloat("VelY", inputVely);

        if (Input.GetMouseButton(1))
        {
            anim.SetBool("Aiming", false);
        }
        else
        {
            anim.SetBool("Aiming", true);
        }
    } 
}

我目前正在使用GetMouseButton,只要我按住鼠标右键就可以保持瞄准。

但是我想使用GetMouseButtonDown来实现它,这样只需单击鼠标右键就可以保持瞄准并再次点击将使瞄准失败。

我尝试使用GetMouseButtonDown但是它只是瞄准,然后立即回到假。

1 个答案:

答案 0 :(得分:2)

您可以在更新功能中尝试此代码:

if (Input.GetMouseButtonDown(1))
{
    anim.SetBool("Aiming", !anim.GetBool("Aiming"));
}