Ziel: Wechseln von einer Szene zur anderen mit Hilfe von Audio-Steuerelementen.SendMessage startet keine Funktion (HoloLens/Unity/C#)
Problem: Beim Start der Anwendung im HoloLens Emulator öffnet sich die erste Szene. Wenn "Next Step" gesagt wird, erkennt der HoloLens den Satz, aber die sendMessage öffnet die OnNextStep()
Funktion nicht.
Vielen Dank für versuchen zu helfen! :)
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Windows.Speech;
using System.Diagnostics;
using UnityEngine.SceneManagement;
public class KeywordManager : MonoBehaviour {
KeywordRecognizer keywordRecognizer = null;
Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();
// Use this for initialization
void Start() {
keywords.Add("Next Step",() =>
{
SendMessage("OnNextStep", SendMessageOptions.DontRequireReceiver);
});
// Tell the KeywordRecognizer about our keywords.
keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
// Register a callback for the KeywordRecognizer and start recognizing!
keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
keywordRecognizer.Start();
}
private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
System.Action keywordAction;
if(keywords.TryGetValue(args.text, out keywordAction))
{
keywordAction.Invoke();
}
}
void OnNextstep()
{
UnityEngine.Debug.Log(this);
SceneManager.LoadScene("FirstStepScene");
}
// Update is called once per frame
void Update() {
}
}
1.Post Ihren Code nicht Screenshot. 2.Verwenden Sie 'UnityEngine.Debug.Log' nicht' System.Diagnostics.Debug.WriteLine'. Mit Debug.Log können Sie uns jetzt sagen, welche Funktion nicht richtig funktioniert. sagen Sie uns, ob 'OnNextstep' an allen angerufen wird. – Programmer
Code wurde hinzugefügt. OnNextStep wird NICHT aufgerufen. –
Sie brauchen auch nicht 'SendMessage' hier. Sie können die Methode einfach direkt aufrufen: 'keywords.Add (" Nächster Schritt ",() => { OnNextStep(); });' Das hätte den Nebeneffekt, dass der Methodenname nicht angezeigt wird genau übereinstimmen. ;) – Draco18s