UnityAPI——切换场景时,获取激活场景的名字SceneManager.GetActiveScene().name;

引导:

总目录中,有5个分目录,分别指向5个场景,该目录Canvas模块写成Don’tDestroyOnLoad——切换场景时,代表当前场景的目录变为红色,例如切换到第5个场景时,目录“第四题”设为红色。
在这里插入图片描述

核心:

如果“激活”场景.名字=本场景的名字,那么代表当前场景的目录改为红色(所有目录先都恢复正常颜色)

   if(SceneManager.GetActiveScene().name == "Ques1Scn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image1.color = Color.red;
        }

源码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;


public class ControllTitle : MonoBehaviour
{
    public Image image0, image1, image2, image3, image4;//目录图片,把它们放到集合或数组里,便于统一操作
    public List<Image> imageList = new List<Image>();
    void Start()
    {
        imageList.Add(image0);
        imageList.Add(image1);
        imageList.Add(image2);
        imageList.Add(image3);
        imageList.Add(image4);
    }
    void Update()
    {
        //Debug.Log(SceneManager.GetActiveScene().name+"当前场景的名字");
        if(SceneManager.GetActiveScene().name == "Ques1Scn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image1.color = Color.red;
        }
        if (SceneManager.GetActiveScene().name == "Ques2Scn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image2.color = Color.red;
        }
        if (SceneManager.GetActiveScene().name == "Ques3Scn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image3.color = Color.red;
        }
        if (SceneManager.GetActiveScene().name == "Ques4Scn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image4.color = Color.red;
        }
        if (SceneManager.GetActiveScene().name == "PowerScn")
        {
            for (int i = 0; i < 5; i++)
            {
                imageList[i].color = new Vector4(1, 1, 1, 1);
            }
            image0.color = Color.red;
        }
    }

版权声明:本文为weixin_42935398原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。