Я создаю игру с голосовым управлением. Одна игра, которую я создаю, - это игра с пушками «стреляй по мишеням», которая будет стрелять из пушечного ядра, когда произнесено слово «стрелять».
Я пытаюсь использовать распознаватель речи Unity в сочетании с оператором if, чтобы переместить область заполнения пользовательского интерфейса слайдера моим голосом.
Однако мой первоначальный метод рисует несколько ошибок, таких как «Невозможно преобразовать группу методов« Вверх »в тип без делегата bool
. Вы намеревались вызвать метод?»
PS Я впервые использую StackOverflow, будьте добры.
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Windows.Speech;
using UnityEngine;
using UnityEngine.UI;
public class SliderControls : MonoBehaviour
{
//Voice Controls Setup
private KeywordRecognizer keywordRecognizer;
private Dictionary<string, Action> actions = new Dictionary<string, Action>();
float sliderValue;
// Start is called before the first frame update
void Start()
{
actions.Add("Up", Up);
actions.Add("Down", Down);
keywordRecognizer = new KeywordRecognizer(actions.Keys.ToArray());
keywordRecognizer.OnPhraseRecognized += Recognization;
keywordRecognizer.Start();
}
private void Recognization(PhraseRecognizedEventArgs speech)
{
Debug.Log(speech.text);
actions[speech.text].Invoke();
}
private void Up()
{
ControlGUI();
}
private void Down()
{
ControlGUI();
}
public void ControlGUI ()
{
if (Up)
{
sliderValue = sliderValue + 0.1F;
}
else if(Down)
{
sliderValue = sliderValue - 0.1F;
}
sliderValue = GUI.HorizontalSlider(new Rect(25F, 25F, 600F, 30F), sliderValue, 0.0F, 10.0F);
return;
}
}