unity如何用代码创建自已的logo

时间:2024-03-28 09:56:36

首先创建一个场景用于进入游戏的logo。如图:

unity如何用代码创建自已的logo

Canvas 画布下有两个ui。image个是黑色的背景。logo 我自已设置的是一个text UI ,这里我先将它的color的透明度调为0现在是看不到文字的。如下图:

unity如何用代码创建自已的logo

然后创建一个c#的脚本。命名为Logo。挂在logo Ui上。

接着就是写代码了,附上代码图:

unity如何用代码创建自已的logo

using UnityEngine;
using UnityEngine.UI;//引用UI
using UnityEngine.SceneManagement;//场景的切换


public class Logo : MonoBehaviour {
    private Text GetText;//声明一个存放Text的对象
    bool startlogo = true;//透明度的开始增加
    Color GetColor;//保存GetText的color
// Use this for initialization
void Start () {
        GetText = GameObject.Find("logo").GetComponent<Text>();//查找logo的对象获得Text组件给GetText。
        //if (GetText != null)
        //    print(GetText.name);//测试代码
        GetColor = GetText.color;//获取GetText开始的color
}

// Update is called once per frame
void Update () {
        Logoa();//定义一个方法
}
    void Logoa() {
        if (startlogo)//判断是否真和假

        {

                //如果是真就执行以下代码

            GetText.color = Color.Lerp(GetText.color, Color.white, Mathf.Lerp(0, 1, 0.05f));

//将logo Text UI 的color进行插值,Color。Lerp()中有三个参数,第一个是开始的颜色,第二个参数是从一个颜色变到Color.white(白色),第三个参数。官方是这样解析的:如果是0就是第一个参数的颜色,如果是1就是第二个参数颜色,所以,我用到Mathf里面的Lerp插值,从0慢慢加到1。

            if (GetText.color == Color.white)//判断logo 的color是否等于Color.white

            {
                startlogo = false;//执行startlogo为假的语句
            }
        }
        else {
            GetText.color = Color.Lerp(GetText.color,GetColor, Mathf.Lerp(0, 1, 0.05f));//这句解析上面够详细,由白色慢慢变为透明。
            if (GetText.color == GetColor)//如果相等于就执行加载场景,所以要两个场景
            {
                SceneManager.LoadScene("001");
                //print("start");//测试代码

            }

最后附上运行图:

unity如何用代码创建自已的logo

logo从透明到白色,然后从白色到透明的过程应该3秒内如果你嫌时间长可以改Mathf.Lerp(0, 1, 0.05f)将红色的第三个参数加大,反之。

这个代码很简单最好自已理解了,发布的时候记得将unity的logo去掉,我记得unity发布设置那里可以自定义logo,我没用过,感觉原理一样的。

最后后后闪人。