Assignment for RMIT Mixed Reality in 2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

100 lines
3.6 KiB

namespace VRTK.Examples
{
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using System.Collections;
public class UI_Interactions : MonoBehaviour
{
private const int EXISTING_CANVAS_COUNT = 4;
public void Button_Red()
{
VRTK_Logger.Info("Red Button Clicked");
}
public void Button_Pink()
{
VRTK_Logger.Info("Pink Button Clicked");
}
public void Toggle(bool state)
{
VRTK_Logger.Info("The toggle state is " + (state ? "on" : "off"));
}
public void Dropdown(int value)
{
VRTK_Logger.Info("Dropdown option selected was ID " + value);
}
public void SetDropText(BaseEventData data)
{
var pointerData = data as PointerEventData;
var textObject = GameObject.Find("ActionText");
if (textObject)
{
var text = textObject.GetComponent<Text>();
text.text = pointerData.pointerDrag.name + " Dropped On " + pointerData.pointerEnter.name;
}
}
public void CreateCanvas()
{
StartCoroutine(CreateCanvasOnNextFrame());
}
private IEnumerator CreateCanvasOnNextFrame()
{
yield return null;
var canvasCount = FindObjectsOfType<Canvas>().Length - EXISTING_CANVAS_COUNT;
var newCanvasGO = new GameObject("TempCanvas");
newCanvasGO.layer = 5;
var canvas = newCanvasGO.AddComponent<Canvas>();
var canvasRT = canvas.GetComponent<RectTransform>();
canvasRT.position = new Vector3(-4f, 2f, 3f + canvasCount);
canvasRT.sizeDelta = new Vector2(300f, 400f);
canvasRT.localScale = new Vector3(0.005f, 0.005f, 0.005f);
canvasRT.eulerAngles = new Vector3(0f, 270f, 0f);
var newButtonGO = new GameObject("TempButton", typeof(RectTransform));
newButtonGO.transform.SetParent(newCanvasGO.transform);
newButtonGO.layer = 5;
var buttonRT = newButtonGO.GetComponent<RectTransform>();
buttonRT.position = new Vector3(0f, 0f, 0f);
buttonRT.anchoredPosition = new Vector3(0f, 0f, 0f);
buttonRT.localPosition = new Vector3(0f, 0f, 0f);
buttonRT.sizeDelta = new Vector2(180f, 60f);
buttonRT.localScale = new Vector3(1f, 1f, 1f);
buttonRT.localEulerAngles = new Vector3(0f, 0f, 0f);
newButtonGO.AddComponent<Image>();
var canvasButton = newButtonGO.AddComponent<Button>();
var buttonColourBlock = canvasButton.colors;
buttonColourBlock.highlightedColor = Color.red;
canvasButton.colors = buttonColourBlock;
var newTextGO = new GameObject("BtnText", typeof(RectTransform));
newTextGO.transform.SetParent(newButtonGO.transform);
newTextGO.layer = 5;
var textRT = newTextGO.GetComponent<RectTransform>();
textRT.position = new Vector3(0f, 0f, 0f);
textRT.anchoredPosition = new Vector3(0f, 0f, 0f);
textRT.localPosition = new Vector3(0f, 0f, 0f);
textRT.sizeDelta = new Vector2(180f, 60f);
textRT.localScale = new Vector3(1f, 1f, 1f);
textRT.localEulerAngles = new Vector3(0f, 0f, 0f);
var txt = newTextGO.AddComponent<Text>();
txt.text = "New Button";
txt.color = Color.black;
txt.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font;
newCanvasGO.AddComponent<VRTK_UICanvas>();
}
}
}