Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nleins/bwm-mrtk-project
  • cundl/bwm-gruppe-3-kathleen-jessika
  • razum/bwm-gruppe-7-ginie-caroline
  • stieler/bwm-gruppe-1
  • le10/bwm-mrtk-project
  • schoeler1/bwm-mrtk-project
  • jonuzi1/bwm-mrtk-project-gruppe-4
7 results
Show changes
Showing
with 669 additions and 41 deletions
using UnityEngine;
using TMPro; // Stelle sicher, dass du die TextMeshPro-Namespace verwendest
public class ClickToShowText : MonoBehaviour
{
public GameObject textObject; // Das Textfeld, das du anzeigen mchtest
void Start()
{
textObject.SetActive(false); // Verstecke das Textfeld beim Start
}
void OnMouseDown() // Diese Methode wird aufgerufen, wenn auf das Objekt geklickt wird
{
textObject.SetActive(true); // Zeige das Textfeld an
}
}
fileFormatVersion: 2
guid: bed3abaf7a12a924fbf2e7dd6b4ae63b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -18,14 +18,10 @@ public class CubeControlExample : MonoBehaviour
}
public void OnOff()
{
this.gameObject.SetActive(!isOn);
isOn = !isOn;
}
public void ChangeColor()
{
this.gameObject.GetComponent<Renderer>().material.color = Random.ColorHSV();
this.gameObject.GetComponent<Renderer>().material.color = Color.red;
}
}
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class EmployeeInteraction : MonoBehaviour
{
public GameObject employeePanel;
public TextMeshProUGUI employeeIDText;
public TextMeshProUGUI questionText;
public Button questionButton;
public Button yesButton;
public Button noButton;
public Color correctAnswerColor = Color.green; // Farbe fr die richtige Antwort
private void Start()
{
employeePanel.SetActive(false); // Verstecke das Panel beim Start
yesButton.gameObject.SetActive(false); // Verstecke JA Button
noButton.gameObject.SetActive(false); // Verstecke NEIN Button
questionText.gameObject.SetActive(false); // Verstecke die Frage
}
private void OnMouseDown()
{
ShowEmployeeID();
}
private void ShowEmployeeID()
{
employeePanel.SetActive(true);
employeeIDText.text = "Mitarbeiter ID: 12345"; // Beispielhafte ID
questionButton.gameObject.SetActive(true);
questionButton.onClick.RemoveAllListeners();
questionButton.onClick.AddListener(() => ShowQuestion());
}
private void ShowQuestion()
{
employeeIDText.text = "Mitarbeiter ID: 12345";
questionText.text = "Jeder Mitarbeiter muss stets zu jeder Arbeitszeit die Mitarbeiter ID tragen";
questionText.gameObject.SetActive(true);
questionButton.gameObject.SetActive(false); // Verstecke den Frage Button
yesButton.gameObject.SetActive(true); // Zeige JA Button
noButton.gameObject.SetActive(true); // Zeige NEIN Button
yesButton.onClick.RemoveAllListeners();
noButton.onClick.RemoveAllListeners();
yesButton.onClick.AddListener(() => OnYesButtonClicked());
noButton.onClick.AddListener(() => OnNoButtonClicked());
}
private void OnYesButtonClicked()
{
Debug.Log("Ja Button geklickt");
yesButton.GetComponent<Image>().color = correctAnswerColor; // Markiere JA Button grn
// Optional: Zeige eine Nachricht an oder fhre eine weitere Aktion aus
}
private void OnNoButtonClicked()
{
Debug.Log("Nein Button geklickt");
employeePanel.SetActive(false); // Verstecke das Panel oder fhre andere Aktionen aus
ResetUI();
}
private void ResetUI()
{
questionButton.gameObject.SetActive(true); // Zeige den Frage Button
questionText.gameObject.SetActive(false); // Verstecke die Frage
yesButton.gameObject.SetActive(false); // Verstecke JA Button
noButton.gameObject.SetActive(false); // Verstecke NEIN Button
yesButton.GetComponent<Image>().color = Color.white; // Setze die Farbe des JA Buttons zurck
}
}
fileFormatVersion: 2
guid: 19bd108902f9c9547bc7e581baf738d2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KeyboardControl : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
//Detect when the down arrow key is pressed down
if (Input.GetKey(KeyCode.RightArrow))
{
this.gameObject.transform.Rotate(0, 0, -.1f, Space.Self);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
this.gameObject.transform.Rotate(0, 0, .1f, Space.Self);
}
if (Input.GetKey(KeyCode.DownArrow))
{
this.gameObject.transform.Rotate(-.1f, 0, 0, Space.Self);
}
if (Input.GetKey(KeyCode.UpArrow))
{
this.gameObject.transform.Rotate(.1f, 0, 0, Space.Self);
}
}
}
// Bibliotheken
using UnityEngine; //f. spielentwicklung und UI Elemente
using UnityEngine.UI;
using TMPro; // TMPro (TextMeshPro): erweiterte Textdarstellung verwendet
using System.Collections.Generic; // Verw. generischer Datenstrukturen wie Listen notwendig
public class QuizManager : MonoBehaviour //QuizManager ist Klasse & erbt von MonoBehaviour
{
public TextMeshProUGUI questionText; // TMPU Variabale dient zur anezige der aktuellen frage
public Button[] answerButtons; //array von "Button" wird f. AW Mgl. verwendet
private List<Question> questions = new List<Question>(); // Liste, speichert Objekte vom Typ "Question"
private Question currentQuestion; // verwalten die aktuell gestellten Frage
private int currentQuestionIndex = 0;
// Farben fr AWs: Farbvariablen, werden zur anzeige von feedback verwendet
public Color correctColor = Color.green;
public Color wrongColor = Color.red;
public Color normalColor = Color.white;
// Methoden
void Start() // beim Starten des Skripts wird die Methode aufgerufen: Fragen laden + erste Frage wird gestellt
{
LoadQuestions();
SetCurrentQuestion();
}
void LoadQuestions()
{ // // Quizfragen werden initialisiert + zur "question" Liste hinzugefgt
questions.Add(new Question("Frage 1: Was ist Phishing?", new string[] { "A) Eine Methode zum Fischen", "B)", "C)" }, 1));
}
// Methode aktualisiert die UI mit der aktuellen Frage + den dazugehrigen AWs
// es werden ebenfalls alte eventlistener von dne buttons entfernt und neue hinzugefgt die "CheckAnswer" aufrufen
void SetCurrentQuestion()
{
currentQuestion = questions[currentQuestionIndex];
questionText.text = currentQuestion.text;
for (int i = 0; i < answerButtons.Length; i++)
{
answerButtons[i].GetComponentInChildren<TextMeshProUGUI>().text = currentQuestion.answers[i];
answerButtons[i].GetComponent<Image>().color = normalColor;
answerButtons[i].onClick.RemoveAllListeners();
int capture = i;
answerButtons[i].onClick.AddListener(() => CheckAnswer(capture));
}
}
// berprft ob die gewhlte AW korrekt ist und ndert die Farbe des buttons entsprechend
public void CheckAnswer(int index)
{
if (index == currentQuestion.correctAnswer)
{
answerButtons[index].GetComponent<Image>().color = correctColor;
}
else
{
answerButtons[index].GetComponent<Image>().color = wrongColor;
answerButtons[currentQuestion.correctAnswer].GetComponent<Image>().color = correctColor; //richtige Antwort zeigen
}
}
// wichtig fr das einrichten der nchsten fragen, aktuell aber leer
void SetNextQuestion() { }
}
// Question Klasse enthlt Frage, Fragetext, AW-Mgl. und den Index der richtigen AW
[System.Serializable]
public class Question
{
public string text;
public string[] answers;
public int correctAnswer;
public Question(string text, string[] answers, int correctAnswer)
{
this.text = text;
this.answers = answers;
this.correctAnswer = correctAnswer;
}
}
fileFormatVersion: 2
guid: f643aae7656bf0b49b8ea8926724c908
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Farbegruen : MonoBehaviour
{
public GameObject theButton;
private ColorBlock theColor;
void Awake()
{
}
public void ButtonTransitionColors()
{
theButton.gameObject.GetComponent<Renderer>().material.color = Color.green;
}
}
fileFormatVersion: 2
guid: 319277afd9816a34d851a0a2541c7732
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Farberot : MonoBehaviour
{
public GameObject theButton;
private ColorBlock theColor;
void Awake()
{
}
public void ButtonTransitionColors()
{
theButton.gameObject.GetComponent<Renderer>().material.color = Color.red;
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 5888358b1597f0c43bdf9dfb5b1cfb68
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using Microsoft.MixedReality.Toolkit.Input;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class Kalender : MonoBehaviour, IMixedRealityTouchHandler
{
public TextMeshPro textMesh;
void Start()
{
SetTextVisibility(false); // Initial unsichtbar
}
public void OnTouchStarted(HandTrackingInputEventData eventData)
{
SetTextVisibility(true); // Sichtbar machen
}
public void OnTouchCompleted(HandTrackingInputEventData eventData)
{
SetTextVisibility(false); // Wieder unsichtbar machen
}
public void OnTouchUpdated(HandTrackingInputEventData eventData) { }
void SetTextVisibility(bool isVisible)
{
if (isVisible)
{
textMesh.color = new Color(textMesh.color.r, textMesh.color.g, textMesh.color.b, 1.0f); // Voll sichtbar
}
else
{
textMesh.color = new Color(textMesh.color.r, textMesh.color.g, textMesh.color.b, 0.0f); // Unsichtbar
}
}
}
fileFormatVersion: 2
guid: b7d85d02459bdc54ab0eceb1e9c66600
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using Microsoft.MixedReality.Toolkit.Input;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class Laptop : MonoBehaviour, IMixedRealityTouchHandler
{
public List<GameObject> uiElements; // Liste fr alle bergeordneten UI-Elemente (TextMeshPro und Buttons)
public GameObject awtrue;
public GameObject awfalse;
public GameObject sperren;
public GameObject sperrbildschirm;
private Coroutine hideCoroutine; // Coroutine-Referenz zum Verwalten des Timers
// Neue Felder fr die E-Mail-Benachrichtigung und das Overlay
public GameObject emailNotification; // Das Benachrichtigungs-Panel
public GameObject emailOverlay; // Das Overlay-Bild
public AudioClip notificationSound; // Der Benachrichtigungston
private AudioSource audioSource;
void Start()
{
SetElementsVisibility(false); // Initial unsichtbar
awtrue.SetActive(false);
awfalse.SetActive(false);
sperrbildschirm.SetActive(false);
sperren.SetActive(false);
// Initialisierung der neuen Felder
emailNotification.SetActive(false);
emailOverlay.SetActive(false);
audioSource = gameObject.AddComponent<AudioSource>();
}
public void OnTouchStarted(HandTrackingInputEventData eventData)
{
// Sichtbar machen
SetElementsVisibility(true);
// Bestehende Coroutine stoppen, falls vorhanden
if (hideCoroutine != null)
{
StopCoroutine(hideCoroutine);
}
// Neue Coroutine starten
hideCoroutine = StartCoroutine(HideElementsAfterDelay(15f)); // 15 Sek Verzgerung
// E-Mail-Benachrichtigung anzeigen
ShowEmailNotification();
}
public void OnTouchCompleted(HandTrackingInputEventData eventData) { }
public void OnTouchUpdated(HandTrackingInputEventData eventData) { }
IEnumerator HideElementsAfterDelay(float delay)
{
yield return new WaitForSeconds(delay);
SetElementsVisibility(false);
}
void SetElementsVisibility(bool isVisible)
{
foreach (var element in uiElements)
{
SetVisibilityRecursive(element, isVisible);
}
}
void SetVisibilityRecursive(GameObject obj, bool isVisible)
{
// TextMeshPro-Komponente
TextMeshPro textMeshPro = obj.GetComponent<TextMeshPro>();
if (textMeshPro != null)
{
textMeshPro.color = new Color(textMeshPro.color.r, textMeshPro.color.g, textMeshPro.color.b, isVisible ? 1.0f : 0.0f);
}
// Renderer-Komponente (fr andere visuelle Elemente)
Renderer renderer = obj.GetComponent<Renderer>();
if (renderer != null)
{
renderer.enabled = isVisible;
}
// Weitere UI-Komponenten
var graphic = obj.GetComponent<UnityEngine.UI.Graphic>();
if (graphic != null)
{
graphic.color = new Color(graphic.color.r, graphic.color.g, graphic.color.b, isVisible ? 1.0f : 0.0f);
}
// Rekursiv fr alle Kinderobjekte
foreach (Transform child in obj.transform)
{
SetVisibilityRecursive(child.gameObject, isVisible);
}
}
// Neue Methoden fr die E-Mail-Benachrichtigung und das Overlay
public void ShowEmailNotification()
{
emailNotification.SetActive(true);
audioSource.PlayOneShot(notificationSound);
}
public void ShowEmailOverlay()
{
emailOverlay.SetActive(true);
emailNotification.SetActive(false);
}
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Hand"))
{
if (emailNotification.activeSelf)
{
ShowEmailOverlay();
}
}
}
}
fileFormatVersion: 2
guid: 55d5b5793b05e4a419c25b6551263aa0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using Microsoft.MixedReality.Toolkit.Input;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class Locker : MonoBehaviour, IMixedRealityTouchHandler
{
public List<GameObject> uiElements; // Liste fr alle bergeordneten UI-Elemente (TextMeshPro und Buttons)
public GameObject labeleins;
public GameObject labelzwei;
public GameObject labeldrei;
public GameObject locker2;
private Coroutine hideCoroutine; // Coroutine-Referenz zum Verwalten des Timers
void Start()
{
SetElementsVisibility(false);
labeleins.active = false;
labelzwei.active = false;
labeldrei.active = false;
locker2.active = false;
}
public void OnTouchStarted(HandTrackingInputEventData eventData)
{
// Sichtbar machen
SetElementsVisibility(true);
// Bestehende Coroutine stoppen, falls vorhanden
if (hideCoroutine != null)
{
StopCoroutine(hideCoroutine);
}
// Neue Coroutine starten
hideCoroutine = StartCoroutine(HideElementsAfterDelay(15f)); // 15 Sek Verzgerung
}
public void OnTouchCompleted(HandTrackingInputEventData eventData)
{
}
public void OnTouchUpdated(HandTrackingInputEventData eventData) { }
IEnumerator HideElementsAfterDelay(float delay)
{
yield return new WaitForSeconds(delay);
SetElementsVisibility(false);
}
void SetElementsVisibility(bool isVisible)
{
foreach (var element in uiElements)
{
SetVisibilityRecursive(element, isVisible);
}
}
void SetVisibilityRecursive(GameObject obj, bool isVisible)
{
// TextMeshPro-Komponente
TextMeshPro textMeshPro = obj.GetComponent<TextMeshPro>();
if (textMeshPro != null)
{
textMeshPro.color = new Color(textMeshPro.color.r, textMeshPro.color.g, textMeshPro.color.b, isVisible ? 1.0f : 0.0f);
}
// Renderer-Komponente (fr andere visuelle Elemente)
Renderer renderer = obj.GetComponent<Renderer>();
if (renderer != null)
{
renderer.enabled = isVisible;
}
// Weitere UI-Komponenten
var graphic = obj.GetComponent<UnityEngine.UI.Graphic>();
if (graphic != null)
{
graphic.color = new Color(graphic.color.r, graphic.color.g, graphic.color.b, isVisible ? 1.0f : 0.0f);
}
// Rekursiv fr alle Kinderobjekte
foreach (Transform child in obj.transform)
{
SetVisibilityRecursive(child.gameObject, isVisible);
}
}
}
fileFormatVersion: 2
guid: 794acf1a09b6e744c8ad1bd08300adaf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using Microsoft.MixedReality.Toolkit.Input;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class MID : MonoBehaviour, IMixedRealityTouchHandler
{
public List<GameObject> uiElements; // Liste fr alle bergeordneten UI-Elemente (TextMeshPro und Buttons)
public GameObject awtrue;
public GameObject awfalse;
private Coroutine hideCoroutine; // Coroutine-Referenz zum Verwalten des Timers
void Start()
{
SetElementsVisibility(false); // Initial unsichtbar
awtrue.active = false;
awfalse.active = false;
}
public void OnTouchStarted(HandTrackingInputEventData eventData)
{
// Sichtbar machen
SetElementsVisibility(true);
// Bestehende Coroutine stoppen, falls vorhanden
if (hideCoroutine != null)
{
StopCoroutine(hideCoroutine);
}
// Neue Coroutine starten
hideCoroutine = StartCoroutine(HideElementsAfterDelay(15f)); // 15 Sek Verzgerung
}
public void OnTouchCompleted(HandTrackingInputEventData eventData)
{
}
public void OnTouchUpdated(HandTrackingInputEventData eventData) { }
IEnumerator HideElementsAfterDelay(float delay)
{
yield return new WaitForSeconds(delay);
SetElementsVisibility(false);
}
void SetElementsVisibility(bool isVisible)
{
foreach (var element in uiElements)
{
SetVisibilityRecursive(element, isVisible);
}
}
void SetVisibilityRecursive(GameObject obj, bool isVisible)
{
// TextMeshPro-Komponente
TextMeshPro textMeshPro = obj.GetComponent<TextMeshPro>();
if (textMeshPro != null)
{
textMeshPro.color = new Color(textMeshPro.color.r, textMeshPro.color.g, textMeshPro.color.b, isVisible ? 1.0f : 0.0f);
}
// Renderer-Komponente (fr andere visuelle Elemente)
Renderer renderer = obj.GetComponent<Renderer>();
if (renderer != null)
{
renderer.enabled = isVisible;
}
// Weitere UI-Komponenten
var graphic = obj.GetComponent<UnityEngine.UI.Graphic>();
if (graphic != null)
{
graphic.color = new Color(graphic.color.r, graphic.color.g, graphic.color.b, isVisible ? 1.0f : 0.0f);
}
// Rekursiv fr alle Kinderobjekte
foreach (Transform child in obj.transform)
{
SetVisibilityRecursive(child.gameObject, isVisible);
}
}
}
fileFormatVersion: 2
guid: 05fb559d8f2f1e8479e471fb429319f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: