当前位置:网站首页>Unity 引导系统.点击目标物体后提示文字变色进入下一步
Unity 引导系统.点击目标物体后提示文字变色进入下一步
2022-08-06 06:12:00 【饿掉鱼】
using HighlightingSystem;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/*
* 脚本使用文字颜色来判断目标是否达成
* 格式固定两行
*
*/
public class Test : MonoBehaviour
{
[Tooltip("录音")]
public Button RecodePen;
//切换开关的旋转状态
public int _SwitchChangerStep;
[Header("这里是需要变色的文字")]
public Text text1, text2;
#region 提示栏文字列表
static string[] t1 = new string[] {
"点击录音按钮",
"点击录音按钮",
"点击录音按钮"
};
static string[] t2 = new string[]
{
"点击A",
"点击B",
"点击C"
};
[Header("需要点击的目标物体")]
public GameObject[] TargetGameobject = new GameObject[t1.Length];
#endregion
public int step;
[Header("录音按钮")]
public Button RecodeSubmit;//这个当时做项目要每个环节都有个录音.做其他需求时可以去掉这个
private void OnEnable()
{
TargetGameobject[step].SetActive(true);
Debug.Log(string.Format("<color=yellow>{0}</color>", $"{System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName}脚本启动") + "\n此脚本检测目标");
RecodeSubmit.onClick.AddListener(() => {
RecodePen.interactable = false;
text1.color = Color.green;
});
}
private void Awake()
{
if (t1.Length != t2.Length) Debug.LogError("文字未能一一对应!"); //初始化
text1.color = Color.white;
text2.color = Color.white;
}
void Update()
{
if (step < t1.Length)
{
text1.text = t1[step];
text2.text = t2[step];
}
else
{
text1.text = null; text2.text = null;
enabled = false;//此脚本的工作结束了,初始化
}
if (text1.color == Color.green && text2.color == Color.green)
{
text1.color = Color.white; text2.color = Color.white; RecodePen.interactable = true;
step++;
TargetGameobject[step].SetActive(true);
RecodeSubmit.onClick.AddListener(() => {
text1.color = Color.green;
});
}
//目标体检测,文字变色
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit raycastHit;
Physics.Raycast(ray, out raycastHit, 2000);
Debug.Log(raycastHit.transform.name);
//当时是用高亮来确认目标物体的
//如果不加高亮,就对应Targetgameobject[]去
if (raycastHit.transform.gameObject.activeInHierarchy && raycastHit.transform.gameObject.GetComponent<Highlighter>().enabled)
{
raycastHit.transform.gameObject.SetActive(false);
text2.color = Color.green;
}
}
}
}
实现效果:

边栏推荐
猜你喜欢
随机推荐
五面腾讯技术专家岗,已拿offer,这些面试题你能答出多少? 还不来学习啊!
SRS4.0 RTC module adds Gop cache
跳表的实现
Map的遍历方法
B1. Palindrome Game (easy version) 博弈论
【zed相机的简单使用】(2)
[Multi-sensor fusion] Kalman filter
推荐系统-排序层-2020:PLE【多任务学习模型】【腾讯】
【Harmony OS】【ARK UI】组件内转场api 基本使用
Corner extraction comparison
【Using the Basic Container】
【 】 calculating trajectory error
角点提取比较
推荐系统-排序层-2010:因子分解机(FM)【LR(逻辑回归)模型的改进版】【解决在稀疏数据的场景下模型参数难以训练的问题。考虑了特征的二阶交叉,弥补了LR表达能力差的缺陷】
中英文互译在线翻译
推荐系统-排序层-2017:DCN(Deep&Cross)【对Wide&Deep模型的改进】【Wide部分需人工特征工程;而Cross部分可以进行特征的自动交叉, 避免了基于业务理解的人工特征组合】
高并发、多线程、分布式都不懂,你拿什么跳槽阿里、腾讯、京东?还不好好学习啊
SAP ABAP 通过BAPI 创建生产订单/删除生产订单组件/添加生产订单组件/释放生产订单
【Multi-sensor fusion】Lidar and camera front fusion
Excel导入异常Cannot get a STRING value from a NUMERIC cell解决









