首页 > 其他分享 >Unity UGUI的Shadow(阴影)组件的介绍及使用

Unity UGUI的Shadow(阴影)组件的介绍及使用

时间:2023-07-31 19:02:15浏览次数:44  
标签:Text 阴影 Unity text 组件 shadow UGUI Shadow

Unity UGUI的Shadow(阴影)组件的介绍及使用

1. 什么是Shadow(阴影)组件?

Shadow(阴影)组件是Unity UGUI中的一个特效组件,用于在UI元素上添加阴影效果。通过调整阴影的颜色、偏移、模糊等属性,可以使UI元素看起来更加立体和有层次感。

2. Shadow(阴影)组件的工作原理

Shadow(阴影)组件通过在UI元素的下方绘制一个与UI元素形状相同但稍微放大的阴影图像来实现阴影效果。阴影图像的颜色、偏移和模糊程度可以通过属性进行调整。

3. Shadow(阴影)组件的常用属性

  • Effect Color:阴影的颜色。
  • Effect Distance:阴影的偏移距离。
  • Use Graphic Alpha:是否使用UI元素的透明度作为阴影的透明度。
  • Blur:阴影的模糊程度。
  • Blur Distance:阴影的模糊距离。

4. Shadow(阴影)组件的常用函数

  • ModifyMesh:修改UI元素的网格,用于绘制阴影图像。

5. 完整例子代码

例子1:添加阴影效果

using UnityEngine;
using UnityEngine.UI;

public class AddShadowExample : MonoBehaviour
{
    public Text text;
    public Shadow shadow;

    void Start()
    {
        shadow = text.GetComponent<Shadow>();
        shadow.enabled = true;
    }
}

操作步骤

  1. 创建一个Text对象,并将脚本挂载到该对象上。
  2. 将Text对象拖拽到脚本的text变量中。
  3. 在Start函数中,获取Text对象上的Shadow组件,并将其enabled属性设置为true。

注意事项

  • 在使用Shadow组件之前,需要确保UI元素上已经存在一个Graphic组件(如Text、Image等)。

例子2:调整阴影颜色

using UnityEngine;
using UnityEngine.UI;

public class ChangeShadowColorExample : MonoBehaviour
{
    public Text text;
    public Shadow shadow;

    void Start()
    {
        shadow = text.GetComponent<Shadow>();
        shadow.enabled = true;
        shadow.effectColor = Color.red;
    }
}

操作步骤

  1. 创建一个Text对象,并将脚本挂载到该对象上。
  2. 将Text对象拖拽到脚本的text变量中。
  3. 在Start函数中,获取Text对象上的Shadow组件,并将其enabled属性设置为true。
  4. 将Shadow组件的effectColor属性设置为红色。

注意事项

  • effectColor属性接受Color类型的值,可以通过设置不同的RGB值来调整阴影的颜色。

例子3:调整阴影偏移

using UnityEngine;
using UnityEngine.UI;

public class ChangeShadowOffsetExample : MonoBehaviour
{
    public Text text;
    public Shadow shadow;

    void Start()
    {
        shadow = text.GetComponent<Shadow>();
        shadow.enabled = true;
        shadow.effectDistance = new Vector2(5, -5);
    }
}

操作步骤

  1. 创建一个Text对象,并将脚本挂载到该对象上。
  2. 将Text对象拖拽到脚本的text变量中。
  3. 在Start函数中,获取Text对象上的Shadow组件,并将其enabled属性设置为true。
  4. 将Shadow组件的effectDistance属性设置为Vector2(5, -5)。

注意事项

  • effectDistance属性接受Vector2类型的值,可以通过设置不同的x和y值来调整阴影的偏移。

例子4:调整阴影模糊程度

using UnityEngine;
using UnityEngine.UI;

public class ChangeShadowBlurExample : MonoBehaviour
{
    public Text text;
    public Shadow shadow;

    void Start()
    {
        shadow = text.GetComponent<Shadow>();
        shadow.enabled = true;
        shadow.blur = 2;
    }
}

操作步骤

  1. 创建一个Text对象,并将脚本挂载到该对象上。
  2. 将Text对象拖拽到脚本的text变量中。
  3. 在Start函数中,获取Text对象上的Shadow组件,并将其enabled属性设置为true。
  4. 将Shadow组件的blur属性设置为2。

注意事项

  • blur属性接受float类型的值,可以通过设置不同的值来调整阴影的模糊程度。

例子5:使用Graphic Alpha作为阴影透明度

using UnityEngine;
using UnityEngine.UI;

public class UseGraphicAlphaExample : MonoBehaviour
{
    public Text text;
    public Shadow shadow;

    void Start()
    {
        shadow = text.GetComponent<Shadow>();
        shadow.enabled = true;
        shadow.useGraphicAlpha = true;
    }
}

操作步骤

  1. 创建一个Text对象,并将脚本挂载到该对象上。
  2. 将Text对象拖拽到脚本的text变量中。
  3. 在Start函数中,获取Text对象上的Shadow组件,并将其enabled属性设置为true。
  4. 将Shadow组件的useGraphicAlpha属性设置为true。

注意事项

  • useGraphicAlpha属性设置为true时,阴影的透明度将与UI元素的透明度保持一致。

参考资料

标签:Text,阴影,Unity,text,组件,shadow,UGUI,Shadow
From: https://blog.51cto.com/u_7509448/6911658

相关文章

  • Unity的IPostprocessBuild:深入解析与实用案例
    UnityIPostprocessBuild技术文章UnityIPostprocessBuild是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目后自动执行一些操作。这个功能可以帮助开发者提高工作效率,减少手动操作的时间和错误率。在本文中,我们将介绍UnityIPostprocessBuild的使用方法,并提供三个使用......
  • unity制作位图字体
    第一步:ps制作好艺术字体,每个一样宽一样高。第二步:使用 bmfont软件,将前面做好的小图转成fnt和png。(下载地址:https://www.angelcode.com/products/bmfont/)<?xmlversion="1.0"?><font><infoface="Arial"size="32"bold="0"italic="0"......
  • Unity png形式的图集拆除子图并把新的子png转换成sprite
    ///<summary>///图集形式为.png形式并在unity中有很多sprite的子图///</summary>privatevoidAtlasSplit(){stringguidStr=Selection.assetGUIDs[0];stringpath=AssetDatabase.GUIDToAssetPath(guidStr);Object......
  • steamcommunity 302 加速访问github
    steamcommunity302加速访问github官网文档:https://www.dogfight360.com/blog/knowledge-base/steamcommunity_302_manual/Linux/Macos环境下使用steamcommunity302Linux/Macos环境下使用steamcommunity302教程–Dogfight360Releases·caddyserver/caddy(github.co......
  • Unity可确定性定点数(软浮点)物理引擎
    Unity自带的物理引擎,都是用的硬件浮点,硬件浮点有个特点,就是不同CPU,实现的标准可能不一样,导致会有误差。也就是说,Unity自带的物理引擎,在不同平台上,模拟的效果可能会不一样。而且就算是同一机器,也可能因为浮点造成的误差,导致每次模拟的结果都不一样。解决方法就是用软件浮点(定点数......
  • unity MVC
         ......
  • Unity UGUI的Outline(描边)组件的介绍及使用
    UnityUGUI的Outline(描边)组件的介绍及使用1.什么是Outline(描边)组件?Outline(描边)组件是UnityUGUI中的一种特效组件,用于给UI元素添加描边效果。通过设置描边的颜色、宽度和模糊程度,可以使UI元素在视觉上更加突出。2.Outline(描边)组件的工作原理Outline(描边)组件通过在U......
  • Unity UGUI的Outline(描边)组件的介绍及使用
    UnityUGUI的Outline(描边)组件的介绍及使用1.什么是Outline(描边)组件?Outline(描边)组件是UnityUGUI中的一种特效组件,用于给UI元素添加描边效果。通过设置描边的颜色、宽度和模糊程度,可以使UI元素在视觉上更加突出。2.Outline(描边)组件的工作原理Outline(描边)组件通过在......
  • CommunityToolkit.Mvvm
    包是.NET提供的一个现代、快速且模块化的MVVM库。此包面向.NETStandard,因此可在任何应用平台上(UWP、WinForms、WPF、Xamarin、Uno等)和运行时上(.NETNative、.NETCore、.NETFramework或Mono)使用。其他MVVM库有:Prism,常用于WPF应用。Messenger发送消息接口IMessenger......
  • Unity学习
    Unity学习1常用快捷键alt+鼠标左键:以某个物体为中心旋转视角鼠标左键+w/s/a/d:视角移动F:相机聚焦物体Q/W/E/R/T/Y:左上角工具栏工具2文件资源2.1工程目录Assets目录:主要存放资源文件,该文件中的内容会在unity项目栏中显示。2.2文件类型FBX文件:3D模型文件,其中包括了......