选择对象时如何突出显示?

时间:2019-10-29 14:13:32

标签: c# unity3d

我遇到一个问题,当选择对象时,我需要帮助以突出显示该对象。我尝试通过导入圆形图像图标并尝试在c#脚本中创建,但是效果不太理想。因此,任何人都可以帮助我解决该问题(如果可能,则有所不同)或改进我的代码以使其工作。谢谢您的帮助。让我知道是否需要详细说明。谢谢!

这是我的代码:

public void Editcomponents()
{ 
    ClearText();
    CircleImageStatus = !CircleImageStatus;
    var imgs = reticle.GetComponentsInChildren<Image>(true);
    if (CircleImageStatus)
    { 
        foreach (var img in imgs)
        {
            img.GetComponent<Image>().color = new Color32(235, 210, 52, 255);
        }
    }
    else
    {
        foreach (var img in imgs)
        {
            img.GetComponent<Image>().color = new Color32(255, 255, 255, 255); 
        }
    }
}

2 个答案:

答案 0 :(得分:0)

有一种资产可以为您的物体勾勒轮廓

https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/outline-effect-78608

我以前用过它,它简单又棒。

用法: 您只需在对象上启用和禁用“大纲”脚本

如果您仍然想使用圆圈之类的东西,则可以使用GUI项,并通过WorldToScreen变换https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html

将其移动到对象位置。

答案 1 :(得分:0)

对于GUI元素,您可以使用此内置的Outline脚本: https://docs.unity3d.com/Manual/script-Outline.html 在对象周围显示轮廓,您可以为选择目的打开或关闭该对象:D