Unity 3D模型展示之模型高亮
程序员文章站
2022-06-26 18:09:47
1. 导入插件Outline Effect在Asset Store或者Package Manager中搜索Outline Effect,并导入插件。导入成功后2. Outline Effect 的使用Main Camera添加Outline Effect脚本,调整脚本颜色。修改SwitchPart脚本,增加对Outline显示的控制。1.由于SwitchPart添加到元件时,Outline可以同时加入元件中,因此在SwitchPart添加[RequireComponent(typ...
1. 导入插件Outline Effect
在Asset Store或者Package Manager中搜索Outline Effect,并导入插件。
导入成功后
2. Outline Effect 的使用
- Main Camera添加Outline Effect脚本,调整脚本颜色。
- 修改SwitchPart脚本,增加对Outline显示的控制。
1.由于SwitchPart添加到元件时,Outline可以同时加入元件中,因此在SwitchPart添加[RequireComponent(typeof(cakeslice.Outline))]
2.控制 Outline显示分别编写事件OnMouseEnter,OnMouseExit,鼠标移入显示,移出隐藏。
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(cakeslice.Outline))]
public class SwitchPart : MonoBehaviour
{
public static SwitchPart Instance;
private cakeslice.Outline outLine;
private void Awake()
{
Instance = this;
}
public MSwitchParts mSwitchParts;
public GameObject info;
public int currentTaskId;
public int ownerIndex;
// Start is called before the first frame update
void Start()
{
outLine = GetComponent<cakeslice.Outline>();
outLine.enabled = false;
CreateTask();
}
public void CreateTask()
{
if (mSwitchParts.task.Count > 0 && mSwitchParts.ObjName == SwitchOperation.Instance.GetCurrentSwitchInfo().ObjName)
{
ClearTask();
for (int i = 0; i < mSwitchParts.task.Count; i++)
{
var item = mSwitchParts.task[i];
var tt = Instantiate(UIOperation.Instance.taskPrefabs);
tt.name = "task" + i;
var text = tt.transform.Find<Text>("Text");
text.text = " " + (i + 1) + "." + item.taskContent;
tt.transform.SetParent(UIOperation.Instance.taskParentTransform.transform);
}
}
}
private void ClearTask()
{
for (int i = 0; i < UIOperation.Instance.taskParentTransform.transform.childCount; i++)
{
Destroy(UIOperation.Instance.taskParentTransform.transform.GetChild(i).gameObject);
}
}
void OnMouseEnter()
{
outLine.enabled = true;
}
private void OnMouseExit()
{
outLine.enabled = false;
}
private void OnMouseDown()
{
if (mSwitchParts.ObjName != SwitchOperation.Instance.GetCurrentSwitchInfo().ObjName)
{
SwitchOperation.Instance.currentIndex = SwitchOperation.Instance.GetSwitchParts().FindIndex(p => p.ObjName == mSwitchParts.ObjName);
CreateTask();
}
}
}
3.最终效果
本文地址:https://blog.csdn.net/yxl219/article/details/110129185
上一篇: 入门学习HTML5这一篇就够了
下一篇: 超详细小程序定位地图模块全系列开发教学