最终效果
描边前
描边后
实现
前往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<Outline>().enabled = false;
}
//显示描边
void ShowOutline(Build build)
{
if (build.GetComponent<Outline>())
{
build.GetComponent<Outline>().enabled = true;
}
else
{
build.gameObject.AddComponent<Outline>();
}
}