1.在scripts文件夹下创建一个脚本CreatePlayerPanel.cs,脚本挂到panel上!给panel加个tag,叫createPanel,脚本内容如下:
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class CreatePlayerPanel : MonoBehaviour
{
//TMP_Text a = GameObject.FindWithTag("username").GetComponent<TMP_Text>();--不能写这里
public GameObject panel;
// Start is called before the first frame update
void Start()
{
Debug.Log("CreatePlayerPanel获取object测试");
this.panel = GameObject.FindWithTag("createPanel");//同一命名空间即可,canvas在最外边是有道理的
this.panel.SetActive(false);
}
// Update is called once per frame
void Update()
{
}
}
成功运行效果如下:
2.紧接着做一下,点击“创建角色”按钮,弹出panel。
脚本代码如下:(这个后期大概率还要改)(在下一章中改成静态类static实现了)
public void GoToCreate()//unity那边想要加载必须public
{
Debug.Log("我确实进入onclick函数了");
GameObject panel = GameObject.FindWithTag("createPanel");//同一命名空间即可,canvas在最外边是有道理的
panel.SetActive(true);
}
挂载如下(右边):
3.问题!切换场景后,所有的button和inputfiled都失灵了,在做美工的时候我就发现这个问题了。我试了一下,如果开始不隐藏select角色的场景,该场景中的功能都是正常的。的确是个棘手的问题。
Unity的按钮不响应点击_unity按钮点击没反应-CSDN博客
你把Button从一个场景复制到另一个场景。而另一场景里没有EventSystem,所以无法处理点击事件。
直接把log场景中的粘过去就可以了,然后就一切正常了!