8.14
This commit is contained in:
parent
d30bdbc931
commit
cf14eb640c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,58 +0,0 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class ExtractMaterials : EditorWindow
|
||||
{
|
||||
[MenuItem("¹¤¾ß/ÌáÈ¡²ÄÁÏ")]
|
||||
static void Init()
|
||||
{
|
||||
ExtractMaterials window = (ExtractMaterials)EditorWindow.GetWindow(typeof(ExtractMaterials));
|
||||
window.Show();
|
||||
}
|
||||
|
||||
void OnGUI()
|
||||
{
|
||||
GUILayout.Label("Extract Materials", EditorStyles.boldLabel);
|
||||
|
||||
if (GUILayout.Button("Extract"))
|
||||
{
|
||||
string path = EditorUtility.OpenFolderPanel("Select FBX Folder", "", "");
|
||||
if (!string.IsNullOrEmpty(path))
|
||||
{
|
||||
ExtractMaterialsFromFolder(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ExtractMaterialsFromFolder(string folderPath)
|
||||
{
|
||||
string[] filePaths = System.IO.Directory.GetFiles(folderPath, "*.fbx", System.IO.SearchOption.AllDirectories);
|
||||
|
||||
foreach (string filePath in filePaths)
|
||||
{
|
||||
Object obj = AssetDatabase.LoadAssetAtPath(filePath, typeof(GameObject));
|
||||
GameObject go = obj as GameObject;
|
||||
|
||||
if (go != null)
|
||||
{
|
||||
Renderer[] renderers = go.GetComponentsInChildren<Renderer>(true);
|
||||
|
||||
foreach (Renderer renderer in renderers)
|
||||
{
|
||||
Material[] materials = renderer.sharedMaterials;
|
||||
|
||||
for (int i = 0; i < materials.Length; i++)
|
||||
{
|
||||
string materialName = string.Format("{0}_{1}.mat", go.name, i);
|
||||
string materialPath = System.IO.Path.Combine(folderPath, materialName);
|
||||
|
||||
AssetDatabase.CreateAsset(materials[i], materialPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
public class ExtractMaterialsAndTextures : EditorWindow
|
||||
{
|
||||
[MenuItem("工具/提取材料和纹理")]
|
||||
private static void ShowWindow()
|
||||
{
|
||||
EditorWindow window = GetWindow<ExtractMaterialsAndTextures>();
|
||||
window.titleContent = new GUIContent("Extract Materials and Textures");
|
||||
window.Show();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (GUILayout.Button("Extract Materials and Textures"))
|
||||
{
|
||||
GameObject[] selectedObjects = Selection.gameObjects;
|
||||
|
||||
foreach (GameObject obj in selectedObjects)
|
||||
{
|
||||
Renderer renderer = obj.GetComponent<Renderer>();
|
||||
|
||||
if (renderer != null)
|
||||
{
|
||||
Material[] materials = renderer.sharedMaterials;
|
||||
|
||||
foreach (Material mat in materials)
|
||||
{
|
||||
ExtractMaterialTextures(mat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log("提取完成!");
|
||||
}
|
||||
}
|
||||
|
||||
private void ExtractMaterialTextures(Material material)
|
||||
{
|
||||
string materialName = material.name;
|
||||
|
||||
for (int i = 0; i < ShaderUtil.GetPropertyCount(material.shader); i++)
|
||||
{
|
||||
if (ShaderUtil.GetPropertyType(material.shader, i) == ShaderUtil.ShaderPropertyType.TexEnv)
|
||||
{
|
||||
string propertyName = ShaderUtil.GetPropertyName(material.shader, i);
|
||||
Texture texture = material.GetTexture(propertyName);
|
||||
|
||||
if (texture != null)
|
||||
{
|
||||
RenderTexture renderTexture = RenderTexture.GetTemporary(texture.width, texture.height);
|
||||
Graphics.Blit(texture, renderTexture);
|
||||
RenderTexture previousRenderTexture = RenderTexture.active;
|
||||
RenderTexture.active = renderTexture;
|
||||
|
||||
Texture2D texture2D = new Texture2D(texture.width, texture.height);
|
||||
texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
|
||||
texture2D.Apply();
|
||||
|
||||
RenderTexture.active = previousRenderTexture;
|
||||
RenderTexture.ReleaseTemporary(renderTexture);
|
||||
|
||||
byte[] bytes = texture2D.EncodeToPNG();
|
||||
Object.DestroyImmediate(texture2D);
|
||||
|
||||
string textureName = $"{materialName}_{propertyName}";
|
||||
string outputPath = $"Assets/Textures/{textureName}.png";
|
||||
|
||||
System.IO.File.WriteAllBytes(outputPath, bytes);
|
||||
|
||||
AssetDatabase.ImportAsset(outputPath, ImportAssetOptions.ForceUpdate);
|
||||
Texture2D savedTexture = AssetDatabase.LoadAssetAtPath<Texture2D>(outputPath);
|
||||
material.SetTexture(propertyName, savedTexture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -7,7 +7,7 @@ using System;
|
|||
|
||||
public class FbxToPrefabInEditor
|
||||
{
|
||||
[MenuItem("Tools/ CreatPrefab")]
|
||||
[MenuItem("工具/ 批量生成预制体")]
|
||||
public static void CreatPrefab()
|
||||
{
|
||||
|
||||
|
@ -32,7 +32,7 @@ public class FbxToPrefabInEditor
|
|||
//tempPrefab = PrefabUtility.ReplacePrefab(aaaa[i].gameObject, tempPrefab);
|
||||
//Debug.Log(aaaa[i].name);
|
||||
|
||||
PrefabUtility.CreatePrefab("Assets/Resources/古泉站换流站机房/" + aaaa[i].name + ".prefab" +
|
||||
PrefabUtility.CreatePrefab("Assets/Resources/机柜/" + aaaa[i].name + ".prefab" +
|
||||
"", aaaa[i].gameObject);
|
||||
//foreach (var item in aaaa)
|
||||
//{
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace SK.Framework
|
||||
{
|
||||
public class ModelImportSettings : EditorWindow
|
||||
{
|
||||
//Location类型
|
||||
private ModelImporterMaterialLocation location;
|
||||
//菜单
|
||||
[MenuItem("工具/ 批量解压模型")]
|
||||
private static void Open()
|
||||
{
|
||||
GetWindow<ModelImportSettings>("Model Import Settings").Show();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
//水平布局
|
||||
GUILayout.BeginHorizontal();
|
||||
{
|
||||
GUILayout.Label("Location");
|
||||
//EnumPopup显示选择的Location类型
|
||||
location = (ModelImporterMaterialLocation)EditorGUILayout.EnumPopup(location);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
if (Selection.gameObjects.Length == 0) return;
|
||||
GUILayout.FlexibleSpace();
|
||||
|
||||
if (GUILayout.Button("Apply"))
|
||||
{
|
||||
//遍历选中的所有物体
|
||||
for (int i = 0; i < Selection.gameObjects.Length; i++)
|
||||
{
|
||||
var obj = Selection.gameObjects[i];
|
||||
//获取模型资源所在的路径
|
||||
string path = AssetDatabase.GetAssetPath(obj);
|
||||
//根据路径Asset Importer并转化为Model Importer
|
||||
ModelImporter importer = AssetImporter.GetAtPath(path) as ModelImporter;
|
||||
//判断选中的物体是否为模型
|
||||
if (importer != null)
|
||||
{
|
||||
//将materialLocation设为目标值
|
||||
importer.materialLocation = location;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//选中的物体变更时调用Repaint函数重新绘制
|
||||
private void OnSelectionChange()
|
||||
{
|
||||
Repaint();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe654d7646b7007479487b7d552f2b6b
|
||||
guid: ae2344fe821f4744f85ef86d07dfc5b3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5db7164e964ae4c6b82d2283320ad13d
|
||||
folderAsset: yes
|
||||
timeCreated: 1557315954
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c1cfaabf0583f44b4871807a898aaf31
|
||||
folderAsset: yes
|
||||
timeCreated: 1542886534
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,378 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[CustomEditor(typeof(HighlightEffect))]
|
||||
[CanEditMultipleObjects]
|
||||
public class HighlightEffectEditor : Editor {
|
||||
|
||||
SerializedProperty profile, profileSync, ignoreObjectVisibility, reflectionProbes, ignore, previewInEditor, effectGroup, effectGroupLayer, alphaCutOff, cullBackFaces;
|
||||
SerializedProperty highlighted, fadeInDuration, fadeOutDuration, flipY, constantWidth;
|
||||
SerializedProperty overlay, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayBlending;
|
||||
SerializedProperty outline, outlineColor, outlineWidth, outlineQuality, outlineDownsampling, outlineAlwaysOnTop, outlineOptimalBlit, outlineBlitDebug;
|
||||
SerializedProperty glow, glowWidth, glowQuality, glowDownsampling, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed, glowPasses, glowAlwaysOnTop, glowOptimalBlit, glowBlitDebug;
|
||||
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowAlwaysOnTop;
|
||||
SerializedProperty seeThrough, seeThroughIntensity, seeThroughTintAlpha, seeThroughTintColor;
|
||||
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXCenter, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXTransitionDuration, targetFXStayDuration;
|
||||
HighlightEffect thisEffect;
|
||||
bool profileChanged, enableProfileApply;
|
||||
|
||||
void OnEnable() {
|
||||
profile = serializedObject.FindProperty("profile");
|
||||
profileSync = serializedObject.FindProperty("profileSync");
|
||||
ignoreObjectVisibility = serializedObject.FindProperty("ignoreObjectVisibility");
|
||||
reflectionProbes = serializedObject.FindProperty ("reflectionProbes");
|
||||
ignore = serializedObject.FindProperty("ignore");
|
||||
previewInEditor = serializedObject.FindProperty("previewInEditor");
|
||||
effectGroup = serializedObject.FindProperty("effectGroup");
|
||||
effectGroupLayer = serializedObject.FindProperty("effectGroupLayer");
|
||||
alphaCutOff = serializedObject.FindProperty("alphaCutOff");
|
||||
cullBackFaces = serializedObject.FindProperty("cullBackFaces");
|
||||
highlighted = serializedObject.FindProperty("_highlighted");
|
||||
fadeInDuration = serializedObject.FindProperty("fadeInDuration");
|
||||
fadeOutDuration = serializedObject.FindProperty("fadeOutDuration");
|
||||
flipY = serializedObject.FindProperty("flipY");
|
||||
constantWidth = serializedObject.FindProperty("constantWidth");
|
||||
overlay = serializedObject.FindProperty("overlay");
|
||||
overlayColor = serializedObject.FindProperty("overlayColor");
|
||||
overlayAnimationSpeed = serializedObject.FindProperty("overlayAnimationSpeed");
|
||||
overlayMinIntensity = serializedObject.FindProperty("overlayMinIntensity");
|
||||
overlayBlending = serializedObject.FindProperty("overlayBlending");
|
||||
outline = serializedObject.FindProperty("outline");
|
||||
outlineColor = serializedObject.FindProperty("outlineColor");
|
||||
outlineWidth = serializedObject.FindProperty("outlineWidth");
|
||||
outlineQuality = serializedObject.FindProperty("outlineQuality");
|
||||
outlineAlwaysOnTop = serializedObject.FindProperty("outlineAlwaysOnTop");
|
||||
outlineOptimalBlit = serializedObject.FindProperty("outlineOptimalBlit");
|
||||
outlineBlitDebug = serializedObject.FindProperty("outlineBlitDebug");
|
||||
outlineDownsampling = serializedObject.FindProperty("outlineDownsampling");
|
||||
glow = serializedObject.FindProperty("glow");
|
||||
glowWidth = serializedObject.FindProperty("glowWidth");
|
||||
glowQuality = serializedObject.FindProperty("glowQuality");
|
||||
glowHQColor = serializedObject.FindProperty("glowHQColor");
|
||||
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
||||
glowDithering = serializedObject.FindProperty("glowDithering");
|
||||
glowMagicNumber1 = serializedObject.FindProperty("glowMagicNumber1");
|
||||
glowMagicNumber2 = serializedObject.FindProperty("glowMagicNumber2");
|
||||
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
||||
glowPasses = serializedObject.FindProperty("glowPasses");
|
||||
glowAlwaysOnTop = serializedObject.FindProperty("glowAlwaysOnTop");
|
||||
glowOptimalBlit = serializedObject.FindProperty("glowOptimalBlit");
|
||||
glowBlitDebug = serializedObject.FindProperty("glowBlitDebug");
|
||||
glowDownsampling = serializedObject.FindProperty("glowDownsampling");
|
||||
innerGlow = serializedObject.FindProperty("innerGlow");
|
||||
innerGlowColor = serializedObject.FindProperty("innerGlowColor");
|
||||
innerGlowWidth = serializedObject.FindProperty("innerGlowWidth");
|
||||
innerGlowAlwaysOnTop = serializedObject.FindProperty("innerGlowAlwaysOnTop");
|
||||
seeThrough = serializedObject.FindProperty("seeThrough");
|
||||
seeThroughIntensity = serializedObject.FindProperty("seeThroughIntensity");
|
||||
seeThroughTintAlpha = serializedObject.FindProperty("seeThroughTintAlpha");
|
||||
seeThroughTintColor = serializedObject.FindProperty("seeThroughTintColor");
|
||||
targetFX = serializedObject.FindProperty("targetFX");
|
||||
targetFXTexture = serializedObject.FindProperty("targetFXTexture");
|
||||
targetFXRotationSpeed = serializedObject.FindProperty("targetFXRotationSpeed");
|
||||
targetFXInitialScale = serializedObject.FindProperty("targetFXInitialScale");
|
||||
targetFXEndScale = serializedObject.FindProperty("targetFXEndScale");
|
||||
targetFXColor = serializedObject.FindProperty("targetFXColor");
|
||||
targetFXCenter = serializedObject.FindProperty("targetFXCenter");
|
||||
targetFXTransitionDuration = serializedObject.FindProperty("targetFXTransitionDuration");
|
||||
targetFXStayDuration = serializedObject.FindProperty("targetFXStayDuration");
|
||||
thisEffect = (HighlightEffect)target;
|
||||
thisEffect.Refresh();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI() {
|
||||
bool isManager = thisEffect.GetComponent<HighlightManager>() != null;
|
||||
EditorGUILayout.Separator();
|
||||
serializedObject.Update();
|
||||
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
HighlightProfile prevProfile = (HighlightProfile)profile.objectReferenceValue;
|
||||
EditorGUILayout.PropertyField(profile, new GUIContent("Profile", "Create or load stored presets."));
|
||||
if (profile.objectReferenceValue != null) {
|
||||
|
||||
if (prevProfile != profile.objectReferenceValue) {
|
||||
profileChanged = true;
|
||||
}
|
||||
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
GUILayout.Label("", GUILayout.Width(EditorGUIUtility.labelWidth));
|
||||
if (GUILayout.Button(new GUIContent("Create", "Creates a new profile which is a copy of the current settings."), GUILayout.Width(60))) {
|
||||
CreateProfile();
|
||||
profileChanged = false;
|
||||
enableProfileApply = false;
|
||||
GUIUtility.ExitGUI();
|
||||
return;
|
||||
}
|
||||
if (GUILayout.Button(new GUIContent("Load", "Updates settings with the profile configuration."), GUILayout.Width(60))) {
|
||||
profileChanged = true;
|
||||
}
|
||||
if (!enableProfileApply)
|
||||
GUI.enabled = false;
|
||||
if (GUILayout.Button(new GUIContent("Save", "Updates profile configuration with changes in this inspector."), GUILayout.Width(60))) {
|
||||
enableProfileApply = false;
|
||||
profileChanged = false;
|
||||
thisEffect.profile.Save(thisEffect);
|
||||
EditorUtility.SetDirty(thisEffect.profile);
|
||||
GUIUtility.ExitGUI();
|
||||
return;
|
||||
}
|
||||
GUI.enabled = true;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.PropertyField(profileSync, new GUIContent("Sync With Profile", "If disabled, profile settings will only be loaded when clicking 'Load' which allows you to customize settings after loading a profile and keep those changes."));
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
} else {
|
||||
if (GUILayout.Button(new GUIContent("Create", "Creates a new profile which is a copy of the current settings."), GUILayout.Width(60))) {
|
||||
CreateProfile();
|
||||
GUIUtility.ExitGUI();
|
||||
return;
|
||||
}
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
|
||||
if (isManager) {
|
||||
EditorGUILayout.HelpBox("These are default settings for highlighted objects. If the highlighted object already has a Highlight Effect component, those properties will be used.", MessageType.Info);
|
||||
} else {
|
||||
EditorGUILayout.PropertyField(previewInEditor);
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(ignoreObjectVisibility);
|
||||
if (thisEffect.staticChildren) {
|
||||
EditorGUILayout.HelpBox("This GameObject or one of its children is marked as static. If highlight is not visible, add a MeshCollider to them.", MessageType.Warning);
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(reflectionProbes);
|
||||
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField("Highlight Options", EditorStyles.boldLabel);
|
||||
if (GUILayout.Button("Help", GUILayout.Width(50))) {
|
||||
EditorUtility.DisplayDialog("Quick Help", "Move the mouse over a setting for a short description.\n\nVisit kronnect.com's forum for support, questions and more cool assets.\n\nIf you like Highlight Plus please rate it or leave a review on the Asset Store! Thanks.", "Ok");
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUI.BeginChangeCheck();
|
||||
if (!isManager) {
|
||||
EditorGUILayout.PropertyField(ignore, new GUIContent("Ignore", "This object won't be highlighted."));
|
||||
if (!ignore.boolValue) {
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(highlighted);
|
||||
if (EditorGUI.EndChangeCheck()) {
|
||||
foreach (HighlightEffect effect in targets) {
|
||||
effect.SetHighlighted(highlighted.boolValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!ignore.boolValue) {
|
||||
EditorGUILayout.PropertyField(effectGroup, new GUIContent("Include", "Additional objects to highlight. Pro tip: when highlighting multiple objects at the same time include them in the same layer or under the same parent."));
|
||||
if (effectGroup.intValue == (int)TargetOptions.Layer) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(effectGroupLayer, new GUIContent("Layer"));
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField(alphaCutOff, new GUIContent("Alpha Cut Off", "Only for semi-transparent objects. Leave this to zero for normal opaque objects."));
|
||||
EditorGUILayout.PropertyField(cullBackFaces);
|
||||
EditorGUILayout.PropertyField(fadeInDuration);
|
||||
EditorGUILayout.PropertyField(fadeOutDuration);
|
||||
if ((PlayerSettings.virtualRealitySupported && ((outlineQuality.intValue == (int)QualityLevel.Highest && outline.floatValue > 0) || (glowQuality.intValue == (int)QualityLevel.Highest && glow.floatValue > 0)))) {
|
||||
EditorGUILayout.PropertyField(flipY, new GUIContent("Flip Y Fix", "Flips outline/glow effect to fix bug introduced in Unity 2019.1.0 when VR is enabled."));
|
||||
}
|
||||
if (glowQuality.intValue != (int)QualityLevel.Highest || outlineQuality.intValue != (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField(constantWidth, new GUIContent("Constant Width", "Compensates outline/glow width with depth increase."));
|
||||
}
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField("Effects", EditorStyles.boldLabel);
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
DrawSectionField(outline, "Outline", outline.floatValue > 0);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
||||
EditorGUILayout.PropertyField(outlineColor, new GUIContent("Color"));
|
||||
EditorGUILayout.PropertyField(outlineQuality, new GUIContent("Quality", "Default and High use a mesh displacement technique. Highest quality can provide best look and also performance depending on the complexity of mesh."));
|
||||
CheckVRSupport(outlineQuality.intValue);
|
||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField(outlineDownsampling, new GUIContent("Downsampling"));
|
||||
}
|
||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField(outlineOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
||||
if (outlineOptimalBlit.boolValue) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(outlineBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
||||
if (outlineBlitDebug.boolValue && (!previewInEditor.boolValue || !highlighted.boolValue)) {
|
||||
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" and \"Highlighted\" to display the outline Debug View.", MessageType.Warning);
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
|
||||
GUI.enabled = outlineQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
||||
EditorGUILayout.PropertyField(outlineAlwaysOnTop, new GUIContent("Always On Top", "Shows outline on top of any occluding objects."));
|
||||
GUI.enabled = true;
|
||||
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
DrawSectionField(glow, "Outer Glow", glow.floatValue > 0);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
||||
EditorGUILayout.PropertyField(glowQuality, new GUIContent("Quality", "Default and High use a mesh displacement technique. Highest quality can provide best look and also performance depending on the complexity of mesh."));
|
||||
CheckVRSupport(glowQuality.intValue);
|
||||
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField(glowDownsampling, new GUIContent("Downsampling"));
|
||||
EditorGUILayout.PropertyField(glowHQColor, new GUIContent("Color"));
|
||||
}
|
||||
EditorGUILayout.PropertyField(glowAnimationSpeed, new GUIContent("Animation Speed"));
|
||||
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField(glowOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
||||
if (glowOptimalBlit.boolValue) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(glowBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
||||
if (glowBlitDebug.boolValue && (!previewInEditor.boolValue || !highlighted.boolValue)) {
|
||||
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" and \"Highlighted\" to display the glow Debug View.", MessageType.Warning);
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
GUI.enabled = glowQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
||||
EditorGUILayout.PropertyField(glowAlwaysOnTop, new GUIContent("Always On Top", "Shows outer glow on top of any occluding objects."));
|
||||
GUI.enabled = true;
|
||||
}
|
||||
else {
|
||||
GUI.enabled = glowQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
||||
EditorGUILayout.PropertyField(glowAlwaysOnTop, new GUIContent("Always On Top", "Shows outer glow on top of any occluding objects."));
|
||||
GUI.enabled = true;
|
||||
EditorGUILayout.PropertyField(glowDithering, new GUIContent("Dithering"));
|
||||
if (glowDithering.boolValue) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(glowMagicNumber1, new GUIContent("Magic Number 1"));
|
||||
EditorGUILayout.PropertyField(glowMagicNumber2, new GUIContent("Magic Number 2"));
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField(glowPasses, true);
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
DrawSectionField(innerGlow, "Inner Glow", innerGlow.floatValue > 0);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(innerGlowColor, new GUIContent("Color"));
|
||||
EditorGUILayout.PropertyField(innerGlowWidth, new GUIContent("Width"));
|
||||
EditorGUILayout.PropertyField(innerGlowAlwaysOnTop, new GUIContent("Always On Top", "Shows inner glow on top of any occluding objects."));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
DrawSectionField(overlay, "Overlay", overlay.floatValue > 0);
|
||||
if (overlay.floatValue < overlayMinIntensity.floatValue) {
|
||||
overlayMinIntensity.floatValue = overlay.floatValue;
|
||||
}
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(overlayColor, new GUIContent("Color"));
|
||||
EditorGUILayout.PropertyField(overlayBlending, new GUIContent("Blending"));
|
||||
EditorGUILayout.PropertyField(overlayMinIntensity, new GUIContent("Min Intensity"));
|
||||
if (overlayMinIntensity.floatValue > overlay.floatValue) {
|
||||
overlay.floatValue = overlayMinIntensity.floatValue;
|
||||
}
|
||||
EditorGUILayout.PropertyField(overlayAnimationSpeed, new GUIContent("Animation Speed"));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
DrawSectionField(targetFX, "Target", targetFX.boolValue);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(targetFXTexture, new GUIContent("Texture"));
|
||||
EditorGUILayout.PropertyField(targetFXColor, new GUIContent("Color"));
|
||||
EditorGUILayout.PropertyField(targetFXCenter, new GUIContent("Center", "Optionally assign a transform. Target will follow transform. If the object is skinned, you can also assign a bone to reflect currenct animation position."));
|
||||
EditorGUILayout.PropertyField(targetFXRotationSpeed, new GUIContent("Rotation Speed"));
|
||||
EditorGUILayout.PropertyField(targetFXInitialScale, new GUIContent("Initial Scale"));
|
||||
EditorGUILayout.PropertyField(targetFXEndScale, new GUIContent("End Scale"));
|
||||
EditorGUILayout.PropertyField(targetFXTransitionDuration, new GUIContent("Transition Duration"));
|
||||
EditorGUILayout.PropertyField(targetFXStayDuration, new GUIContent("Stay Duration"));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
EditorGUILayout.PropertyField(seeThrough);
|
||||
if (isManager && seeThrough.intValue == (int)SeeThroughMode.AlwaysWhenOccluded) {
|
||||
EditorGUILayout.HelpBox("This option is not valid in Manager.\nTo make an object always visible add a Highlight Effect component to the gameobject and enable this option on the component.", MessageType.Error);
|
||||
}
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(seeThroughIntensity, new GUIContent("Intensity"));
|
||||
EditorGUILayout.PropertyField(seeThroughTintAlpha, new GUIContent("Alpha"));
|
||||
EditorGUILayout.PropertyField(seeThroughTintColor, new GUIContent("Color"));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties() || profileChanged) {
|
||||
if (thisEffect.profile != null) {
|
||||
if (profileChanged) {
|
||||
thisEffect.profile.Load(thisEffect);
|
||||
profileChanged = false;
|
||||
enableProfileApply = false;
|
||||
} else {
|
||||
enableProfileApply = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (HighlightEffect effect in targets) {
|
||||
effect.Refresh();
|
||||
}
|
||||
}
|
||||
if (thisEffect != null && thisEffect.previewInEditor) {
|
||||
EditorUtility.SetDirty(thisEffect);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawSectionField(SerializedProperty property, string label, bool active) {
|
||||
EditorGUILayout.PropertyField(property, new GUIContent(active ? label + " •" : label));
|
||||
}
|
||||
|
||||
void CheckVRSupport(int qualityLevel) {
|
||||
if (qualityLevel == (int)QualityLevel.Highest && PlayerSettings.virtualRealitySupported) {
|
||||
if (PlayerSettings.stereoRenderingPath != StereoRenderingPath.MultiPass) {
|
||||
EditorGUILayout.HelpBox("Highest Quality only supports VR Multi-Pass as CommandBuffers do not support this VR mode yet. Either switch to 'High Quality' or change VR Stereo mode to Multi-Pass.", MessageType.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CheckForwardMSAA() {
|
||||
if (QualitySettings.antiAliasing > 1) {
|
||||
if (Camera.main != null && Camera.main.allowMSAA) {
|
||||
EditorGUILayout.HelpBox("Effect will be shown always on top due to MSAA. To enable depth clipping disable MSAA first.", MessageType.Info);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
#region Profile handling
|
||||
|
||||
void CreateProfile() {
|
||||
|
||||
HighlightProfile newProfile = ScriptableObject.CreateInstance<HighlightProfile>();
|
||||
newProfile.Save(thisEffect);
|
||||
|
||||
AssetDatabase.CreateAsset(newProfile, "Assets/Highlight Plus Profile.asset");
|
||||
AssetDatabase.SaveAssets();
|
||||
|
||||
EditorUtility.FocusProjectWindow();
|
||||
Selection.activeObject = newProfile;
|
||||
|
||||
thisEffect.profile = newProfile;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: be287539f47634552a716f0705710448
|
||||
timeCreated: 1542886545
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,30 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
[CustomEditor(typeof(HighlightManager))]
|
||||
public class HighlightManagerEditor : Editor {
|
||||
public override void OnInspectorGUI() {
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.HelpBox("Only objects with a collider can be highlighted automatically.", MessageType.Info);
|
||||
DrawDefaultInspector();
|
||||
}
|
||||
|
||||
|
||||
[MenuItem ("GameObject/Effects/Highlight Plus/Create Manager", false, 10)]
|
||||
static void CreateManager (MenuCommand menuCommand) {
|
||||
HighlightManager manager = FindObjectOfType<HighlightManager> ();
|
||||
if (manager == null) {
|
||||
GameObject managerGO = new GameObject ("HighlightPlusManager");
|
||||
manager = managerGO.AddComponent<HighlightManager> ();
|
||||
// Register root object for undo.
|
||||
Undo.RegisterCreatedObjectUndo (manager, "Create Highlight Plus Manager");
|
||||
}
|
||||
Selection.activeObject = manager;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ace58d1d278d649c98e5a2b5a066b3cd
|
||||
timeCreated: 1548711355
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,159 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[CustomEditor (typeof(HighlightProfile))]
|
||||
[CanEditMultipleObjects]
|
||||
public class HighlightProfileEditor : Editor {
|
||||
|
||||
SerializedProperty overlay, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayBlending, effectGroup, effectGroupLayer, alphaCutOff, cullBackFaces;
|
||||
SerializedProperty fadeInDuration, fadeOutDuration;
|
||||
SerializedProperty outline, outlineColor, outlineWidth, outlineQuality, outlineAlwaysOnTop;
|
||||
SerializedProperty glow, glowWidth, glowQuality, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed, glowAlwaysOnTop, glowPasses;
|
||||
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowAlwaysOnTop;
|
||||
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXTransitionDuration, targetFXStayDuration;
|
||||
SerializedProperty seeThrough, seeThroughIntensity, seeThroughTintAlpha, seeThroughTintColor;
|
||||
|
||||
void OnEnable () {
|
||||
effectGroup = serializedObject.FindProperty ("effectGroup");
|
||||
effectGroupLayer = serializedObject.FindProperty ("effectGroupLayer");
|
||||
alphaCutOff = serializedObject.FindProperty ("alphaCutOff");
|
||||
cullBackFaces = serializedObject.FindProperty ("cullBackFaces");
|
||||
fadeInDuration = serializedObject.FindProperty ("fadeInDuration");
|
||||
fadeOutDuration = serializedObject.FindProperty ("fadeOutDuration");
|
||||
overlay = serializedObject.FindProperty ("overlay");
|
||||
overlayColor = serializedObject.FindProperty ("overlayColor");
|
||||
overlayAnimationSpeed = serializedObject.FindProperty ("overlayAnimationSpeed");
|
||||
overlayMinIntensity = serializedObject.FindProperty ("overlayMinIntensity");
|
||||
overlayBlending = serializedObject.FindProperty ("overlayBlending");
|
||||
outline = serializedObject.FindProperty ("outline");
|
||||
outlineColor = serializedObject.FindProperty ("outlineColor");
|
||||
outlineWidth = serializedObject.FindProperty ("outlineWidth");
|
||||
outlineQuality = serializedObject.FindProperty ("outlineQuality");
|
||||
outlineAlwaysOnTop = serializedObject.FindProperty ("outlineAlwaysOnTop");
|
||||
glow = serializedObject.FindProperty ("glow");
|
||||
glowWidth = serializedObject.FindProperty ("glowWidth");
|
||||
glowQuality = serializedObject.FindProperty ("glowQuality");
|
||||
glowHQColor = serializedObject.FindProperty ("glowHQColor");
|
||||
glowAnimationSpeed = serializedObject.FindProperty ("glowAnimationSpeed");
|
||||
glowDithering = serializedObject.FindProperty ("glowDithering");
|
||||
glowMagicNumber1 = serializedObject.FindProperty ("glowMagicNumber1");
|
||||
glowMagicNumber2 = serializedObject.FindProperty ("glowMagicNumber2");
|
||||
glowAnimationSpeed = serializedObject.FindProperty ("glowAnimationSpeed");
|
||||
glowAlwaysOnTop = serializedObject.FindProperty ("glowAlwaysOnTop");
|
||||
glowPasses = serializedObject.FindProperty ("glowPasses");
|
||||
innerGlow = serializedObject.FindProperty ("innerGlow");
|
||||
innerGlowColor = serializedObject.FindProperty ("innerGlowColor");
|
||||
innerGlowWidth = serializedObject.FindProperty ("innerGlowWidth");
|
||||
innerGlowAlwaysOnTop = serializedObject.FindProperty ("innerGlowAlwaysOnTop");
|
||||
targetFX = serializedObject.FindProperty ("targetFX");
|
||||
targetFXTexture = serializedObject.FindProperty ("targetFXTexture");
|
||||
targetFXRotationSpeed = serializedObject.FindProperty ("targetFXRotationSpeed");
|
||||
targetFXInitialScale = serializedObject.FindProperty ("targetFXInitialScale");
|
||||
targetFXEndScale = serializedObject.FindProperty ("targetFXEndScale");
|
||||
targetFXColor = serializedObject.FindProperty ("targetFXColor");
|
||||
targetFXTransitionDuration = serializedObject.FindProperty ("targetFXTransitionDuration");
|
||||
targetFXStayDuration = serializedObject.FindProperty ("targetFXStayDuration");
|
||||
seeThrough = serializedObject.FindProperty ("seeThrough");
|
||||
seeThroughIntensity = serializedObject.FindProperty ("seeThroughIntensity");
|
||||
seeThroughTintAlpha = serializedObject.FindProperty ("seeThroughTintAlpha");
|
||||
seeThroughTintColor = serializedObject.FindProperty ("seeThroughTintColor");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI () {
|
||||
|
||||
EditorGUILayout.Separator ();
|
||||
EditorGUILayout.LabelField ("Highlight Options", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField (effectGroup, new GUIContent("Include"));
|
||||
if (effectGroup.intValue == (int)TargetOptions.Layer) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (effectGroupLayer, new GUIContent("Layer"));
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField (alphaCutOff);
|
||||
EditorGUILayout.PropertyField (cullBackFaces);
|
||||
EditorGUI.BeginChangeCheck ();
|
||||
EditorGUILayout.PropertyField (fadeInDuration);
|
||||
EditorGUILayout.PropertyField (fadeOutDuration);
|
||||
EditorGUILayout.PropertyField (outline);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (outlineWidth, new GUIContent ("Width"));
|
||||
EditorGUILayout.PropertyField (outlineColor, new GUIContent ("Color"));
|
||||
EditorGUILayout.PropertyField (outlineQuality, new GUIContent ("Quality", "Default and High use a mesh displacement technique. Highest quality can provide best look and also performance depending on the complexity of mesh."));
|
||||
EditorGUILayout.PropertyField (outlineAlwaysOnTop, new GUIContent ("Always On Top", "Shows outline on top of any occluding objects."));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.PropertyField (glow, new GUIContent ("Outer Glow"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (glowWidth, new GUIContent ("Width"));
|
||||
EditorGUILayout.PropertyField (glowQuality, new GUIContent ("Quality", "Default and High use a mesh displacement technique. Highest quality can provide best look and also performance depending on the complexity of mesh."));
|
||||
EditorGUILayout.PropertyField (glowHQColor, new GUIContent ("Color"));
|
||||
EditorGUILayout.PropertyField (glowAnimationSpeed, new GUIContent ("Animation Speed"));
|
||||
EditorGUILayout.PropertyField (glowAlwaysOnTop, new GUIContent ("Always On Top", "Shows outer glow on top of any occluding objects."));
|
||||
if (glowQuality.intValue != (int)QualityLevel.Highest) {
|
||||
EditorGUILayout.PropertyField (glowDithering, new GUIContent ("Dithering"));
|
||||
if (glowDithering.boolValue) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (glowMagicNumber1, new GUIContent ("Magic Number 1"));
|
||||
EditorGUILayout.PropertyField (glowMagicNumber2, new GUIContent ("Magic Number 2"));
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField (glowPasses, true);
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.PropertyField (innerGlow, new GUIContent ("Inner Glow"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (innerGlowColor, new GUIContent ("Color"));
|
||||
EditorGUILayout.PropertyField (innerGlowWidth, new GUIContent ("Width"));
|
||||
EditorGUILayout.PropertyField (innerGlowAlwaysOnTop, new GUIContent ("Always On Top", "Shows inner glow on top of any occluding objects."));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.PropertyField (overlay);
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (overlayColor, new GUIContent ("Color"));
|
||||
EditorGUILayout.PropertyField (overlayBlending, new GUIContent ("Blending"));
|
||||
EditorGUILayout.PropertyField (overlayMinIntensity, new GUIContent ("Min Intensity"));
|
||||
EditorGUILayout.PropertyField (overlayAnimationSpeed, new GUIContent ("Animation Speed"));
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUILayout.PropertyField (targetFX, new GUIContent ("Target"));
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField (targetFXTexture, new GUIContent ("Texture"));
|
||||
EditorGUILayout.PropertyField (targetFXColor, new GUIContent ("Color"));
|
||||
EditorGUILayout.PropertyField (targetFXRotationSpeed, new GUIContent ("Rotation Speed"));
|
||||
EditorGUILayout.PropertyField (targetFXInitialScale, new GUIContent ("Initial Scale"));
|
||||
EditorGUILayout.PropertyField (targetFXEndScale, new GUIContent ("End Scale"));
|
||||
EditorGUILayout.PropertyField (targetFXTransitionDuration, new GUIContent ("Transition Duration"));
|
||||
EditorGUILayout.PropertyField (targetFXStayDuration, new GUIContent ("Stay Duration"));
|
||||
EditorGUI.indentLevel--;
|
||||
|
||||
EditorGUILayout.Separator ();
|
||||
EditorGUILayout.LabelField ("See-Through Options", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField (seeThrough);
|
||||
EditorGUILayout.PropertyField (seeThroughIntensity, new GUIContent (" Intensity"));
|
||||
EditorGUILayout.PropertyField (seeThroughTintAlpha, new GUIContent (" Alpha"));
|
||||
EditorGUILayout.PropertyField (seeThroughTintColor, new GUIContent (" Color"));
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties () || (Event.current.type == EventType.ExecuteCommand &&
|
||||
Event.current.commandName == "UndoRedoPerformed")) {
|
||||
|
||||
// Triggers profile reload on all Highlight Effect scripts
|
||||
HighlightEffect[] effects = FindObjectsOfType<HighlightEffect> ();
|
||||
for (int t = 0; t < targets.Length; t++) {
|
||||
HighlightProfile profile = (HighlightProfile)targets [t];
|
||||
for (int k = 0; k < effects.Length; k++) {
|
||||
if (effects [k] != null && effects [k].profile == profile && effects [k].profileSync) {
|
||||
profile.Load (effects [k]);
|
||||
effects [k].Refresh ();
|
||||
}
|
||||
}
|
||||
}
|
||||
EditorUtility.SetDirty (target);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b3b0e551d6f4f4f3987e8e5be2e89285
|
||||
timeCreated: 1542886545
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,17 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[CustomEditor (typeof(HighlightSeeThroughOccluder))]
|
||||
public class HighlightSeeThroughOccluderEditor : Editor {
|
||||
public override void OnInspectorGUI () {
|
||||
EditorGUILayout.Separator ();
|
||||
EditorGUILayout.HelpBox ("This object will occlude any see-through effect.", MessageType.Info);
|
||||
DrawDefaultInspector ();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 11e725ecbe4d74569b232e1a0d57efba
|
||||
timeCreated: 1548711355
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,48 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
[CustomEditor(typeof(HighlightTrigger))]
|
||||
public class HighlightTriggerEditor : Editor {
|
||||
|
||||
SerializedProperty triggerMode, raycastCamera, raycastSource;
|
||||
HighlightTrigger trigger;
|
||||
|
||||
void OnEnable() {
|
||||
triggerMode = serializedObject.FindProperty ("triggerMode");
|
||||
raycastCamera = serializedObject.FindProperty ("raycastCamera");
|
||||
raycastSource = serializedObject.FindProperty ("raycastSource");
|
||||
trigger = (HighlightTrigger)target;
|
||||
trigger.Init ();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI() {
|
||||
|
||||
serializedObject.Update ();
|
||||
|
||||
if (trigger.triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||
if (trigger.colliders == null || trigger.colliders.Length == 0) {
|
||||
EditorGUILayout.HelpBox ("No collider found on this object or any of its children. Add colliders to allow automatic highlighting.", MessageType.Warning);
|
||||
}
|
||||
} else {
|
||||
if (trigger.GetComponent<Collider> () == null) {
|
||||
EditorGUILayout.HelpBox ("No collider found on this object. Add a collider to allow automatic highlighting.", MessageType.Error);
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField (triggerMode);
|
||||
if (trigger.triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||
EditorGUILayout.PropertyField (raycastCamera);
|
||||
EditorGUILayout.PropertyField (raycastSource);
|
||||
}
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties ()) {
|
||||
trigger.Init ();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: eaf7f56fbcfa343efb5081d4309cb76b
|
||||
timeCreated: 1548711355
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,92 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEditor;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
public class TransparentWithDepth {
|
||||
|
||||
static Material bmDepthOnly;
|
||||
|
||||
|
||||
[MenuItem ("GameObject/Effects/Highlight Plus/Add Depth To Transparent Object", false, 100)]
|
||||
static void AddDepthOption () {
|
||||
Renderer renderer = GetRenderer ();
|
||||
if (renderer == null)
|
||||
return;
|
||||
|
||||
if (!EditorUtility.DisplayDialog ("Add Depth To Transparent Object", "This option will force the transparent object to write to the depth buffer by adding a new special material to the renderer (existing materials are preserved) so it can occlude and allow See-Through effect.\nOnly use on transparent objects.\n\nProceed?", "Yes", "No")) {
|
||||
return;
|
||||
}
|
||||
|
||||
Material[] materials = renderer.sharedMaterials;
|
||||
for (int k = 0; k < materials.Length; k++) {
|
||||
if (materials [k] == bmDepthOnly) {
|
||||
EditorUtility.DisplayDialog ("Depth Support", "Already set! Nothing to do.", "Ok");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (materials == null) {
|
||||
renderer.sharedMaterial = bmDepthOnly;
|
||||
} else {
|
||||
List<Material> newMaterials = new List<Material> (materials);
|
||||
newMaterials.Insert (0, bmDepthOnly);
|
||||
renderer.sharedMaterials = newMaterials.ToArray ();
|
||||
}
|
||||
}
|
||||
|
||||
[MenuItem ("GameObject/Effects/Highlight Plus/Remove Depth Compatibility", false, 101)]
|
||||
static void RemoveDepthOption () {
|
||||
|
||||
Renderer renderer = GetRenderer ();
|
||||
if (renderer == null)
|
||||
return;
|
||||
|
||||
Material[] materials = renderer.sharedMaterials;
|
||||
for (int k = 0; k < materials.Length; k++) {
|
||||
if (materials [k] == bmDepthOnly) {
|
||||
List<Material> newMaterials = new List<Material> (renderer.sharedMaterials);
|
||||
newMaterials.RemoveAt (k);
|
||||
renderer.sharedMaterials = newMaterials.ToArray ();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int k = 0; k < materials.Length; k++) {
|
||||
if (materials [k] == bmDepthOnly) {
|
||||
EditorUtility.DisplayDialog ("Depth Support", "This object was not previously modified! Nothing to do.", "Ok");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
static Renderer GetRenderer () {
|
||||
|
||||
if (Selection.activeGameObject == null) {
|
||||
EditorUtility.DisplayDialog ("Depth Support", "This option can only be used on GameObjects.", "Ok");
|
||||
return null;
|
||||
}
|
||||
Renderer renderer = Selection.activeGameObject.GetComponent<Renderer> ();
|
||||
if (renderer == null) {
|
||||
EditorUtility.DisplayDialog ("Depth Support", "This option can only be used on GameObjects with a Renderer component attached.", "Ok");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (bmDepthOnly == null) {
|
||||
bmDepthOnly = Resources.Load<Material> ("HighlightPlus/HighlightPlusDepthWrite");
|
||||
if (bmDepthOnly == null) {
|
||||
EditorUtility.DisplayDialog ("Depth Support", "HighlightPlusDepthWrite material not found!", "Ok");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return renderer;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9ef952c2a5314f64097e7a7042ad02b3
|
||||
guid: be6e3be6d17ed49a3bd16d816815d6fd
|
||||
timeCreated: 1515683694
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3a476022645d74299b862c36d0daa1df
|
||||
folderAsset: yes
|
||||
timeCreated: 1542876301
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6bd97436761b94109a0785ed6823647c
|
||||
folderAsset: yes
|
||||
timeCreated: 1542893576
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,48 @@
|
|||
Shader "HighlightPlus/Geometry/JustDepth"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType"="Opaque" }
|
||||
ColorMask 0
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 058a572e30b2d446bade2dda32bcef0f
|
||||
timeCreated: 1515682635
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,162 @@
|
|||
Shader "HighlightPlus/Geometry/BlurGlow" {
|
||||
Properties {
|
||||
_MainTex ("Texture", Any) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_BlurScale("Blur Scale", Float) = 2.0
|
||||
_Speed("Speed", Float) = 1
|
||||
_StereoRendering("Stereo Rendering Correction", Float) = 1
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
ZTest Always
|
||||
ZWrite Off
|
||||
Cull Off
|
||||
CGINCLUDE
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_TexelSize;
|
||||
float4 _MainTex_ST;
|
||||
float _BlurScale, _Speed, _StereoRendering;
|
||||
|
||||
struct appdata {
|
||||
float4 vertex : POSITION;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2fCross {
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv: TEXCOORD0;
|
||||
float2 uv1: TEXCOORD1;
|
||||
float2 uv2: TEXCOORD2;
|
||||
float2 uv3: TEXCOORD3;
|
||||
float2 uv4: TEXCOORD4;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2fCross vertCross(appdata v) {
|
||||
v2fCross o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
if (_MainTex_TexelSize.y < 0) {
|
||||
// Texture is inverted WRT the main texture
|
||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
||||
}
|
||||
#endif
|
||||
o.uv = v.texcoord;
|
||||
float3 offsets = _MainTex_TexelSize.xyx * float3(1,1,-1);
|
||||
offsets.xz *= _StereoRendering;
|
||||
o.uv1 = v.texcoord - offsets.xy;
|
||||
o.uv2 = v.texcoord - offsets.zy;
|
||||
o.uv3 = v.texcoord + offsets.zy;
|
||||
o.uv4 = v.texcoord + offsets.xy;
|
||||
return o;
|
||||
}
|
||||
|
||||
|
||||
v2fCross vertBlurH(appdata v) {
|
||||
v2fCross o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
if (_MainTex_TexelSize.y < 0) {
|
||||
// Texture is inverted WRT the main texture
|
||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
||||
}
|
||||
#endif
|
||||
float animatedWidth = _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
||||
o.uv = v.texcoord;
|
||||
float2 inc = float2(_MainTex_TexelSize.x * 1.3846153846 * animatedWidth, 0);
|
||||
inc.x *= _StereoRendering;
|
||||
o.uv1 = v.texcoord - inc;
|
||||
o.uv2 = v.texcoord + inc;
|
||||
float2 inc2 = float2(_MainTex_TexelSize.x * 3.2307692308 * animatedWidth, 0);
|
||||
inc2.x *= _StereoRendering;
|
||||
o.uv3 = v.texcoord - inc2;
|
||||
o.uv4 = v.texcoord + inc2;
|
||||
return o;
|
||||
}
|
||||
|
||||
v2fCross vertBlurV(appdata v) {
|
||||
v2fCross o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
if (_MainTex_TexelSize.y < 0) {
|
||||
// Texture is inverted WRT the main texture
|
||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
||||
}
|
||||
#endif
|
||||
float animatedWidth = _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
||||
o.uv = v.texcoord;
|
||||
float2 inc = float2(0, _MainTex_TexelSize.y * 1.3846153846 * animatedWidth);
|
||||
o.uv1 = v.texcoord - inc;
|
||||
o.uv2 = v.texcoord + inc;
|
||||
float2 inc2 = float2(0, _MainTex_TexelSize.y * 3.2307692308 * animatedWidth);
|
||||
o.uv3 = v.texcoord - inc2;
|
||||
o.uv4 = v.texcoord + inc2;
|
||||
return o;
|
||||
}
|
||||
|
||||
float4 fragBlur (v2fCross i): SV_Target {
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
float4 pixel = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv) * 0.2270270270
|
||||
+ (UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv1) + UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv2)) * 0.3162162162
|
||||
+ (UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv3) + UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv4)) * 0.0702702703;
|
||||
return pixel;
|
||||
}
|
||||
|
||||
float4 fragResample(v2fCross i) : SV_Target {
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
float4 c1 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv1);
|
||||
float4 c2 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv2);
|
||||
float4 c3 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv3);
|
||||
float4 c4 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv4);
|
||||
return (c1+c2+c3+c4) * 0.25;
|
||||
}
|
||||
|
||||
|
||||
ENDCG
|
||||
|
||||
Pass {
|
||||
CGPROGRAM
|
||||
#pragma vertex vertBlurH
|
||||
#pragma fragment fragBlur
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#pragma target 3.0
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
CGPROGRAM
|
||||
#pragma vertex vertBlurV
|
||||
#pragma fragment fragBlur
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#pragma target 3.0
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
CGPROGRAM
|
||||
#pragma vertex vertCross
|
||||
#pragma fragment fragResample
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#pragma target 3.0
|
||||
ENDCG
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 84c84ee93ec484bdda371ffbdebfcc7c
|
||||
timeCreated: 1556874239
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,139 @@
|
|||
Shader "HighlightPlus/Geometry/BlurOutline" {
|
||||
Properties {
|
||||
_MainTex ("Texture", Any) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_BlurScale("Blur Scale", Float) = 2.0
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
||||
ZTest Always
|
||||
ZWrite Off
|
||||
CGINCLUDE
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_TexelSize;
|
||||
float4 _MainTex_ST;
|
||||
float _BlurScale;
|
||||
|
||||
struct appdata {
|
||||
float4 vertex : POSITION;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
|
||||
struct v2fCross {
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv: TEXCOORD0;
|
||||
float2 uv1: TEXCOORD1;
|
||||
float2 uv2: TEXCOORD2;
|
||||
float2 uv3: TEXCOORD3;
|
||||
float2 uv4: TEXCOORD4;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
struct v2fSides {
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv1: TEXCOORD0;
|
||||
float2 uv2: TEXCOORD1;
|
||||
float2 uv3: TEXCOORD2;
|
||||
float2 uv4: TEXCOORD3;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2fCross vertCross(appdata v) {
|
||||
v2fCross o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
if (_MainTex_TexelSize.y < 0) {
|
||||
// Texture is inverted WRT the main texture
|
||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
||||
}
|
||||
#endif
|
||||
o.uv = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST);
|
||||
float3 offsets = _MainTex_TexelSize.xyx * float3(1,1,-1) * _BlurScale;
|
||||
#if UNITY_SINGLE_PASS_STEREO
|
||||
offsets.xz *= 2.0;
|
||||
#endif
|
||||
o.uv1 = UnityStereoScreenSpaceUVAdjust(v.texcoord - offsets.xy, _MainTex_ST);
|
||||
o.uv2 = UnityStereoScreenSpaceUVAdjust(v.texcoord - offsets.zy, _MainTex_ST);
|
||||
o.uv3 = UnityStereoScreenSpaceUVAdjust(v.texcoord + offsets.zy, _MainTex_ST);
|
||||
o.uv4 = UnityStereoScreenSpaceUVAdjust(v.texcoord + offsets.xy, _MainTex_ST);
|
||||
return o;
|
||||
}
|
||||
|
||||
v2fSides vertSides(appdata v) {
|
||||
v2fSides o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
if (_MainTex_TexelSize.y < 0) {
|
||||
// Texture is inverted WRT the main texture
|
||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
||||
}
|
||||
#endif
|
||||
float3 offsets = _MainTex_TexelSize.xyx * float3(1,1,-1) * _BlurScale;
|
||||
#if UNITY_SINGLE_PASS_STEREO
|
||||
offsets.xz *= 2.0;
|
||||
#endif
|
||||
o.uv1 = UnityStereoScreenSpaceUVAdjust(v.texcoord - offsets.xy, _MainTex_ST);
|
||||
o.uv2 = UnityStereoScreenSpaceUVAdjust(v.texcoord - offsets.zy, _MainTex_ST);
|
||||
o.uv3 = UnityStereoScreenSpaceUVAdjust(v.texcoord + offsets.zy, _MainTex_ST);
|
||||
o.uv4 = UnityStereoScreenSpaceUVAdjust(v.texcoord + offsets.xy, _MainTex_ST);
|
||||
return o;
|
||||
}
|
||||
|
||||
float4 fragBlur (v2fSides i): SV_Target {
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
float4 pixel = max(
|
||||
max(UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv1), UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv2)),
|
||||
max(UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv3), UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv4))
|
||||
);
|
||||
return pixel;
|
||||
}
|
||||
|
||||
|
||||
float4 fragResample(v2fCross i) : SV_Target {
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
float4 c0 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
float4 c1 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv1);
|
||||
float4 c2 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv2);
|
||||
float4 c3 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv3);
|
||||
float4 c4 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv4);
|
||||
return c0*0.6+(c1+c2+c3+c4)*0.4;
|
||||
}
|
||||
|
||||
ENDCG
|
||||
|
||||
Pass {
|
||||
CGPROGRAM
|
||||
#pragma vertex vertSides
|
||||
#pragma fragment fragBlur
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#pragma target 3.0
|
||||
ENDCG
|
||||
}
|
||||
|
||||
Pass {
|
||||
CGPROGRAM
|
||||
#pragma vertex vertCross
|
||||
#pragma fragment fragResample
|
||||
#pragma fragmentoption ARB_precision_hint_fastest
|
||||
#pragma target 3.0
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 74f3491dcf1224f0c91238381c035439
|
||||
timeCreated: 1556874239
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,142 @@
|
|||
Shader "HighlightPlus/Geometry/ComposeGlow" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "black" {}
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_Cull ("Cull Mode", Int) = 2
|
||||
_ZTest ("ZTest Mode", Int) = 0
|
||||
_Flip("Flip", Vector) = (0, 1, 0)
|
||||
_Debug("Debug Color", Color) = (0,0,0,0)
|
||||
_StereoRendering("Stereo Rendering Correction", Float) = 1
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+102" "RenderType"="Transparent" }
|
||||
|
||||
// Compose effect on camera target
|
||||
Pass
|
||||
{
|
||||
ZWrite Off
|
||||
ZTest Always //[_ZTest]
|
||||
Cull Off //[_Cull]
|
||||
Blend One One
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _HPComposeGlowFinal;
|
||||
fixed4 _Color;
|
||||
float3 _Flip;
|
||||
fixed4 _Debug;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float4 scrPos: TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.scrPos = ComputeScreenPos(o.pos);
|
||||
o.scrPos.y = o.scrPos.w * _Flip.x + o.scrPos.y * _Flip.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 glow = tex2Dproj(_HPComposeGlowFinal, i.scrPos);
|
||||
fixed4 color = _Color;
|
||||
color *= glow.a;
|
||||
color += _Debug;
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
// Compose effect on camera target (full-screen blit)
|
||||
Pass
|
||||
{
|
||||
ZWrite Off
|
||||
ZTest Always //[_ZTest]
|
||||
Cull Off //[_Cull]
|
||||
Blend One One
|
||||
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
fixed4 _Color;
|
||||
float3 _Flip;
|
||||
float _StereoRendering;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = UnityStereoScreenSpaceUVAdjust(v.uv, _MainTex_ST);
|
||||
o.uv.x *= _StereoRendering;
|
||||
o.uv.y = _Flip.x + o.uv.y * _Flip.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); // Commandbuffers do not support Single Pass Instanced so we have to disable this
|
||||
fixed4 glow = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
fixed4 color = _Color;
|
||||
color *= glow.a;
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 975a91ee935da4d9c8a3e807fecd8047
|
||||
timeCreated: 1544699251
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,141 @@
|
|||
Shader "HighlightPlus/Geometry/ComposeOutline" {
|
||||
Properties {
|
||||
_MainTex ("Texture", Any) = "black" {}
|
||||
_Color("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_Cull("Cull Mode", Int) = 2
|
||||
_ZTest("ZTest Mode", Int) = 0
|
||||
_Flip("Flip", Vector) = (0, 1, 0)
|
||||
_Debug("Debug Color", Color) = (0,0,0,0)
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue" = "Transparent+120" "RenderType" = "Transparent" }
|
||||
|
||||
// Compose effect on camera target (optimal quad blit)
|
||||
Pass
|
||||
{
|
||||
ZWrite Off
|
||||
ZTest Always //[_ZTest]
|
||||
Cull Off // [_Cull]
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler2D _HPComposeOutlineFinal;
|
||||
|
||||
fixed4 _Color;
|
||||
float3 _Flip;
|
||||
fixed4 _Debug;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float4 scrPos: TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.scrPos = ComputeScreenPos(o.pos);
|
||||
o.scrPos.y = o.scrPos.w * _Flip.x + o.scrPos.y * _Flip.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 outline = tex2Dproj(_HPComposeOutlineFinal, i.scrPos);
|
||||
fixed4 color = _Color;
|
||||
color.a *= outline.a;
|
||||
color = saturate(color);
|
||||
color += _Debug;
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
// Compose effect on camera target (full-screen blit)
|
||||
Pass
|
||||
{
|
||||
ZWrite Off
|
||||
ZTest Always //[_ZTest]
|
||||
Cull Off // [_Cull]
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
fixed4 _Color;
|
||||
float3 _Flip;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = UnityStereoScreenSpaceUVAdjust(v.uv, _MainTex_ST);
|
||||
o.uv.y = _Flip.x + o.uv.y * _Flip.y;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
//UNITY_SETUP_INSTANCE_ID(i);
|
||||
//UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); // Commandbuffers do not support Single Pass Instanced so we have to disable this
|
||||
fixed4 outline = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
fixed4 color = _Color;
|
||||
color = saturate(color);
|
||||
color.a *= outline.a;
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0a6de74b6cfa9440182f8f56e4a0e4f1
|
||||
timeCreated: 1544699251
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,89 @@
|
|||
Shader "HighlightPlus/Geometry/Glow" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Glow ("Glow", Vector) = (1, 0.025, 0.75, 0.5)
|
||||
_Glow2 ("Glow2", Vector) = (0.01, 1, 0.5, 0)
|
||||
_GlowColor ("Glow Color", Color) = (1,1,1)
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_GlowDirection("GlowDir", Vector) = (1,1,0)
|
||||
_Cull ("Cull Mode", Int) = 2
|
||||
_ConstantWidth ("Constant Width", Float) = 1
|
||||
_GlowZTest ("ZTest", Int) = 4
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+102" "RenderType"="Transparent" }
|
||||
|
||||
// Glow passes
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
Cull [_Cull]
|
||||
ZTest [_GlowZTest]
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float3 normal : NORMAL;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
fixed4 color : COLOR;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
float4 _Glow; // x = intensity, y = width, z = magic number 1, w = magic number 2
|
||||
float3 _Glow2; // x = outline width, y = glow speed, z = dither on/off
|
||||
fixed4 _GlowColor;
|
||||
float2 _GlowDirection;
|
||||
float _ConstantWidth;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
float4 pos = UnityObjectToClipPos(v.vertex);
|
||||
float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
|
||||
float2 offset = TransformViewToProjection(normalize(norm.xy));
|
||||
offset += _GlowDirection;
|
||||
float z = lerp(UNITY_Z_0_FAR_FROM_CLIPSPACE(pos.z), 2.0, UNITY_MATRIX_P[3][3]);
|
||||
z = _ConstantWidth * (z - 2.0) + 2.0;
|
||||
float outlineWidth = _Glow2.x;
|
||||
float animatedWidth = _Glow.y * (1.0 + 0.25 * sin(_Time.w * _Glow2.y));
|
||||
offset *= z * (outlineWidth + animatedWidth);
|
||||
pos.xy += offset;
|
||||
o.pos = pos;
|
||||
o.color = _GlowColor;
|
||||
o.color.a = _Glow.x;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 color = i.color;
|
||||
float2 screenPos = floor( i.pos.xy * _Glow.z ) * _Glow.w;
|
||||
color.a *= saturate(_Glow2.z + frac(screenPos.x + screenPos.y));
|
||||
return color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 049d9e75e07674a78a703cf1203c07dd
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,85 @@
|
|||
Shader "HighlightPlus/Geometry/InnerGlow" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1,1)
|
||||
_Width ("Width", Float) = 1.0
|
||||
_CutOff("CutOff", Float ) = 0.5
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+122" "RenderType"="Transparent" }
|
||||
|
||||
// Inner Glow
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp Equal
|
||||
Pass keep
|
||||
}
|
||||
Blend SrcAlpha One
|
||||
ZWrite Off
|
||||
Offset -1, -1
|
||||
ZTest [_InnerGlowZTest]
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile _ HP_ALPHACLIP
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
float3 normal : NORMAL;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
float3 wpos : TEXCOORD1;
|
||||
float3 normal : NORMAL;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
sampler _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
fixed _CutOff;
|
||||
fixed4 _Color;
|
||||
fixed _Width;
|
||||
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.wpos = mul(unity_ObjectToWorld, v.vertex).xyz;
|
||||
o.normal = UnityObjectToWorldNormal(v.normal);
|
||||
o.uv = TRANSFORM_TEX (v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
#if HP_ALPHACLIP
|
||||
fixed4 color = tex2D(_MainTex, i.uv);
|
||||
clip(color.a - _CutOff);
|
||||
#endif
|
||||
|
||||
float3 viewDir = normalize(i.wpos - _WorldSpaceCameraPos.xyz);
|
||||
fixed dx = saturate(_Width - abs(dot(viewDir, normalize(i.normal)))) / _Width;
|
||||
fixed4 col = _Color * dx;
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e5a069457bd344391acd5af227c0ce11
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,75 @@
|
|||
Shader "HighlightPlus/Geometry/Mask" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_CutOff("CutOff", Float ) = 0.5
|
||||
_Cull ("Cull Mode", Int) = 2
|
||||
_ZTest("ZTest", Int) = 4
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
||||
|
||||
// Create mask
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp always
|
||||
Pass replace
|
||||
}
|
||||
ColorMask 0
|
||||
ZWrite Off
|
||||
// Offset -1, -1
|
||||
Cull [_Cull] // default Cull Back improves glow in high quality)
|
||||
ZTest [_ZTest]
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile _ HP_ALPHACLIP
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainTex_TexelSize;
|
||||
fixed _CutOff;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX (v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
#if HP_ALPHACLIP
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
clip(col.a - _CutOff);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e694fa934b6db4a00b8d4b9887115332
|
||||
timeCreated: 1544699251
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,59 @@
|
|||
Shader "HighlightPlus/Geometry/SeeThroughOccluder" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
||||
|
||||
// Create mask
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp always
|
||||
Pass replace
|
||||
}
|
||||
ColorMask 0
|
||||
ZWrite Off
|
||||
Cull Off
|
||||
ZTest Always
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 229baf997355a43cda580dd4cf86b71e
|
||||
timeCreated: 1544699251
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,76 @@
|
|||
Shader "HighlightPlus/Geometry/Outline" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||
_OutlineWidth ("Outline Offset", Float) = 0.01
|
||||
_OutlineDirection("Outline Direction", Vector) = (0,0,0)
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_Cull ("Cull Mode", Int) = 2
|
||||
_ConstantWidth ("Constant Width", Float) = 1
|
||||
_OutlineZTest("ZTest", Int) = 4
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+120" "RenderType"="Transparent" }
|
||||
|
||||
// Outline
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass replace
|
||||
}
|
||||
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
Cull [_Cull]
|
||||
ZTest [_OutlineZTest]
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float3 normal : NORMAL;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
fixed4 _OutlineColor;
|
||||
float _OutlineWidth;
|
||||
float2 _OutlineDirection;
|
||||
float _ConstantWidth;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
|
||||
float2 offset = TransformViewToProjection(normalize(norm.xy));
|
||||
float z = lerp(UNITY_Z_0_FAR_FROM_CLIPSPACE(o.pos.z), 2.0, UNITY_MATRIX_P[3][3]);
|
||||
z = _ConstantWidth * (z - 2.0) + 2.0;
|
||||
o.pos.xy += offset * z * _OutlineWidth + _OutlineDirection * z;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return _OutlineColor;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cbbf740e9c8644e8492d08b1a3fd0203
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,79 @@
|
|||
Shader "HighlightPlus/Geometry/Overlay" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1,1)
|
||||
_OverlayBackColor ("Overlay Back Color", Color) = (1,1,1,1)
|
||||
_OverlayData("Overlay Data", Vector) = (1,0.5,1)
|
||||
_CutOff("CutOff", Float ) = 0.5
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+121" "RenderType"="Transparent" }
|
||||
|
||||
// Overlay
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp Equal
|
||||
Pass keep
|
||||
}
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
Offset -1, -1
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile _ HP_ALPHACLIP
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
fixed4 _Color;
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
fixed4 _OverlayBackColor;
|
||||
fixed3 _OverlayData; // x = speed, y = MinIntensity, z = blend;
|
||||
fixed _CutOff;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX (v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 color = tex2D(_MainTex, i.uv);
|
||||
#if HP_ALPHACLIP
|
||||
clip(color.a - _CutOff);
|
||||
#endif
|
||||
fixed t = _OverlayData.y + (1.0 - _OverlayData.y) * 2.0 * abs(0.5 - frac(_Time.y * _OverlayData.x));
|
||||
fixed4 col = lerp(_Color, color * _OverlayBackColor * _Color, _OverlayData.z);
|
||||
col.a *= t;
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d17a98d19ada34bb7b4f86130e590159
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,76 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: HighlightPlusDepthWrite
|
||||
m_Shader: {fileID: 4800000, guid: 058a572e30b2d446bade2dda32bcef0f, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 825cb444e111842cf97788cbb7583edd
|
||||
timeCreated: 1546857910
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,81 @@
|
|||
Shader "HighlightPlus/Geometry/SeeThrough" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_SeeThrough ("See Through", Range(0,1)) = 0.8
|
||||
_SeeThroughTintColor ("See Through Tint Color", Color) = (1,0,0,0.8)
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_CutOff("CutOff", Float ) = 0.5
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+101" "RenderType"="Transparent" }
|
||||
|
||||
// See through effect
|
||||
Pass
|
||||
{
|
||||
Stencil {
|
||||
Ref 2
|
||||
Comp NotEqual
|
||||
Pass keep
|
||||
}
|
||||
ZTest Always
|
||||
ZWrite Off
|
||||
// Cull Off
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile _ HP_ALPHACLIP
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
fixed _SeeThrough;
|
||||
fixed4 _SeeThroughTintColor;
|
||||
fixed _CutOff;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
#if HP_ALPHACLIP
|
||||
clip(col.a - _CutOff);
|
||||
#endif
|
||||
col.rgb = lerp(col.rgb, _SeeThroughTintColor.rgb, _SeeThroughTintColor.a);
|
||||
float scry = i.pos.y;
|
||||
col.rgb += frac( scry * _Time.w ) * 0.1;
|
||||
col.a = _SeeThrough;
|
||||
col.a *= (scry % 2) - 1.0;
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 47198bbf0b2a44882aceef6af17a467d
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,67 @@
|
|||
Shader "HighlightPlus/Geometry/SolidColor" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||
_CutOff("CutOff", Float ) = 0.5
|
||||
_Cull ("Cull Mode", Int) = 2
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
||||
|
||||
// Compose effect on camera target
|
||||
Pass
|
||||
{
|
||||
ZWrite Off
|
||||
Cull [_Cull]
|
||||
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile _ HP_ALPHACLIP
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
sampler _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
fixed _CutOff;
|
||||
fixed4 _Color;
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos: SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX (v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
#if HP_ALPHACLIP
|
||||
fixed4 col = tex2D(_MainTex, i.uv);
|
||||
clip(col.a - _CutOff);
|
||||
#endif
|
||||
return fixed4(1.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 77643996218224478a471439e0ea5fb4
|
||||
timeCreated: 1544699251
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,59 @@
|
|||
Shader "HighlightPlus/Geometry/Target" {
|
||||
Properties {
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
_Color ("Color", Color) = (1,1,1,1)
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue"="Transparent+123" "RenderType"="Transparent" }
|
||||
|
||||
// Overlay
|
||||
Pass
|
||||
{
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
ZWrite Off
|
||||
ZTest Always
|
||||
Cull Off
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float4 pos : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
fixed4 _Color;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||
o.pos = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = v.uv;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
return tex2D(_MainTex, i.uv) * _Color;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 54328cae8f89d442da972097ce4f23d9
|
||||
timeCreated: 1544699250
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
|
@ -0,0 +1,100 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1de3c566a6c8c405b9f6f453137273ec
|
||||
timeCreated: 1555360741
|
||||
licenseType: Store
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 89ce39cd6bb34454bbaf48f1d111f236
|
||||
folderAsset: yes
|
||||
timeCreated: 1542876305
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 888380afc233049ce9e618f9f36c8ba8
|
||||
timeCreated: 1545593776
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 900
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,78 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
|
||||
public partial class HighlightEffect : MonoBehaviour {
|
||||
|
||||
bool overlayOneShotRunning = false;
|
||||
bool currentHighlighted;
|
||||
Color overlayOneShotCurrentColor;
|
||||
float overlayOneShotCurrentAnimationSpeed, overlayOneShotCurrentOverlay;
|
||||
float overlayOneShotCurrentOuterGlow, overlayOneShotCurrentInnerGlow, overlayOneShotCurrentOutline, overlayOneShotCurrentSeeThroughIntensity;
|
||||
Coroutine overlayOneShotCo;
|
||||
|
||||
public void OverlayOneShot (Color color, float duration) {
|
||||
if (duration == 0)
|
||||
return;
|
||||
|
||||
if (overlayOneShotRunning) {
|
||||
OverlayOneShotEnd ();
|
||||
StopCoroutine (overlayOneShotCo);
|
||||
}
|
||||
overlayOneShotRunning = true;
|
||||
overlayOneShotCurrentOverlay = overlay;
|
||||
overlayOneShotCurrentColor = overlayColor;
|
||||
overlayOneShotCurrentAnimationSpeed = overlayAnimationSpeed;
|
||||
overlayOneShotCurrentOuterGlow = glow;
|
||||
overlayOneShotCurrentInnerGlow = innerGlow;
|
||||
overlayOneShotCurrentOutline = outline;
|
||||
overlayOneShotCurrentSeeThroughIntensity = seeThroughIntensity;
|
||||
currentHighlighted = _highlighted;
|
||||
if (!currentHighlighted) {
|
||||
glow = innerGlow = outline = seeThroughIntensity = 0;
|
||||
}
|
||||
|
||||
overlayOneShotCo = StartCoroutine (OverlayOneShotAnimator (color, duration));
|
||||
}
|
||||
|
||||
IEnumerator OverlayOneShotAnimator (Color color, float duration) {
|
||||
overlayAnimationSpeed = 0;
|
||||
|
||||
float startTime = Time.time;
|
||||
float t = 1f;
|
||||
highlighted = true;
|
||||
overlayColor = color;
|
||||
overlayAnimationSpeed = 0;
|
||||
WaitForEndOfFrame ef = new WaitForEndOfFrame ();
|
||||
while (t > 0f) {
|
||||
t = 1f - (Time.time - startTime) / duration;
|
||||
if (t < 0) {
|
||||
t = 0f;
|
||||
}
|
||||
overlay = t;
|
||||
yield return ef;
|
||||
}
|
||||
|
||||
OverlayOneShotEnd ();
|
||||
}
|
||||
|
||||
void OverlayOneShotEnd() {
|
||||
overlay = overlayOneShotCurrentOverlay;
|
||||
overlayColor = overlayOneShotCurrentColor;
|
||||
overlayAnimationSpeed = overlayOneShotCurrentAnimationSpeed;
|
||||
if (!currentHighlighted) {
|
||||
glow = overlayOneShotCurrentOuterGlow;
|
||||
innerGlow = overlayOneShotCurrentInnerGlow;
|
||||
outline = overlayOneShotCurrentOutline;
|
||||
seeThroughIntensity = overlayOneShotCurrentSeeThroughIntensity;
|
||||
highlighted = false;
|
||||
}
|
||||
overlayOneShotRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e749f80d0d29a49d49d6e0f4752065cd
|
||||
timeCreated: 1542876337
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[RequireComponent (typeof(HighlightEffect))]
|
||||
[HelpURL("https://kronnect.freshdesk.com/support/solutions/42000065090")]
|
||||
public class HighlightManager : MonoBehaviour {
|
||||
public LayerMask layerMask = -1;
|
||||
public Camera raycastCamera;
|
||||
public RayCastSource raycastSource = RayCastSource.MousePosition;
|
||||
|
||||
HighlightEffect baseEffect, currentEffect;
|
||||
Transform currentObject;
|
||||
|
||||
void OnEnable () {
|
||||
currentObject = null;
|
||||
currentEffect = null;
|
||||
if (baseEffect == null) {
|
||||
baseEffect = GetComponent<HighlightEffect> ();
|
||||
if (baseEffect == null) {
|
||||
baseEffect = gameObject.AddComponent<HighlightEffect> ();
|
||||
}
|
||||
}
|
||||
raycastCamera = GetComponent<Camera> ();
|
||||
if (raycastCamera == null) {
|
||||
raycastCamera = GetCamera ();
|
||||
if (raycastCamera == null) {
|
||||
Debug.LogError ("Highlight Manager: no camera found!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OnDisable () {
|
||||
SwitchesCollider (null);
|
||||
}
|
||||
|
||||
void Update () {
|
||||
if (raycastCamera == null)
|
||||
return;
|
||||
Ray ray;
|
||||
if (raycastSource == RayCastSource.MousePosition) {
|
||||
ray = raycastCamera.ScreenPointToRay (Input.mousePosition);
|
||||
} else {
|
||||
ray = new Ray (raycastCamera.transform.position, raycastCamera.transform.forward);
|
||||
}
|
||||
RaycastHit hitInfo;
|
||||
if (Physics.Raycast (ray, out hitInfo, raycastCamera.farClipPlane, layerMask)) {
|
||||
// Check if the object has a Highlight Effect
|
||||
if (hitInfo.collider != currentObject) {
|
||||
SwitchesCollider (hitInfo.collider.transform);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// no hit
|
||||
SwitchesCollider (null);
|
||||
}
|
||||
|
||||
void SwitchesCollider (Transform newObject) {
|
||||
if (currentEffect != null) {
|
||||
currentEffect.SetHighlighted (false);
|
||||
currentEffect = null;
|
||||
}
|
||||
currentObject = newObject;
|
||||
if (newObject == null) return;
|
||||
HighlightTrigger ht = newObject.GetComponent<HighlightTrigger>();
|
||||
if (ht != null && ht.enabled)
|
||||
return;
|
||||
|
||||
HighlightEffect otherEffect = newObject.GetComponent<HighlightEffect> ();
|
||||
currentEffect = otherEffect != null ? otherEffect : baseEffect;
|
||||
currentEffect.SetTarget (currentObject.transform);
|
||||
currentEffect.SetHighlighted (true);
|
||||
}
|
||||
|
||||
public static Camera GetCamera() {
|
||||
Camera raycastCamera = Camera.main;
|
||||
if (raycastCamera == null) {
|
||||
raycastCamera = FindObjectOfType<Camera> ();
|
||||
}
|
||||
return raycastCamera;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: af4d46fd89b9543e5be2358ac0c9ced0
|
||||
timeCreated: 1542876337
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,177 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[CreateAssetMenu (menuName = "Highlight Plus Profile", fileName = "Highlight Plus Profile", order = 100)]
|
||||
[HelpURL ("https://kronnect.freshdesk.com/support/solutions/42000065090")]
|
||||
public class HighlightProfile : ScriptableObject {
|
||||
|
||||
public TargetOptions effectGroup = TargetOptions.Children;
|
||||
public LayerMask effectGroupLayer = -1;
|
||||
[Range(0,1)]
|
||||
public float alphaCutOff = 0;
|
||||
public bool cullBackFaces = true;
|
||||
|
||||
public float fadeInDuration;
|
||||
public float fadeOutDuration;
|
||||
|
||||
[Range (0, 1)]
|
||||
public float overlay = 0.5f;
|
||||
public Color overlayColor = Color.yellow;
|
||||
public float overlayAnimationSpeed = 1f;
|
||||
[Range (0, 1)]
|
||||
public float overlayMinIntensity = 0.5f;
|
||||
[Range (0, 1)]
|
||||
public float overlayBlending = 1.0f;
|
||||
|
||||
[Range (0, 1)]
|
||||
public float outline = 1f;
|
||||
public Color outlineColor = Color.black;
|
||||
public float outlineWidth = 0.45f;
|
||||
public QualityLevel outlineQuality = QualityLevel.Fastest;
|
||||
public bool outlineAlwaysOnTop;
|
||||
|
||||
[Range (0, 5)]
|
||||
public float glow = 1f;
|
||||
public float glowWidth = 0.4f;
|
||||
public QualityLevel glowQuality = QualityLevel.Fastest;
|
||||
public Color glowHQColor = new Color (0.64f, 1f, 0f, 1f);
|
||||
public bool glowDithering = true;
|
||||
public float glowMagicNumber1 = 0.75f;
|
||||
public float glowMagicNumber2 = 0.5f;
|
||||
public float glowAnimationSpeed = 1f;
|
||||
public bool glowAlwaysOnTop;
|
||||
public GlowPassData[] glowPasses;
|
||||
|
||||
[Range (0, 5f)]
|
||||
public float innerGlow = 0f;
|
||||
[Range (0, 2)]
|
||||
public float innerGlowWidth = 1f;
|
||||
public Color innerGlowColor = Color.white;
|
||||
public bool innerGlowAlwaysOnTop;
|
||||
|
||||
public bool targetFX;
|
||||
public Texture2D targetFXTexture;
|
||||
public Color targetFXColor = Color.white;
|
||||
public float targetFXRotationSpeed = 50f;
|
||||
public float targetFXInitialScale = 4f;
|
||||
public float targetFXEndScale = 1.5f;
|
||||
public float targetFXTransitionDuration = 0.5f;
|
||||
public float targetFXStayDuration = 1.5f;
|
||||
|
||||
public SeeThroughMode seeThrough;
|
||||
[Range (0, 5f)]
|
||||
public float seeThroughIntensity = 0.8f;
|
||||
[Range (0, 1)]
|
||||
public float seeThroughTintAlpha = 0.5f;
|
||||
public Color seeThroughTintColor = Color.red;
|
||||
|
||||
|
||||
public void Load (HighlightEffect effect) {
|
||||
effect.effectGroup = effectGroup;
|
||||
effect.effectGroupLayer = effectGroupLayer;
|
||||
effect.alphaCutOff = alphaCutOff;
|
||||
effect.cullBackFaces = cullBackFaces;
|
||||
effect.fadeInDuration = fadeInDuration;
|
||||
effect.fadeOutDuration = fadeOutDuration;
|
||||
effect.overlay = overlay;
|
||||
effect.overlayColor = overlayColor;
|
||||
effect.overlayAnimationSpeed = overlayAnimationSpeed;
|
||||
effect.overlayMinIntensity = overlayMinIntensity;
|
||||
effect.overlayBlending = overlayBlending;
|
||||
effect.outline = outline;
|
||||
effect.outlineColor = outlineColor;
|
||||
effect.outlineWidth = outlineWidth;
|
||||
effect.outlineQuality = outlineQuality;
|
||||
effect.outlineAlwaysOnTop = outlineAlwaysOnTop;
|
||||
effect.glow = glow;
|
||||
effect.glowWidth = glowWidth;
|
||||
effect.glowQuality = glowQuality;
|
||||
effect.glowHQColor = glowHQColor;
|
||||
effect.glowDithering = glowDithering;
|
||||
effect.glowMagicNumber1 = glowMagicNumber1;
|
||||
effect.glowMagicNumber2 = glowMagicNumber2;
|
||||
effect.glowAnimationSpeed = glowAnimationSpeed;
|
||||
effect.glowAlwaysOnTop = glowAlwaysOnTop;
|
||||
effect.glowPasses = GetGlowPassesCopy (glowPasses);
|
||||
effect.innerGlow = innerGlow;
|
||||
effect.innerGlowWidth = innerGlowWidth;
|
||||
effect.innerGlowColor = innerGlowColor;
|
||||
effect.innerGlowAlwaysOnTop = innerGlowAlwaysOnTop;
|
||||
effect.targetFX = targetFX;
|
||||
effect.targetFXColor = targetFXColor;
|
||||
effect.targetFXEndScale = targetFXEndScale;
|
||||
effect.targetFXInitialScale = targetFXInitialScale;
|
||||
effect.targetFXRotationSpeed = targetFXRotationSpeed;
|
||||
effect.targetFXStayDuration = targetFXStayDuration;
|
||||
effect.targetFXTexture = targetFXTexture;
|
||||
effect.targetFXTransitionDuration = targetFXTransitionDuration;
|
||||
effect.seeThrough = seeThrough;
|
||||
effect.seeThroughIntensity = seeThroughIntensity;
|
||||
effect.seeThroughTintAlpha = seeThroughTintAlpha;
|
||||
effect.seeThroughTintColor = seeThroughTintColor;
|
||||
}
|
||||
|
||||
public void Save (HighlightEffect effect) {
|
||||
effectGroup = effect.effectGroup;
|
||||
effectGroupLayer = effect.effectGroupLayer;
|
||||
alphaCutOff = effect.alphaCutOff;
|
||||
cullBackFaces = effect.cullBackFaces;
|
||||
fadeInDuration = effect.fadeInDuration;
|
||||
fadeOutDuration = effect.fadeOutDuration;
|
||||
overlay = effect.overlay;
|
||||
overlayColor = effect.overlayColor;
|
||||
overlayAnimationSpeed = effect.overlayAnimationSpeed;
|
||||
overlayMinIntensity = effect.overlayMinIntensity;
|
||||
overlayBlending = effect.overlayBlending;
|
||||
outline = effect.outline;
|
||||
outlineColor = effect.outlineColor;
|
||||
outlineWidth = effect.outlineWidth;
|
||||
outlineQuality = effect.outlineQuality;
|
||||
outlineAlwaysOnTop = effect.outlineAlwaysOnTop;
|
||||
glow = effect.glow;
|
||||
glowWidth = effect.glowWidth;
|
||||
glowQuality = effect.glowQuality;
|
||||
glowHQColor = effect.glowHQColor;
|
||||
glowDithering = effect.glowDithering;
|
||||
glowMagicNumber1 = effect.glowMagicNumber1;
|
||||
glowMagicNumber2 = effect.glowMagicNumber2;
|
||||
glowAnimationSpeed = effect.glowAnimationSpeed;
|
||||
glowAlwaysOnTop = effect.glowAlwaysOnTop;
|
||||
glowPasses = GetGlowPassesCopy (effect.glowPasses);
|
||||
innerGlow = effect.innerGlow;
|
||||
innerGlowWidth = effect.innerGlowWidth;
|
||||
innerGlowColor = effect.innerGlowColor;
|
||||
innerGlowAlwaysOnTop = effect.innerGlowAlwaysOnTop;
|
||||
targetFX = effect.targetFX;
|
||||
targetFXColor = effect.targetFXColor;
|
||||
targetFXEndScale = effect.targetFXEndScale;
|
||||
targetFXInitialScale = effect.targetFXInitialScale;
|
||||
targetFXRotationSpeed = effect.targetFXRotationSpeed;
|
||||
targetFXStayDuration = effect.targetFXStayDuration;
|
||||
targetFXTexture = effect.targetFXTexture;
|
||||
targetFXTransitionDuration = effect.targetFXTransitionDuration;
|
||||
seeThrough = effect.seeThrough;
|
||||
seeThroughIntensity = effect.seeThroughIntensity;
|
||||
seeThroughTintAlpha = effect.seeThroughTintAlpha;
|
||||
seeThroughTintColor = effect.seeThroughTintColor;
|
||||
}
|
||||
|
||||
GlowPassData[] GetGlowPassesCopy (GlowPassData[] glowPasses) {
|
||||
if (glowPasses == null) {
|
||||
return new GlowPassData[0];
|
||||
}
|
||||
GlowPassData[] pd = new GlowPassData[glowPasses.Length];
|
||||
for (int k = 0; k < glowPasses.Length; k++) {
|
||||
pd [k].alpha = glowPasses [k].alpha;
|
||||
pd [k].color = glowPasses [k].color;
|
||||
pd [k].offset = glowPasses [k].offset;
|
||||
}
|
||||
return pd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8e9253636bf2648bd813257f451f8486
|
||||
timeCreated: 1549831900
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
[RequireComponent (typeof(HighlightEffect))]
|
||||
[HelpURL ("https://kronnect.freshdesk.com/support/solutions/42000065090")]
|
||||
[ExecuteInEditMode]
|
||||
public class HighlightSeeThroughOccluder : MonoBehaviour {
|
||||
|
||||
HighlightEffect effect;
|
||||
|
||||
void Awake () {
|
||||
effect = GetComponent<HighlightEffect> ();
|
||||
}
|
||||
|
||||
void Update () {
|
||||
effect.RenderOccluder ();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8dd965ceab19c4729a9dabd8aeb2972a
|
||||
timeCreated: 1542876337
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,147 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HighlightPlus {
|
||||
|
||||
public enum TriggerMode {
|
||||
ColliderEventsOnlyOnThisObject = 0,
|
||||
RaycastOnThisObjectAndChildren = 1
|
||||
}
|
||||
|
||||
public enum RayCastSource {
|
||||
MousePosition = 0,
|
||||
CameraDirection = 1
|
||||
}
|
||||
|
||||
|
||||
[RequireComponent (typeof(HighlightEffect))]
|
||||
[HelpURL ("https://kronnect.freshdesk.com/support/solutions/42000065090")]
|
||||
[ExecuteInEditMode]
|
||||
public class HighlightTrigger : MonoBehaviour {
|
||||
|
||||
[Tooltip ("Used to trigger automatic highlighting including children objects.")]
|
||||
public TriggerMode triggerMode = TriggerMode.ColliderEventsOnlyOnThisObject;
|
||||
public Camera raycastCamera;
|
||||
public RayCastSource raycastSource = RayCastSource.MousePosition;
|
||||
|
||||
const int MAX_RAYCAST_HITS = 100;
|
||||
|
||||
[NonSerialized]
|
||||
public Collider[] colliders;
|
||||
Collider currentCollider;
|
||||
static RaycastHit[] hits;
|
||||
|
||||
void OnEnable () {
|
||||
Init ();
|
||||
}
|
||||
|
||||
|
||||
void Start () {
|
||||
if (triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||
if (raycastCamera == null) {
|
||||
raycastCamera = HighlightManager.GetCamera ();
|
||||
if (raycastCamera == null) {
|
||||
Debug.LogError ("Highlight Trigger on " + gameObject.name + ": no camera found!");
|
||||
}
|
||||
}
|
||||
if (colliders != null && colliders.Length > 0) {
|
||||
hits = new RaycastHit[MAX_RAYCAST_HITS];
|
||||
StartCoroutine (DoRayCast ());
|
||||
}
|
||||
} else {
|
||||
Collider collider = GetComponent<Collider> ();
|
||||
if (collider == null) {
|
||||
if (GetComponent<MeshFilter> () != null) {
|
||||
gameObject.AddComponent<MeshCollider> ();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
IEnumerator DoRayCast () {
|
||||
while (triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||
if (raycastCamera != null) {
|
||||
Ray ray;
|
||||
if (raycastSource == RayCastSource.MousePosition) {
|
||||
ray = raycastCamera.ScreenPointToRay (Input.mousePosition);
|
||||
} else {
|
||||
ray = new Ray (raycastCamera.transform.position, raycastCamera.transform.forward);
|
||||
}
|
||||
int hitCount = Physics.RaycastNonAlloc (ray, hits);
|
||||
bool hit = false;
|
||||
for (int k = 0; k < hitCount; k++) {
|
||||
Collider theCollider = hits [k].collider;
|
||||
for (int c = 0; c < colliders.Length; c++) {
|
||||
if (colliders [c] == theCollider) {
|
||||
hit = true;
|
||||
if (theCollider != currentCollider) {
|
||||
SwitchCollider (theCollider);
|
||||
k = hitCount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!hit && currentCollider != null) {
|
||||
SwitchCollider (null);
|
||||
}
|
||||
}
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SwitchCollider (Collider newCollider) {
|
||||
currentCollider = newCollider;
|
||||
if (currentCollider != null) {
|
||||
Highlight (true);
|
||||
} else {
|
||||
Highlight (false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OnMouseDown () {
|
||||
if (isActiveAndEnabled && triggerMode == TriggerMode.ColliderEventsOnlyOnThisObject) {
|
||||
Highlight (true);
|
||||
}
|
||||
}
|
||||
|
||||
void OnMouseEnter () {
|
||||
if (isActiveAndEnabled && triggerMode == TriggerMode.ColliderEventsOnlyOnThisObject) {
|
||||
Highlight (true);
|
||||
}
|
||||
}
|
||||
|
||||
void OnMouseExit () {
|
||||
if (isActiveAndEnabled && triggerMode == TriggerMode.ColliderEventsOnlyOnThisObject) {
|
||||
Highlight (false);
|
||||
}
|
||||
}
|
||||
|
||||
void Highlight (bool state) {
|
||||
HighlightEffect hb = transform.GetComponent<HighlightEffect> ();
|
||||
if (hb == null && state) {
|
||||
hb = gameObject.AddComponent<HighlightEffect> ();
|
||||
}
|
||||
if (hb != null) {
|
||||
hb.SetHighlighted (state);
|
||||
}
|
||||
}
|
||||
|
||||
public void Init() {
|
||||
if (raycastCamera == null) {
|
||||
raycastCamera = HighlightManager.GetCamera ();
|
||||
}
|
||||
if (triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||
colliders = GetComponentsInChildren<Collider> ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5009cbb7e54994bb586cde7a70f34e6b
|
||||
timeCreated: 1542876337
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,105 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6a7c73913da678c4faa9695982478aa7
|
||||
ModelImporter:
|
||||
serializedVersion: 21202
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 0
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 1
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a9539463ee955bf4c8c97b3237082f57
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,18 +1,5 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2266839125569968019
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 5
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -20,24 +7,19 @@ Material:
|
|||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: red
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Name: 01 - Default
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
|
@ -74,53 +56,25 @@ Material:
|
|||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 0.3443396, b: 0.3443396, a: 1}
|
||||
- _Color: {r: 1, g: 0.3443396, b: 0.3443396, a: 1}
|
||||
- _Color: {r: 0.79073066, g: 0.79073066, b: 0.79073066, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 97a828017976c494587ff1abbcddbe8e
|
||||
guid: e5d7309f18e750d43af1c441d8931806
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
|
@ -1,18 +1,5 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2220320003863287725
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 5
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -20,24 +7,19 @@ Material:
|
|||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: blue
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Name: Material #92
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
|
@ -74,53 +56,25 @@ Material:
|
|||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.4575472, g: 0.6283821, b: 1, a: 1}
|
||||
- _Color: {r: 0.4575472, g: 0.6283821, b: 1, a: 1}
|
||||
- _Color: {r: 0.79058963, g: 0.79058963, b: 0.79058963, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1c05b7839dc9a604a88f6f41be5d45c1
|
||||
guid: db310efb04a9da44baed7af387a1570d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
|
@ -0,0 +1,82 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: boli
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 0.8741656, g: 0.9592555, b: 0.94824237, a: 0.5}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 84837c82d658f704e9cc0f442b0712a6
|
||||
guid: ae3c863abce33df4f82993094cfcdba5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
|
@ -1,18 +1,5 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2925541887809263535
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 5
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
|
@ -20,24 +7,19 @@ Material:
|
|||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: white
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Name: dz
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
|
@ -59,7 +41,7 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Texture: {fileID: 2800000, guid: c3fce7dc0ff1cb34f98b738baac01b34, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
|
@ -74,53 +56,25 @@ Material:
|
|||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 976c7daa296d8504f860eb6e48b72f56
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_01
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 4493e7451d8ad39499cb41c772d6bff4, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 49f310e828e7d4749889b27b530c96e9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_02
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 69c14262d5b962a4085f06e670e2faf5, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 27de73afa58a34d419bc82e6514e4ce5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_03
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 61a6430b4a5f02f4eb21ee2397deea9b, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9f4daf38a5f2c16439921487d79c22e8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_04
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 7f5082792022e574cbb127ef65ad48ec, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7141878216b000b489739bf9b4648bb0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_06
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 550c847d2e73672458ddf5a3ab71c75a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 79f22f20ef81a45449931f6f3cd7fbe6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_09
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: a8b009c0b78309c46b4cd12b02bac174, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5f898dbc263bbb14b83e9699eaf882a5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_10
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: f1cd9644fcd1cf04eb8e28100ac9b382, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 50ce5a2a3f16a5e40ae7a0badcb7f890
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gq_100
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 07ab31d5ed0dcee4590aa3e1655bf399, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 948658cae9d340d41babbee72edef5bc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue