unityzgy/Assets/ThirdPackages/VRPackage/VRTK/Examples/ExampleResources/Scripts/UI_Interactions.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

100 lines
3.6 KiB
C#

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>();
}
}
}