unity逐渐显示贴图里的字

unity逐渐显示贴图里的字,第1张

要逐渐显示贴图里的字,可以使用Unity中的动画功能和SpriteMask组件

1、在Unity中导入你想要逐渐显示的贴图,可以将每个字或者文字块都作为一个单独的Sprite导入。然后,将这些Sprite组成一个SpriteAtlas,这样可以方便地管理和使用这些Sprite。

2、在场景中创建一个UICanvas,用于显示文字,可以在Canvas中创建一个RawImage,然后将要显示的贴图设置为RawImage的Texture。这样,原始贴图就会被显示在屏幕上。

3、在RawImage上添加一个SpriteMask组件,可以通过设置SpriteMask的AlphaThreshold属性来控制显示的透明度。然后创建一个动画,逐渐将AlphaThreshold的值从0增加到1,这样就可以逐渐显示贴图里的字。

4、在需要逐渐显示贴图的地方播放动画即可。

unity做文字展示板步骤:

1,建立一个背景,随便弄个白色的图片拖到Image里。

2,Image--text,随便写很多的文字,对齐什么的都简单的

3,现在要实现文字能够拖鼠标滚动。在Image里面ADDcomponent添加scrollbar组件,并且你会看到这个组件里面有个content里面是空的,所以把text拖到content里面,就建立了联系。

4,完善,当然文字太多,多出的部分不希望显示,在Image在添加一个组件mask就可以了。

5,实现添加滚动条功能。在canvas--UI---csrollbar,注意位置是是canvas下面。

1层级结构如下

2在Image 上添加 以下组件就可以实现Image 与文字的自动大小匹配了

3 Text 不用修改其他组件

using System.Collections

using System.Collections.Generic

using UnityEngine

using UnityEngine.UI

using DG.Tweening

///

///  提示小窗口

///

public enum ToolTipType

{

error,//错误提示      红

normal,// 正常提示    蓝

none,// 没有          白

}

public class TooTipManager : MonoSingleton{

public GameObject toolTipPrefab

public Text content

public Image bg

public CanvasGroup canvasgRroup

public float alpha

public Vector3 prePos

public bool haveLoad

// Use this for initialization

void Start () {

if (!haveLoad) {

Init ()

}

if (GlobalConfig.currentDecutionModle == TypeOfEnums.DeductionModle.practice)

{

ShowTip ("欢迎来到练习模式", ToolTipType.normal)

}

}

// Update is called once per frame

void Update () {

canvasgRroup.alpha = alpha

}

//初始化

public void Init(){

toolTipPrefab = ResourcesMgr.Instance.Load (ResourcesMgr.ResourceType.UI, "toolTip", true)

toolTipPrefab.transform.SetParent (UI_Faced.Instance.gameObject.transform)

toolTipPrefab.transform.localPosition = new Vector3 (-226f,600,0)

toolTipPrefab.transform.SetAsFirstSibling()

content = toolTipPrefab.transform.GetChild(0).GetComponent ()

canvasgRroup = toolTipPrefab.GetComponent ()

alpha = 1

}

// 保持提示大小------

public void KeepSameScale(){

}

public void ShowTip(string contentString,ToolTipType type,float speed = 2.5f)

{

if (content == null) {

Init ()

haveLoad = true

}

content.text = contentString

canvasgRroup.alpha = 1

switch (type) {

case ToolTipType.error:

bg.color = Color.red

break

case ToolTipType.normal:

bg.color = new Color (14f/255,137f/255,178f/255,255f/255)

break

case ToolTipType.none:

bg.color = Color.yellow

break

default:

break

}

//toolTipPrefab.transform.DOKill (true)

toolTipPrefab.transform.DORestart ()

toolTipPrefab.transform.DOLocalMove (new Vector3 (-226f,400f,0f), speed, false).OnComplete(OnAnimationEnd).SetEase(Ease.Linear).OnStart(statrt)

}

Tweener t

bool isfadeing = false

public void OnAnimationEnd()

{

isfadeing = true

t = DOTween.To (() =>alpha, x =>alpha = x, 0, 1f).OnComplete (

() =>{

toolTipPrefab.transform.localPosition = new Vector3 (-226f,600,0)

alpha = 1

isfadeing = false

}

)

    }

    public void statrt(){

if (isfadeing) {

alpha = 1

isfadeing = false

t.Kill ()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11659481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存