一、UI的渲染模式:
1、Screen Space-Overlay直接在原先的三维场景中叠加一个2D场景
2、Screen Space-Camera(要指定一个摄像机)在UI上面显示3D模型
3、World Space(要指定一个摄像机)UI就是游戏场景中的一个部分,VR中常用的方式
二、弹出框
1、创建一个Image,改名为Windows,把开始的图片托上去
2、会发现图标锯齿感很强,所以用Sprite进行修改。首先在新的版本要在Package Manager里面下载
然后在图片的检视面板点击Sprite Editor
将Border改为12
这样图片显示就比没有锯齿感了
新建一个脚本(SettingPop),脚本里面写两个方法,一个是Open(),一个是Close(),分别代表弹出框的弹出与不弹出状态。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SettingPopup : MonoBehaviour
{
public void Open()
{
gameObject.SetActive(true);
}
public void Close()
{
gameObject.SetActive(false);
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
修改UIController这个脚本,实现点击按钮后弹出弹出框。首先要定义[SerializeField] private SettingPopup settingPop;然后再Start方法中调用SettingPopup的Close(),使得在开始的时候不弹出弹出框。然后在OnOpenSetting()方法中调用settingPop.Open();
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIController : MonoBehaviour
{
[SerializeField] private Text scoreLabel;
[SerializeField] private SettingPopup settingPop;
// Start is called before the first frame update
void Start()
{
settingPop.Close();
}
// Update is called once per frame
void Update()
{
scoreLabel.text = Time.realtimeSinceStartup.ToString();
}
public void OnOpenSetting()
{
settingPop.Open();
}
public void OnPointerDown()
{
Debug.Log("pointer Down");
}
}
在Windows下面新建一个Button,放在合适的位置
然后来进行关联
UIController的UI Controller脚本中的Setting Pop把Windows拖进去形成关联
在希望点击出现弹出框的按钮上面的On Click()事件中加入OnOpenSetting()这个方法
然后在那个红叉叉按钮那里加入Close()方法
按钮在选择方法的时候有静态参数和动态字符串两种。如果是动态字符串输入的任何内容都会提交;静态参数提前要在代码中声明string,只能发送提前定义好了的单个字符串。一般使用动态字符串,会比较灵活