最终效果
描边前 描边后
前往AssetStore,搜索免费插件Quick Outline并导入。 商店链接
需要描边的物体添加Outline脚本并启用即可。关闭描边可以通过禁用或移除Outline脚本。
Outline脚本参数 OutlineMode:描边类型,可以设置描边全部显示,不显示遮挡部分,只显示遮挡部分等。 OutlineColor:描边颜色。 OutlineWidth:描边宽度。
具体可以参考QuickOutline场景。
下面是项目中写的显示选中物体描边的功能。 这里是利用的属性进行封装。Build是我的自定义类,可以使用GameObject或者自定义类替换。
private Build currentBuild;
public Build CurrentBuild
{
get
{
return currentBuild;
}
set
{
//如果选中为空,则隐藏当前描边
if (!value)
{
HideOutline(currentBuild);
currentBuild = value;
return;
}
//如果选中的还是当前目标,则返回
if(value == currentBuild)
{
return;
}
else
{
//选中其他对象,关闭之前物体的描边并显示当前选中物体描边
if(currentBuild)
HideOutline(currentBuild);
ShowOutline(value);
currentBuild = value;
}
}
}
//关闭描边
void HideOutline(Build build)
{
build.GetComponent().enabled = false;
}
//显示描边
void ShowOutline(Build build)
{
if (build.GetComponent())
{
build.GetComponent().enabled = true;
}
else
{
build.gameObject.AddComponent();
}
}