update
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d13838561dba474cb884bd76b82cec6
|
||||
folderAsset: yes
|
||||
timeCreated: 1460038122
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,185 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &106114
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 428982}
|
||||
- component: {fileID: 8206458}
|
||||
- component: {fileID: 11444172}
|
||||
m_Layer: 0
|
||||
m_Name: AudioSource
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &428982
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 106114}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &8206458
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 106114}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 0
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 0
|
||||
DopplerLevel: 0
|
||||
MinDistance: 0.1
|
||||
MaxDistance: 20
|
||||
Pan2D: 0
|
||||
rolloffMode: 2
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0.05
|
||||
value: 1
|
||||
inSlope: -20.007967
|
||||
outSlope: -20.007967
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.1
|
||||
value: 0.5
|
||||
inSlope: -5.0019917
|
||||
outSlope: -5.0019917
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.2
|
||||
value: 0.25
|
||||
inSlope: -1.2504979
|
||||
outSlope: -1.2504979
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.4
|
||||
value: 0.125
|
||||
inSlope: -0.31262448
|
||||
outSlope: -0.31262448
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 0.80598146
|
||||
value: 0.022888184
|
||||
inSlope: -0.07815612
|
||||
outSlope: -0.07815612
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0.0015991218
|
||||
inSlope: -0.05001994
|
||||
outSlope: -0.05001994
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
--- !u!114 &11444172
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 106114}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd39039863a63e48ad1e9260ed01bc8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
openCloseEvents: 0
|
||||
openCloseWindow: 0
|
||||
selectedToolbar: 0
|
||||
delay: 3
|
||||
onDestroy:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfea19d1d34dd174d87195f78cb44ae7
|
||||
timeCreated: 1460037360
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f16e54550ff12642b5ff236d602146b
|
||||
folderAsset: yes
|
||||
timeCreated: 1458925403
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: af1c89896f5f7f6439ef1a93a23a0f3d, type: 3}
|
||||
m_Name: defaultSurface
|
||||
m_EditorClassIdentifier:
|
||||
audioSource: {fileID: 8206458, guid: dfea19d1d34dd174d87195f78cb44ae7, type: 3}
|
||||
audioMixerGroup: {fileID: 24352844, guid: a63f18b704a1b874a8dad30baf0939e6, type: 2}
|
||||
TextureOrMaterialNames: []
|
||||
audioClips:
|
||||
- {fileID: 8300000, guid: 375af61fe5c06774084832c408e31683, type: 3}
|
||||
- {fileID: 8300000, guid: 229c64ed39310624c9aada3d771c7b06, type: 3}
|
||||
- {fileID: 8300000, guid: 1f866668884214b4db7140d25b0def17, type: 3}
|
||||
- {fileID: 8300000, guid: e5ae416f49602c1409e7c0d85ae0215c, type: 3}
|
||||
- {fileID: 8300000, guid: 169f75c2c9f5fae4c9147639256eb0c8, type: 3}
|
||||
- {fileID: 8300000, guid: 169f75c2c9f5fae4c9147639256eb0c8, type: 3}
|
||||
particleObject: {fileID: 135586, guid: 50016857087368141803f41af4837830, type: 3}
|
||||
useStepMark: 1
|
||||
stepMark: {fileID: 184202, guid: b8cf3efdf419ad74f8c0f66ab6418371, type: 3}
|
||||
stepLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
timeToDestroy: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 710c74baecce50746bd56b9711c851e7
|
||||
timeCreated: 1458347611
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,30 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: af1c89896f5f7f6439ef1a93a23a0f3d, type: 3}
|
||||
m_Name: grassSurface
|
||||
m_EditorClassIdentifier:
|
||||
audioSource: {fileID: 8206458, guid: dfea19d1d34dd174d87195f78cb44ae7, type: 2}
|
||||
audioMixerGroup: {fileID: 24329260, guid: a63f18b704a1b874a8dad30baf0939e6, type: 2}
|
||||
TextureOrMaterialNames:
|
||||
- grass
|
||||
- deadgrass
|
||||
audioClips:
|
||||
- {fileID: 8300000, guid: 1642d501db459a2408f8b9b45ea7e09f, type: 3}
|
||||
- {fileID: 8300000, guid: fe99b708869596346a35738043ba969f, type: 3}
|
||||
- {fileID: 8300000, guid: 77313b3ac9c75f545a7cce94bdc8c1a3, type: 3}
|
||||
- {fileID: 8300000, guid: 23f537bc838b6224a8b22680c3ec0477, type: 3}
|
||||
particleObject: {fileID: 0}
|
||||
useStepMark: 0
|
||||
stepMark: {fileID: 0}
|
||||
stepLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
timeToDestroy: 5
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 504809ebaf6b9ad49a8167ccc5e62729
|
||||
timeCreated: 1462397256
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,32 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: af1c89896f5f7f6439ef1a93a23a0f3d, type: 3}
|
||||
m_Name: gravelSurface
|
||||
m_EditorClassIdentifier:
|
||||
audioSource: {fileID: 8206458, guid: dfea19d1d34dd174d87195f78cb44ae7, type: 2}
|
||||
audioMixerGroup: {fileID: 24300002, guid: a63f18b704a1b874a8dad30baf0939e6, type: 2}
|
||||
TextureOrMaterialNames:
|
||||
- soilSand
|
||||
- gravel
|
||||
audioClips:
|
||||
- {fileID: 8300000, guid: 061f92917f3344e46a181210cd2be5f8, type: 3}
|
||||
- {fileID: 8300000, guid: e6b69fa3aa7d71543b631e73a8d4edaa, type: 3}
|
||||
- {fileID: 8300000, guid: 36b2a5a7f988c3a49a8dcb97c82f3055, type: 3}
|
||||
- {fileID: 8300000, guid: 763ef6481f64ff044b076930e3e76ba2, type: 3}
|
||||
- {fileID: 8300000, guid: 5cbf4dba6e3b40040938560663d850cc, type: 3}
|
||||
- {fileID: 8300000, guid: 325a507d48fda384fa119f766f5c51a7, type: 3}
|
||||
particleObject: {fileID: 0}
|
||||
useStepMark: 0
|
||||
stepMark: {fileID: 0}
|
||||
stepLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
timeToDestroy: 5
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4829d3f3f836f18438f3704d11f0eff4
|
||||
timeCreated: 1462397284
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
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: af1c89896f5f7f6439ef1a93a23a0f3d, type: 3}
|
||||
m_Name: metalSurface
|
||||
m_EditorClassIdentifier:
|
||||
audioSource: {fileID: 8206458, guid: dfea19d1d34dd174d87195f78cb44ae7, type: 3}
|
||||
audioMixerGroup: {fileID: 24304546, guid: a63f18b704a1b874a8dad30baf0939e6, type: 2}
|
||||
TextureOrMaterialNames:
|
||||
- metal
|
||||
- proto_orange
|
||||
audioClips:
|
||||
- {fileID: 8300000, guid: aa4a5fc2bf0743348943776816aa5a68, type: 3}
|
||||
- {fileID: 8300000, guid: b39d500728efec2468983e463e16d719, type: 3}
|
||||
- {fileID: 8300000, guid: 819a181928a16d64993eeba8d3b8c651, type: 3}
|
||||
- {fileID: 8300000, guid: b0b8cdcf5e784624990a0d61b230fd3e, type: 3}
|
||||
particleObject: {fileID: 0}
|
||||
useStepMark: 0
|
||||
stepMark: {fileID: 0}
|
||||
stepLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
timeToDestroy: 5
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 724313117c912804b936c9df9cbb57f5
|
||||
timeCreated: 1458925393
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: af1c89896f5f7f6439ef1a93a23a0f3d, type: 3}
|
||||
m_Name: smokes
|
||||
m_EditorClassIdentifier:
|
||||
audioSource: {fileID: 8206458, guid: dfea19d1d34dd174d87195f78cb44ae7, type: 2}
|
||||
audioMixerGroup: {fileID: 24352844, guid: a63f18b704a1b874a8dad30baf0939e6, type: 2}
|
||||
TextureOrMaterialNames: []
|
||||
audioClips:
|
||||
- {fileID: 8300000, guid: 375af61fe5c06774084832c408e31683, type: 3}
|
||||
- {fileID: 8300000, guid: 229c64ed39310624c9aada3d771c7b06, type: 3}
|
||||
- {fileID: 8300000, guid: 1f866668884214b4db7140d25b0def17, type: 3}
|
||||
- {fileID: 8300000, guid: e5ae416f49602c1409e7c0d85ae0215c, type: 3}
|
||||
- {fileID: 8300000, guid: 169f75c2c9f5fae4c9147639256eb0c8, type: 3}
|
||||
particleObject: {fileID: 135586, guid: 50016857087368141803f41af4837830, type: 2}
|
||||
useStepMark: 0
|
||||
stepMark: {fileID: 184202, guid: b8cf3efdf419ad74f8c0f66ab6418371, type: 2}
|
||||
stepLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
timeToDestroy: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 299ad2a44600d814ab0e18ebb35319a3
|
||||
timeCreated: 1458347611
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61a5e9afd0f89cd40a4519621878c5ce
|
||||
folderAsset: yes
|
||||
timeCreated: 1433611621
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,148 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections;
|
||||
namespace Invector
|
||||
{
|
||||
[CustomEditor(typeof(vAudioSurface), true)]
|
||||
public class AudioSurfaceEditor : UnityEditor.Editor
|
||||
{
|
||||
GUISkin skin;
|
||||
string[] ignoreProperties = new string[] { "TextureOrMaterialNames", "audioClips" };
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
if (!skin) skin = Resources.Load("vSkin") as GUISkin;
|
||||
GUI.skin = skin;
|
||||
|
||||
if (serializedObject == null) return;
|
||||
|
||||
GUILayout.BeginVertical("Audio Surface", "window");
|
||||
GUILayout.Space(30);
|
||||
|
||||
DrawSingleSurface(serializedObject, true);
|
||||
GUILayout.BeginVertical("box");
|
||||
GUILayout.Box("Optional Parameter", GUILayout.ExpandWidth(true));
|
||||
DrawPropertiesExcluding(serializedObject, ignoreProperties);
|
||||
|
||||
GUILayout.EndVertical();
|
||||
GUILayout.EndVertical();
|
||||
|
||||
if (GUI.changed)
|
||||
{
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
|
||||
void DrawSingleSurface(SerializedObject surface, bool showListNames)
|
||||
{
|
||||
if (showListNames)
|
||||
DrawSimpleList(surface.FindProperty("TextureOrMaterialNames"), false);
|
||||
DrawSimpleList(surface.FindProperty("audioClips"), true);
|
||||
}
|
||||
|
||||
void DrawSimpleList(SerializedProperty list, bool useDraBox)
|
||||
{
|
||||
var name = list.name;
|
||||
GUILayout.BeginVertical("box");
|
||||
GUILayout.Box(name, GUILayout.ExpandWidth(true));
|
||||
|
||||
switch (list.name)
|
||||
{
|
||||
case "TextureOrMaterialNames":
|
||||
name = "Texture or Material names";
|
||||
EditorGUILayout.HelpBox("Leave this field empty and assign to the defaultSurface to play on any surface or type a Material name and assign to a customSurface to play only when the sphere hit a mesh using it.", MessageType.Info);
|
||||
break;
|
||||
case "audioClips":
|
||||
EditorGUILayout.HelpBox("You can lock the inspector to drag and drop multiple audio files.", MessageType.Info);
|
||||
name = "Audio Clips";
|
||||
break;
|
||||
|
||||
}
|
||||
GUILayout.BeginVertical();
|
||||
GUILayout.BeginHorizontal();
|
||||
list.isExpanded=EditorGUILayout.Foldout( list.isExpanded ,list.displayName,true);
|
||||
//GUILayout.Box(list.arraySize.ToString("00"));
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
if (list.isExpanded)
|
||||
{
|
||||
if (useDraBox)
|
||||
DrawDragBox(list);
|
||||
EditorGUILayout.Separator();
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("Add"))
|
||||
{
|
||||
list.arraySize++;
|
||||
}
|
||||
if (GUILayout.Button("Clear"))
|
||||
{
|
||||
list.arraySize = 0;
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
for (int i = 0; i < list.arraySize; i++)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("-"))
|
||||
{
|
||||
RemoveElementAtIndex(list, i);
|
||||
}
|
||||
|
||||
if (i < list.arraySize && i >= 0)
|
||||
EditorGUILayout.PropertyField(list.GetArrayElementAtIndex(i), new GUIContent("", null, ""));
|
||||
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
|
||||
private void RemoveElementAtIndex(SerializedProperty array, int index)
|
||||
{
|
||||
if (index != array.arraySize - 1)
|
||||
{
|
||||
array.GetArrayElementAtIndex(index).objectReferenceValue = array.GetArrayElementAtIndex(array.arraySize - 1).objectReferenceValue;
|
||||
}
|
||||
array.arraySize--;
|
||||
}
|
||||
|
||||
void DrawDragBox(SerializedProperty list)
|
||||
{
|
||||
//var dragAreaGroup = GUILayoutUtility.GetRect(0f, 35f, GUILayout.ExpandWidth(true));
|
||||
GUI.skin.box.alignment = TextAnchor.MiddleCenter;
|
||||
GUI.skin.box.normal.textColor = Color.white;
|
||||
//GUILayout.BeginVertical("window");
|
||||
GUILayout.Box("Drag your audio clips here!", "box", GUILayout.MinHeight(50), GUILayout.ExpandWidth(true));
|
||||
var dragAreaGroup = GUILayoutUtility.GetLastRect();
|
||||
//GUILayout.EndVertical();
|
||||
switch (Event.current.type)
|
||||
{
|
||||
case EventType.DragUpdated:
|
||||
case EventType.DragPerform:
|
||||
if (!dragAreaGroup.Contains(Event.current.mousePosition))
|
||||
break;
|
||||
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
|
||||
|
||||
if (Event.current.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.AcceptDrag();
|
||||
|
||||
foreach (var dragged in DragAndDrop.objectReferences)
|
||||
{
|
||||
var clip = dragged as AudioClip;
|
||||
if (clip == null)
|
||||
continue;
|
||||
list.arraySize++;
|
||||
list.GetArrayElementAtIndex(list.arraySize - 1).objectReferenceValue = clip;
|
||||
}
|
||||
}
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
Event.current.Use();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1b76be3d9e75a346aca5055c6a32b05
|
||||
timeCreated: 1498588527
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,342 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(vFootStep), true)]
|
||||
public class vFootStepEditor : UnityEditor.Editor
|
||||
{
|
||||
GUISkin skin;
|
||||
bool openWindow;
|
||||
private Texture2D m_Logo = null;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
m_Logo = (Texture2D)Resources.Load("footStepIcon", typeof(Texture2D));
|
||||
CheckColliders();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
if (!skin) skin = Resources.Load("vSkin") as GUISkin;
|
||||
GUI.skin = skin;
|
||||
|
||||
if (serializedObject == null) return;
|
||||
|
||||
GUILayout.BeginVertical("FOOTSTEP", "window");
|
||||
GUILayout.Label(m_Logo, GUILayout.MaxHeight(25));
|
||||
|
||||
openWindow = GUILayout.Toggle(openWindow, openWindow ? "Close" : "Open", EditorStyles.toolbarButton);
|
||||
if (openWindow)
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Script"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("animationType"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_volume"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_spawnParticle"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_spawnStepMark"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("_useTriggerEnter"));
|
||||
serializedObject.FindProperty("debugTextureName").boolValue = EditorGUILayout.Toggle("Debug Texture Name", serializedObject.FindProperty("debugTextureName").boolValue);
|
||||
|
||||
if (serializedObject.FindProperty("animationType").enumValueIndex == (int)AnimationType.Humanoid)
|
||||
{
|
||||
GUILayout.BeginHorizontal("box");
|
||||
if (CheckColliders())
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("leftFootTrigger"), new GUIContent("", null, "leftFootTrigger"));
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("rightFootTrigger"), new GUIContent("", null, "rightFootTrigger"));
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.HelpBox("Can't Create FootStepTriggers", MessageType.Warning);
|
||||
CheckColliders();
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawFootStepList();
|
||||
}
|
||||
|
||||
GUILayout.BeginVertical("box");
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("defaultSurface"));
|
||||
EditorGUILayout.HelpBox("This audio will play on any terrain or texture as the primary footstep.", MessageType.Info);
|
||||
GUILayout.EndVertical();
|
||||
|
||||
GUILayout.BeginVertical("box");
|
||||
DrawMultipleSurface(serializedObject.FindProperty("customSurfaces"));
|
||||
EditorGUILayout.HelpBox("Create new CustomSurfaces on the 3rd Person Controller menu > Resources > New AudioSurface", MessageType.Info);
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
if (GUI.changed)
|
||||
{
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
|
||||
bool CheckColliders()
|
||||
{
|
||||
if (AssetDatabase.Contains(target))
|
||||
return true;
|
||||
|
||||
var transform = (serializedObject.targetObject as vFootStep).transform;
|
||||
if (transform == null) return false;
|
||||
var animator = transform.GetComponent<Animator>();
|
||||
if (animator == null) return false;
|
||||
var leftFoot = animator.GetBoneTransform(HumanBodyBones.LeftFoot);
|
||||
vFootStepTrigger leftFoot_trigger = null;
|
||||
if (leftFoot != null)
|
||||
leftFoot_trigger = leftFoot.GetComponentInChildren<vFootStepTrigger>();
|
||||
|
||||
if (leftFoot_trigger == null && leftFoot != null)
|
||||
{
|
||||
var lFoot = new GameObject("leftFoot_trigger");
|
||||
lFoot.tag = "Ignore Ragdoll";
|
||||
var collider = lFoot.AddComponent<SphereCollider>();
|
||||
collider.radius = 0.1f;
|
||||
leftFoot_trigger = lFoot.AddComponent<vFootStepTrigger>();
|
||||
leftFoot_trigger.transform.position = new Vector3(leftFoot.position.x, transform.position.y, leftFoot.position.z);
|
||||
leftFoot_trigger.transform.rotation = transform.rotation;
|
||||
leftFoot_trigger.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
|
||||
leftFoot_trigger.transform.parent = leftFoot;
|
||||
serializedObject.FindProperty("leftFootTrigger").objectReferenceValue = leftFoot_trigger;
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
serializedObject.FindProperty("leftFootTrigger").objectReferenceValue = leftFoot_trigger;
|
||||
|
||||
if (leftFoot_trigger != null && leftFoot_trigger.GetComponent<Collider>() == null)
|
||||
{
|
||||
var collider = leftFoot_trigger.gameObject.AddComponent<SphereCollider>();
|
||||
collider.radius = 0.1f;
|
||||
}
|
||||
|
||||
var rightFoot = animator.GetBoneTransform(HumanBodyBones.RightFoot);
|
||||
vFootStepTrigger rightFoot_trigger = null;
|
||||
if (rightFoot != null)
|
||||
rightFoot_trigger = rightFoot.GetComponentInChildren<vFootStepTrigger>();
|
||||
|
||||
if (rightFoot_trigger == null && rightFoot != null)
|
||||
{
|
||||
var rFoot = new GameObject("rightFoot_trigger");
|
||||
rFoot.tag = "Ignore Ragdoll";
|
||||
var collider = rFoot.AddComponent<SphereCollider>();
|
||||
collider.radius = 0.1f;
|
||||
rightFoot_trigger = rFoot.gameObject.AddComponent<vFootStepTrigger>();
|
||||
rightFoot_trigger.transform.position = new Vector3(rightFoot.position.x, transform.position.y, rightFoot.position.z);
|
||||
rightFoot_trigger.transform.rotation = transform.rotation;
|
||||
rightFoot_trigger.gameObject.layer = LayerMask.NameToLayer("Ignore Raycast");
|
||||
rightFoot_trigger.transform.parent = rightFoot;
|
||||
serializedObject.FindProperty("rightFootTrigger").objectReferenceValue = rightFoot_trigger;
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
serializedObject.FindProperty("rightFootTrigger").objectReferenceValue = rightFoot_trigger;
|
||||
if (rightFoot_trigger != null && rightFoot_trigger.GetComponent<Collider>() == null)
|
||||
{
|
||||
var collider = rightFoot_trigger.gameObject.AddComponent<SphereCollider>();
|
||||
collider.radius = 0.1f;
|
||||
}
|
||||
|
||||
if (serializedObject.FindProperty("rightFootTrigger").objectReferenceValue != null && serializedObject.FindProperty("leftFootTrigger").objectReferenceValue != null) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void DrawFootStepList()
|
||||
{
|
||||
var footStepList = serializedObject.FindProperty("footStepTriggers");
|
||||
if (footStepList != null)
|
||||
{
|
||||
GUILayout.BeginVertical("TRIGGERS", "window");
|
||||
GUILayout.Space(30);
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("New", EditorStyles.miniButton))
|
||||
{
|
||||
footStepList.arraySize++;
|
||||
var go = new GameObject("Trigger-" + footStepList.arraySize.ToString("00"), typeof(vFootStepTrigger), typeof(SphereCollider));
|
||||
go.GetComponent<SphereCollider>().radius = 0.05f;
|
||||
go.transform.position = (target as vFootStep).transform.position;
|
||||
go.layer = LayerMask.NameToLayer("Ignore Raycast");
|
||||
go.transform.parent = (target as vFootStep).transform;
|
||||
|
||||
footStepList.GetArrayElementAtIndex(footStepList.arraySize - 1).objectReferenceValue = go.GetComponent<vFootStepTrigger>();
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
GUILayout.BeginVertical();
|
||||
for (int i = 0; i < footStepList.arraySize; i++)
|
||||
{
|
||||
if (!DrawFootStepElement(footStepList, footStepList.GetArrayElementAtIndex(i), i)) break;
|
||||
}
|
||||
GUILayout.EndVertical();
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
bool DrawFootStepElement(SerializedProperty list, SerializedProperty footStepElement, int index)
|
||||
{
|
||||
GUILayout.BeginHorizontal("box");
|
||||
EditorGUILayout.PropertyField(footStepElement, new GUIContent(""));
|
||||
if (GUILayout.Button("-", EditorStyles.miniButtonMid, GUILayout.MaxWidth(15)))
|
||||
{
|
||||
if ((footStepElement.objectReferenceValue as vFootStepTrigger) != null)
|
||||
{
|
||||
DestroyImmediate((footStepElement.objectReferenceValue as vFootStepTrigger).gameObject);
|
||||
list.DeleteArrayElementAtIndex(index);
|
||||
}
|
||||
|
||||
list.DeleteArrayElementAtIndex(index);
|
||||
GUILayout.EndHorizontal();
|
||||
return false;
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
return true;
|
||||
}
|
||||
|
||||
void DrawSingleSurface(SerializedProperty surface, bool showListNames)
|
||||
{
|
||||
//GUILayout.BeginVertical("window");
|
||||
EditorGUILayout.PropertyField(surface.FindPropertyRelative("source"), false);
|
||||
EditorGUILayout.PropertyField(surface.FindPropertyRelative("name"), new GUIContent("Surface Name"), false);
|
||||
|
||||
if (showListNames)
|
||||
DrawSimpleList(surface.FindPropertyRelative("TextureOrMaterialNames"), false);
|
||||
|
||||
DrawSimpleList(surface.FindPropertyRelative("audioClips"), true);
|
||||
//GUILayout.EndVertical();
|
||||
}
|
||||
|
||||
void DrawMultipleSurface(SerializedProperty surfaceList)
|
||||
{
|
||||
//GUILayout.BeginVertical();
|
||||
EditorGUILayout.PropertyField(surfaceList, new GUIContent("Custom Surfaces"));
|
||||
if (surfaceList.isExpanded)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("Add"))
|
||||
{
|
||||
surfaceList.arraySize++;
|
||||
}
|
||||
if (GUILayout.Button("Clear"))
|
||||
{
|
||||
surfaceList.arraySize = 0;
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
EditorGUILayout.Space();
|
||||
for (int i = 0; i < surfaceList.arraySize; i++)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
GUILayout.BeginHorizontal("box");
|
||||
EditorGUILayout.Space();
|
||||
if (i < surfaceList.arraySize && i >= 0)
|
||||
{
|
||||
GUILayout.BeginVertical();
|
||||
EditorGUILayout.PropertyField(surfaceList.GetArrayElementAtIndex(i),
|
||||
new GUIContent(surfaceList.GetArrayElementAtIndex(i).objectReferenceValue != null ? surfaceList.GetArrayElementAtIndex(i).objectReferenceValue.name : "Surface " + (i + 1).ToString("00")));
|
||||
EditorGUILayout.Space();
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
if (GUILayout.Button("-"))
|
||||
{
|
||||
surfaceList.DeleteArrayElementAtIndex(i);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
//GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
void DrawTextureNames(SerializedProperty textureNames)
|
||||
{
|
||||
for (int i = 0; i < textureNames.arraySize; i++)
|
||||
EditorGUILayout.PropertyField(textureNames.GetArrayElementAtIndex(i), true);
|
||||
}
|
||||
|
||||
void DrawSimpleList(SerializedProperty list, bool useDraBox)
|
||||
{
|
||||
EditorGUILayout.PropertyField(list);
|
||||
|
||||
if (list.isExpanded)
|
||||
{
|
||||
if (useDraBox)
|
||||
DrawDragBox(list);
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("Add"))
|
||||
{
|
||||
list.arraySize++;
|
||||
}
|
||||
if (GUILayout.Button("Clear"))
|
||||
{
|
||||
list.arraySize = 0;
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
for (int i = 0; i < list.arraySize; i++)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("-"))
|
||||
{
|
||||
RemoveElementAtIndex(list, i);
|
||||
}
|
||||
|
||||
if (i < list.arraySize && i >= 0)
|
||||
EditorGUILayout.PropertyField(list.GetArrayElementAtIndex(i), new GUIContent("", null, ""));
|
||||
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveElementAtIndex(SerializedProperty array, int index)
|
||||
{
|
||||
if (index != array.arraySize - 1)
|
||||
{
|
||||
array.GetArrayElementAtIndex(index).objectReferenceValue = array.GetArrayElementAtIndex(array.arraySize - 1).objectReferenceValue;
|
||||
}
|
||||
array.arraySize--;
|
||||
}
|
||||
|
||||
void DrawDragBox(SerializedProperty list)
|
||||
{
|
||||
//var dragAreaGroup = GUILayoutUtility.GetRect(0f, 35f, GUILayout.ExpandWidth(true));
|
||||
GUI.skin.box.alignment = TextAnchor.MiddleCenter;
|
||||
GUI.skin.box.normal.textColor = Color.white;
|
||||
GUILayout.Box("Drag your audio clips here!", "box", GUILayout.MinHeight(50), GUILayout.ExpandWidth(true));
|
||||
var dragAreaGroup = GUILayoutUtility.GetLastRect();
|
||||
|
||||
switch (Event.current.type)
|
||||
{
|
||||
case EventType.DragUpdated:
|
||||
case EventType.DragPerform:
|
||||
if (!dragAreaGroup.Contains(Event.current.mousePosition))
|
||||
break;
|
||||
|
||||
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
|
||||
|
||||
if (Event.current.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.AcceptDrag();
|
||||
|
||||
foreach (var dragged in DragAndDrop.objectReferences)
|
||||
{
|
||||
var clip = dragged as AudioClip;
|
||||
if (clip == null)
|
||||
continue;
|
||||
list.arraySize++;
|
||||
list.GetArrayElementAtIndex(list.arraySize - 1).objectReferenceValue = clip;
|
||||
}
|
||||
}
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
Event.current.Use();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool UseDefaultMargins()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b24bb8aeafbfb1498256cb11ce9178b
|
||||
timeCreated: 1433611647
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8eab2a65fc3f9254ca6c35df9def2180
|
||||
folderAsset: yes
|
||||
timeCreated: 1458357275
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,151 @@
|
||||
%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: ParticleSmokeVertlit 1
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
- _EMISSION
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 5b303ff28ad9368468a2edd759cf458d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _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: 5b303ff28ad9368468a2edd759cf458d, 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}
|
||||
- _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:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _InvFade: 3
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.94868153, g: 1, b: 0.8308824, a: 0.397}
|
||||
- _Color: {r: 0.94868153, g: 1, b: 0.8308824, a: 0.397}
|
||||
- _EmisColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _TintColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!1002 &2100001
|
||||
EditorExtensionImpl:
|
||||
serializedVersion: 6
|
||||
--- !u!114 &5691743533798480587
|
||||
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: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ad7827431027c4479728decb7885fdd
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -0,0 +1,82 @@
|
||||
%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: ParticleSmokeVertlit 2
|
||||
m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _ALPHABLEND_ON _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
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: 5b303ff28ad9368468a2edd759cf458d, 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_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 10
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _InvFade: 3
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 5
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 0.94868153, g: 1, b: 0.8308824, a: 0.397}
|
||||
- _EmisColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _TintColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
--- !u!1002 &2100001
|
||||
EditorExtensionImpl:
|
||||
serializedVersion: 6
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 082a5b83024b35042a596590c1dc503d
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -0,0 +1,143 @@
|
||||
%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: ParticleSmokeVertlit 3
|
||||
m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _COLOROVERLAY_ON
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords:
|
||||
- EFFECT_BUMP
|
||||
- _ALPHABLEND_ON
|
||||
- _FLIPBOOKBLENDING_OFF
|
||||
- _REQUIRE_UV2
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
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}
|
||||
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: 948e532aaea37f0418a1fd3b2df6a32b, 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:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 1
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 3
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.181
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 1
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0.1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EmissionEnabled: 1
|
||||
- _FlipbookBlending: 1
|
||||
- _FlipbookMode: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 1
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _CameraFadeParams: {r: 1, g: 1, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0}
|
||||
- _EmisColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0.31132078, g: 0.31132078, b: 0.31132078, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _TintColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!1002 &2100001
|
||||
EditorExtensionImpl:
|
||||
serializedVersion: 6
|
||||
--- !u!114 &3523330726307459980
|
||||
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: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08f4e21d3305d5d408b2b58e710aad1f
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -0,0 +1,33 @@
|
||||
%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: ParticleSmokeVertlit
|
||||
m_Shader: {fileID: 10720, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 5b303ff28ad9368468a2edd759cf458d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _InvFade: 0.83
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmisColor: {r: 0.2, g: 0.2, b: 0.2, a: 0}
|
||||
- _TintColor: {r: 0.3897059, g: 0.3897059, b: 0.3897059, a: 0.459}
|
||||
--- !u!1002 &2100001
|
||||
EditorExtensionImpl:
|
||||
serializedVersion: 6
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 225843b6084e75440a6ea970a17c93aa
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -0,0 +1,34 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SandSmoke
|
||||
m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: ETC1_EXTERNAL_ALPHA
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 5b303ff28ad9368468a2edd759cf458d, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _InvFade: 0.79
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmisColor: {r: 1, g: 0.8416291, b: 0.5588235, a: 1}
|
||||
- _TintColor: {r: 0.9705882, g: 0.7831643, b: 0, a: 0.75686276}
|
||||
--- !u!1002 &2100001
|
||||
EditorExtensionImpl:
|
||||
serializedVersion: 6
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c35265b3fc6d0344aa5f8668269689a6
|
||||
timeCreated: 1458582690
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,151 @@
|
||||
%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: step
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
- _DETAIL_MULX2
|
||||
- _EMISSION
|
||||
- _NORMALMAP
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
- SHADOWCASTER
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1529461d937a8274a99c03ccc8fbc6a2, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 2800000, guid: e24bbbeb25aaffe43ad3fc7b06fa5170, type: 3}
|
||||
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: 2800000, guid: c3c0c59f9953f8e4f928646fbafc1c83, type: 3}
|
||||
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: 1529461d937a8274a99c03ccc8fbc6a2, 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}
|
||||
- _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:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 2
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.585
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1.35
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.15
|
||||
- _GlossyReflections: 1
|
||||
- _InvFade: 3
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Shininess: 0.198
|
||||
- _Smoothness: 0.15
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.11029408, g: 0.11029408, b: 0.11029408, a: 1}
|
||||
- _Color: {r: 0.11029405, g: 0.11029405, b: 0.11029405, a: 1}
|
||||
- _EmisColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0}
|
||||
- _TintColor: {r: 0.022058845, g: 0.01119162, b: 0.01119162, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &2978524767448818264
|
||||
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: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bbe9a3f845cc73b498188d55a1c6abed
|
||||
timeCreated: 1458358713
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,149 @@
|
||||
%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: stepSand
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHAPREMULTIPLY_ON
|
||||
- _EMISSION
|
||||
- _NORMALMAP
|
||||
- _SURFACE_TYPE_TRANSPARENT
|
||||
m_InvalidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- DepthOnly
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1529461d937a8274a99c03ccc8fbc6a2, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 2800000, guid: e24bbbeb25aaffe43ad3fc7b06fa5170, type: 3}
|
||||
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}
|
||||
- _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:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 2
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.585
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1.35
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 10
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.25
|
||||
- _GlossyReflections: 1
|
||||
- _InvFade: 3
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Shininess: 0.198
|
||||
- _Smoothness: 0.25
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 1
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.24999997, g: 0.20833328, b: 0.13970584, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmisColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0}
|
||||
- _TintColor: {r: 0.022058845, g: 0.01119162, b: 0.01119162, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &1183222637386585014
|
||||
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: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6b6fe42fca74e84f86c69891ca6a989
|
||||
timeCreated: 1458583174
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78d93c7aaca15654c95e2fbafd26a6c6
|
||||
folderAsset: yes
|
||||
timeCreated: 1458357355
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,110 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &120084
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 408476}
|
||||
- component: {fileID: 3357720}
|
||||
- component: {fileID: 2390346}
|
||||
m_Layer: 0
|
||||
m_Name: Quad
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &408476
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 120084}
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: -0, y: 0.01, z: 0.0638}
|
||||
m_LocalScale: {x: 0.33418888, y: 0.29415956, z: 0.4046609}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 423458}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!33 &3357720
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 120084}
|
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2390346
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 120084}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: bbe9a3f845cc73b498188d55a1c6abed, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!1 &184202
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 423458}
|
||||
m_Layer: 0
|
||||
m_Name: SimpleStepMark
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &423458
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 184202}
|
||||
m_LocalRotation: {x: 0, y: -1, z: 0, w: 0}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 408476}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: -180, z: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8cf3efdf419ad74f8c0f66ab6418371
|
||||
timeCreated: 1458359504
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50016857087368141803f41af4837830
|
||||
timeCreated: 1458357056
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b3d07f3a868ac14ea9996e806e00930
|
||||
folderAsset: yes
|
||||
timeCreated: 1498587225
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,120 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
public class vAudioSurface : ScriptableObject
|
||||
{
|
||||
public AudioSource audioSource;
|
||||
public AudioMixerGroup audioMixerGroup; // The AudioSource that will play the clips.
|
||||
public List<string> TextureOrMaterialNames; // The tag on the surfaces that play these sounds.
|
||||
public List<AudioClip> audioClips; // The different clips that can be played on this surface.
|
||||
public GameObject particleObject;
|
||||
|
||||
private vFisherYatesRandom randomSource = new vFisherYatesRandom(); // For randomly reordering clips.
|
||||
|
||||
public bool useStepMark;
|
||||
[vHideInInspector("useStepMark")]
|
||||
public GameObject stepMark;
|
||||
[vHideInInspector("useStepMark")]
|
||||
public LayerMask stepLayer;
|
||||
[vHideInInspector("useStepMark")]
|
||||
public float timeToDestroy = 5f;
|
||||
|
||||
public vAudioSurface()
|
||||
{
|
||||
audioClips = new List<AudioClip>();
|
||||
TextureOrMaterialNames = new List<string>();
|
||||
}
|
||||
/// <summary>
|
||||
/// Spawn surface effect
|
||||
/// </summary>
|
||||
/// <param name="footStepObject">step object surface info</param>
|
||||
/// <param name="playSound">Spawn sound effect</param>
|
||||
/// <param name="spawnParticle">Spawn particle effect</param>
|
||||
/// <param name="spawnStepMark">Spawn step Mark effect</param>
|
||||
|
||||
public virtual void SpawnSurfaceEffect(FootStepObject footStepObject)
|
||||
{
|
||||
|
||||
// initialize variable if not already started
|
||||
if (randomSource == null)
|
||||
{
|
||||
randomSource = new vFisherYatesRandom();
|
||||
}
|
||||
///Create audio Effect
|
||||
if (footStepObject.spawnSoundEffect)
|
||||
{
|
||||
PlaySound(footStepObject);
|
||||
}
|
||||
///Create particle Effect
|
||||
if (footStepObject.spawnParticleEffect && particleObject && footStepObject.ground && stepLayer.ContainsLayer(footStepObject.ground.gameObject.layer))
|
||||
{
|
||||
SpawnParticle(footStepObject);
|
||||
}
|
||||
///Create Step Mark Effect
|
||||
if (footStepObject.spawnStepMarkEffect && useStepMark)
|
||||
{
|
||||
StepMark(footStepObject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Spawn Sound effect
|
||||
/// </summary>
|
||||
/// <param name="footStepObject">Step object surface info</param>
|
||||
protected virtual void PlaySound(FootStepObject footStepObject)
|
||||
{
|
||||
// if there are no clips to play return.
|
||||
if (audioClips == null || audioClips.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AudioSource source = null;
|
||||
if (audioSource != null)
|
||||
{
|
||||
source = Instantiate(audioSource, footStepObject.sender.position, Quaternion.identity);
|
||||
source.transform.SetParent(vObjectContainer.root, true);
|
||||
}
|
||||
if (audioSource)
|
||||
{
|
||||
if (audioMixerGroup != null)
|
||||
{
|
||||
source.outputAudioMixerGroup = audioMixerGroup;
|
||||
}
|
||||
}
|
||||
int index = randomSource.Next(audioClips.Count);
|
||||
source.PlayOneShot(audioClips[index], footStepObject.volume);
|
||||
}
|
||||
/// <summary>
|
||||
/// Spawn Particle effect
|
||||
/// </summary>
|
||||
/// <param name="footStepObject">Step object surface info</param>
|
||||
protected virtual void SpawnParticle(FootStepObject footStepObject)
|
||||
{
|
||||
var obj = Instantiate(particleObject, footStepObject.sender.position, footStepObject.sender.rotation);
|
||||
obj.transform.SetParent(vObjectContainer.root, true);
|
||||
}
|
||||
/// <summary>
|
||||
/// Spawn Step Mark effect
|
||||
/// </summary>
|
||||
/// <param name="footStepObject">Step object surface info</param>
|
||||
protected virtual void StepMark(FootStepObject footStep)
|
||||
{
|
||||
RaycastHit hit;
|
||||
if (Physics.Raycast(footStep.sender.transform.position + new Vector3(0, 0.25f, 0), Vector3.down, out hit, 1f, stepLayer))
|
||||
{
|
||||
if (stepMark)
|
||||
{
|
||||
var angle = Quaternion.FromToRotation(footStep.sender.up, hit.normal);
|
||||
var step = Instantiate(stepMark, hit.point, angle * footStep.sender.rotation);
|
||||
step.transform.SetParent(vObjectContainer.root, true);
|
||||
Destroy(step, timeToDestroy);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af1c89896f5f7f6439ef1a93a23a0f3d
|
||||
timeCreated: 1458347752
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {fileID: 2800000, guid: c98dd48f519049f42a092e26c1049b5b, type: 3}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,38 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
namespace Invector
|
||||
{
|
||||
[RequireComponent(typeof(AudioSource))]
|
||||
public class vAudioSurfaceControl : MonoBehaviour
|
||||
{
|
||||
AudioSource source;
|
||||
bool isWorking;
|
||||
|
||||
/// <summary>
|
||||
/// Play One Shot in Audio Source Component
|
||||
/// </summary>
|
||||
/// <param name="clip"></param>
|
||||
public void PlayOneShot(AudioClip clip, float volume)
|
||||
{
|
||||
if (!source) source = GetComponent<AudioSource>();
|
||||
source.volume = volume;
|
||||
source.PlayOneShot(clip, volume);
|
||||
isWorking = true;
|
||||
}
|
||||
void Update()
|
||||
{
|
||||
if (isWorking && !source.isPlaying)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
public AudioMixerGroup outputAudioMixerGroup
|
||||
{
|
||||
set
|
||||
{
|
||||
if (!source) source = GetComponent<AudioSource>();
|
||||
source.outputAudioMixerGroup = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 669210f9e4e67104ca935da3d7059cbe
|
||||
timeCreated: 1458351075
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,89 @@
|
||||
using UnityEngine;
|
||||
namespace Invector
|
||||
{
|
||||
// Fisher-Yates shuffle -- makes sure all items are selected with equal probability and that the same item is not selected twice in a row.
|
||||
public class vFisherYatesRandom
|
||||
{
|
||||
private int[] randomIndices = null;
|
||||
private int randomIndex = 0;
|
||||
private int prevValue = -1;
|
||||
|
||||
public int Next(int len)
|
||||
{
|
||||
if (len <= 1)
|
||||
return 0;
|
||||
|
||||
if (randomIndices == null || randomIndices.Length != len)
|
||||
{
|
||||
randomIndices = new int[len];
|
||||
for (int i = 0; i < randomIndices.Length; i++)
|
||||
randomIndices[i] = i;
|
||||
}
|
||||
|
||||
if (randomIndex == 0)
|
||||
{
|
||||
int count = 0;
|
||||
do
|
||||
{
|
||||
for (int i = 0; i < len - 1; i++)
|
||||
{
|
||||
int j = Random.Range(i, len);
|
||||
if (j != i)
|
||||
{
|
||||
int tmp = randomIndices[i];
|
||||
randomIndices[i] = randomIndices[j];
|
||||
randomIndices[j] = tmp;
|
||||
}
|
||||
}
|
||||
} while (prevValue == randomIndices[0] && ++count < 10); // Make sure the new first element is different from the last one we played
|
||||
}
|
||||
|
||||
int value = randomIndices[randomIndex];
|
||||
if (++randomIndex >= randomIndices.Length)
|
||||
randomIndex = 0;
|
||||
|
||||
prevValue = value;
|
||||
return value;
|
||||
}
|
||||
|
||||
public int Range(int min, int max)
|
||||
{
|
||||
var len = (max - min) + 1;
|
||||
if (len <= 1)
|
||||
return max;
|
||||
|
||||
if (randomIndices == null || randomIndices.Length != len)
|
||||
{
|
||||
randomIndices = new int[len];
|
||||
for (int i = 0; i < randomIndices.Length; i++)
|
||||
randomIndices[i] = min + i;
|
||||
}
|
||||
|
||||
if (randomIndex == 0)
|
||||
{
|
||||
int count = 0;
|
||||
do
|
||||
{
|
||||
for (int i = 0; i < len - 1; i++)
|
||||
{
|
||||
int j = Random.Range(i, len);
|
||||
if (j != i)
|
||||
{
|
||||
int tmp = randomIndices[i];
|
||||
randomIndices[i] = randomIndices[j];
|
||||
randomIndices[j] = tmp;
|
||||
}
|
||||
}
|
||||
} while (prevValue == randomIndices[0] && ++count < 10); // Make sure the new first element is different from the last one we played
|
||||
}
|
||||
|
||||
int value = randomIndices[randomIndex];
|
||||
if (++randomIndex >= randomIndices.Length)
|
||||
randomIndex = 0;
|
||||
|
||||
prevValue = value;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a158be35be5a63d4f838b1ac8b794ee1
|
||||
timeCreated: 1424098475
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,79 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
namespace Invector
|
||||
{
|
||||
[System.Serializable]
|
||||
public abstract class vFootStepBase : MonoBehaviour
|
||||
{
|
||||
// The different surfaces and their sounds.
|
||||
public vAudioSurface defaultSurface;
|
||||
public List<vAudioSurface> customSurfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Play a foot step effect passing the <seealso cref="FootStepObject"/> to determine what surface is stepping
|
||||
/// </summary>
|
||||
/// <param name="footStepObject">Foot Step object with surface information</param>
|
||||
/// <param name="spawnParticle">Spawn Particle ?</param>
|
||||
/// <param name="spawnStepMark">Spwan Step Mark ?</param>
|
||||
/// <param name="volume">Audio effect volume</param>
|
||||
public virtual void SpawnSurfaceEffect(FootStepObject footStepObject)
|
||||
{
|
||||
if (footStepObject != null)
|
||||
for (int i = 0; i < customSurfaces.Count; i++)
|
||||
if (customSurfaces[i] != null && ContainsTexture(footStepObject.name, customSurfaces[i]))
|
||||
{
|
||||
customSurfaces[i].SpawnSurfaceEffect(footStepObject);
|
||||
return;
|
||||
}
|
||||
if (defaultSurface != null)
|
||||
{
|
||||
defaultSurface.SpawnSurfaceEffect(footStepObject);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ccheck if AudioSurface Contains texture in TextureName List
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="surface"></param>
|
||||
/// <returns></returns>
|
||||
protected virtual bool ContainsTexture(string name, vAudioSurface surface)
|
||||
{
|
||||
for (int i = 0; i < surface.TextureOrMaterialNames.Count; i++)
|
||||
if (name.Contains(surface.TextureOrMaterialNames[i]))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
/// <summary>
|
||||
/// Step on Terrain
|
||||
/// </summary>
|
||||
/// <param name="footStepObject"></param>
|
||||
public abstract void StepOnTerrain(FootStepObject footStepObject);
|
||||
/// <summary>
|
||||
/// Step on Mesh
|
||||
/// </summary>
|
||||
/// <param name="footStepObject"></param>
|
||||
public abstract void StepOnMesh(FootStepObject footStepObject);
|
||||
/// <summary>
|
||||
/// Play foot Step sound
|
||||
/// </summary>
|
||||
public abstract void PlayFootStepEffect();
|
||||
/// <summary>
|
||||
/// Play Foot Step Effect directly using animation Event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public virtual void PlayFootStep(AnimationEvent evt) { }
|
||||
/// <summary>
|
||||
/// Play Left Foot Step Effect directly using animation Event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public virtual void PlayFootStepLeft(AnimationEvent evt) { }
|
||||
/// <summary>
|
||||
/// Play Right Foot Step Effect directly using animation Event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public virtual void PlayFootStepRight(AnimationEvent evt) { }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f7e8bb50a29daf42978b386b314983c
|
||||
timeCreated: 1425028583
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,298 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
public class vFootStep : vFootStepBase
|
||||
{
|
||||
public AnimationType animationType = AnimationType.Humanoid;
|
||||
public bool debugTextureName;
|
||||
|
||||
[SerializeField, Range(0, 1f)] protected float _volume = 1f;
|
||||
[vHelpBox("Enable or disable spawn particle when foot step is triggered")]
|
||||
[SerializeField] protected bool _spawnParticle = true;
|
||||
[vHelpBox("Enable or disable spawn step mark when foot step is triggered")]
|
||||
[SerializeField] protected bool _spawnStepMark = true;
|
||||
[vHelpBox("The step effect is spawned from on trigger enter event of the Foot Step Triggers. If you need to play step sound only by external events you need to disable this variable.<b>\n*Disable this to play step sound using animation events</b>")]
|
||||
[SerializeField] protected bool _useTriggerEnter = true;
|
||||
|
||||
public float Volume { get { return _volume; } set { _volume = value; } }
|
||||
public bool SpawnParticle { get { return _spawnParticle; } set { _spawnParticle = value; } }
|
||||
public bool SpawnStepMark { get { return _spawnStepMark; } set { _spawnStepMark = value; } }
|
||||
|
||||
protected int surfaceIndex = 0;
|
||||
protected Terrain terrain;
|
||||
protected TerrainCollider terrainCollider;
|
||||
protected TerrainData terrainData;
|
||||
protected Vector3 terrainPos;
|
||||
|
||||
public vFootStepTrigger leftFootTrigger;
|
||||
public vFootStepTrigger rightFootTrigger;
|
||||
public Transform currentStep;
|
||||
public List<vFootStepTrigger> footStepTriggers;
|
||||
|
||||
protected FootStepObject currentFootStep;
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
InitFootStep();
|
||||
}
|
||||
|
||||
public virtual void InitFootStep()
|
||||
{
|
||||
var colls = GetComponentsInChildren<Collider>();
|
||||
if (animationType == AnimationType.Humanoid)
|
||||
{
|
||||
if (leftFootTrigger == null && rightFootTrigger == null)
|
||||
{
|
||||
Debug.Log("Missing FootStep Sphere Trigger, please unfold the FootStep Component to create the triggers.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
leftFootTrigger.trigger.isTrigger = true;
|
||||
rightFootTrigger.trigger.isTrigger = true;
|
||||
Physics.IgnoreCollision(leftFootTrigger.trigger, rightFootTrigger.trigger);
|
||||
for (int i = 0; i < colls.Length; i++)
|
||||
{
|
||||
var coll = colls[i];
|
||||
if (coll.enabled && coll.gameObject != leftFootTrigger.gameObject)
|
||||
{
|
||||
Physics.IgnoreCollision(leftFootTrigger.trigger, coll);
|
||||
}
|
||||
|
||||
if (coll.enabled && coll.gameObject != rightFootTrigger.gameObject)
|
||||
{
|
||||
Physics.IgnoreCollision(rightFootTrigger.trigger, coll);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < colls.Length; i++)
|
||||
{
|
||||
var coll = colls[i];
|
||||
for (int a = 0; a < footStepTriggers.Count; a++)
|
||||
{
|
||||
var trigger = footStepTriggers[a];
|
||||
trigger.trigger.isTrigger = true;
|
||||
if (coll.enabled && coll.gameObject != trigger.gameObject)
|
||||
{
|
||||
Physics.IgnoreCollision(trigger.trigger, coll);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void UpdateTerrainInfo(Terrain newTerrain)
|
||||
{
|
||||
if (terrain == null || terrain != newTerrain)
|
||||
{
|
||||
terrain = newTerrain;
|
||||
if (terrain != null)
|
||||
{
|
||||
terrainData = terrain.terrainData;
|
||||
terrainPos = terrain.transform.position;
|
||||
terrainCollider = terrain.GetComponent<TerrainCollider>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual float[] GetTextureMix(FootStepObject footStepObj)
|
||||
{
|
||||
// returns an array containing the relative mix of textures
|
||||
// on the main terrain at this world position.
|
||||
|
||||
// The number of values in the array will equal the number
|
||||
// of textures added to the terrain.
|
||||
|
||||
UpdateTerrainInfo(footStepObj.terrain);
|
||||
|
||||
// calculate which splat map cell the worldPos falls within (ignoring y)
|
||||
var worldPos = footStepObj.sender.position;
|
||||
int mapX = (int)(((worldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth);
|
||||
int mapZ = (int)(((worldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight);
|
||||
|
||||
// get the splat data for this cell as a 1x1xN 3d array (where N = number of textures)
|
||||
if (!terrainCollider.bounds.Contains(worldPos))
|
||||
{
|
||||
return new float[0];
|
||||
}
|
||||
|
||||
float[,,] splatmapData = terrainData.GetAlphamaps(mapX, mapZ, 1, 1);
|
||||
|
||||
// extract the 3D array data to a 1D array:
|
||||
float[] cellMix = new float[splatmapData.GetUpperBound(2) + 1];
|
||||
|
||||
for (int n = 0; n < cellMix.Length; n++)
|
||||
{
|
||||
cellMix[n] = splatmapData[0, 0, n];
|
||||
}
|
||||
return cellMix;
|
||||
}
|
||||
|
||||
protected virtual int GetMainTexture(FootStepObject footStepObj)
|
||||
{
|
||||
// returns the zero-based index of the most dominant texture
|
||||
// on the main terrain at this world position.
|
||||
float[] mix = GetTextureMix(footStepObj);
|
||||
|
||||
if (mix == null)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
float maxMix = 0;
|
||||
int maxIndex = 0;
|
||||
|
||||
// loop through each mix value and find the maximum
|
||||
for (int n = 0; n < mix.Length; n++)
|
||||
{
|
||||
if (mix[n] > maxMix)
|
||||
{
|
||||
maxIndex = n;
|
||||
maxMix = mix[n];
|
||||
}
|
||||
}
|
||||
return maxIndex;
|
||||
}
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
{
|
||||
if (leftFootTrigger != null)
|
||||
{
|
||||
Destroy(leftFootTrigger.gameObject);
|
||||
}
|
||||
|
||||
if (rightFootTrigger != null)
|
||||
{
|
||||
Destroy(rightFootTrigger.gameObject);
|
||||
}
|
||||
|
||||
if (footStepTriggers != null && footStepTriggers.Count > 0)
|
||||
{
|
||||
foreach (var comp in footStepTriggers)
|
||||
{
|
||||
Destroy(comp.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Step on Terrain
|
||||
/// </summary>
|
||||
/// <param name="footStepObject"></param>
|
||||
public override void StepOnTerrain(FootStepObject footStepObject)
|
||||
{
|
||||
if (currentStep != null && currentStep == footStepObject.sender && _useTriggerEnter)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
currentStep = footStepObject.sender;
|
||||
surfaceIndex = GetMainTexture(footStepObject);
|
||||
|
||||
if (surfaceIndex != -1)
|
||||
{
|
||||
#if UNITY_2018_3_OR_NEWER
|
||||
var name = (terrainData != null && terrainData.terrainLayers.Length > 0) ? (terrainData.terrainLayers[surfaceIndex]).diffuseTexture.name : "";
|
||||
#else
|
||||
var name = (terrainData != null && terrainData.splatPrototypes.Length > 0) ? (terrainData.splatPrototypes[surfaceIndex]).texture.name : "";
|
||||
#endif
|
||||
footStepObject.name = name;
|
||||
currentFootStep = footStepObject;
|
||||
if (_useTriggerEnter)
|
||||
{
|
||||
PlayFootStepEffect();
|
||||
if (debugTextureName)
|
||||
{
|
||||
Debug.Log(terrain.name + " " + name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Step on Mesh
|
||||
/// </summary>
|
||||
/// <param name="footStepObject"></param>
|
||||
public override void StepOnMesh(FootStepObject footStepObject)
|
||||
{
|
||||
if (currentStep != null && currentStep == footStepObject.sender && _useTriggerEnter)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
currentStep = footStepObject.sender;
|
||||
currentFootStep = footStepObject;
|
||||
if (_useTriggerEnter)
|
||||
{
|
||||
PlayFootStepEffect();
|
||||
if (debugTextureName)
|
||||
{
|
||||
Debug.Log(footStepObject.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Play foot Step effect
|
||||
/// </summary>
|
||||
public override void PlayFootStepEffect()
|
||||
{
|
||||
if (currentFootStep != null)
|
||||
{
|
||||
currentFootStep.volume = Volume;
|
||||
currentFootStep.spawnParticleEffect = SpawnParticle;
|
||||
currentFootStep.spawnStepMarkEffect = SpawnStepMark;
|
||||
SpawnSurfaceEffect(currentFootStep);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Play foot step effect from animation event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public override void PlayFootStep(AnimationEvent evt)
|
||||
{
|
||||
if (evt.animatorClipInfo.weight > 0.5)
|
||||
{
|
||||
PlayFootStepEffect();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Play left foot step effect from animation event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public override void PlayFootStepLeft(AnimationEvent evt)
|
||||
{
|
||||
if (evt.animatorClipInfo.weight > 0.5)
|
||||
{
|
||||
currentFootStep.sender = leftFootTrigger.transform;
|
||||
PlayFootStepEffect();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Play right foot step effect from animation event
|
||||
/// </summary>
|
||||
/// <param name="evt"></param>
|
||||
public override void PlayFootStepRight(AnimationEvent evt)
|
||||
{
|
||||
if (evt.animatorClipInfo.weight > 0.15)
|
||||
{
|
||||
currentFootStep.sender = rightFootTrigger.transform;
|
||||
PlayFootStepEffect();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum AnimationType
|
||||
{
|
||||
Humanoid, Generic
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19ce6a4d1f67f494f8e871355031f21c
|
||||
timeCreated: 1500492219
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences:
|
||||
- defaultSurface: {fileID: 11400000, guid: 710c74baecce50746bd56b9711c851e7, type: 2}
|
||||
- leftFootTrigger: {instanceID: 0}
|
||||
- rightFootTrigger: {instanceID: 0}
|
||||
- currentStep: {instanceID: 0}
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,24 @@
|
||||
using UnityEngine;
|
||||
namespace Invector
|
||||
{
|
||||
public class vFootStepHandler : MonoBehaviour
|
||||
{
|
||||
[Tooltip("Use this to select a specific material or texture if your mesh has multiple materials, the footstep will play only the selected index.")]
|
||||
[SerializeField]
|
||||
private int materialIndex = 0;
|
||||
public int material_ID
|
||||
{
|
||||
get
|
||||
{
|
||||
return materialIndex;
|
||||
}
|
||||
}
|
||||
|
||||
public StepHandleType stepHandleType;
|
||||
public enum StepHandleType
|
||||
{
|
||||
materialName,
|
||||
textureName
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 153bfba017503c74d919ab3c55d40277
|
||||
timeCreated: 1445535775
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,141 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace Invector
|
||||
{
|
||||
public class vFootStepTrigger : MonoBehaviour
|
||||
{
|
||||
protected Collider _trigger;
|
||||
protected vFootStepBase _fT;
|
||||
public UnityEvent OnStep;
|
||||
|
||||
void OnDrawGizmos()
|
||||
{
|
||||
if (!trigger) return;
|
||||
Color color = Color.green;
|
||||
color.a = 0.5f;
|
||||
Gizmos.color = color;
|
||||
if (trigger is SphereCollider)
|
||||
{
|
||||
Gizmos.DrawSphere((trigger.bounds.center), (trigger as SphereCollider).radius);
|
||||
}
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
_fT = GetComponentInParent<vFootStepBase>();
|
||||
|
||||
var r = gameObject.GetComponent<Rigidbody>();
|
||||
if (r == null)
|
||||
gameObject.AddComponent<Rigidbody>().isKinematic = true;
|
||||
else
|
||||
r.isKinematic = true;
|
||||
|
||||
if (_fT == null)
|
||||
{
|
||||
Debug.Log(gameObject.name + " can't find the FootStepFromTexture");
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
var colliders = _fT.gameObject.GetComponentsInChildren<Collider>(true);
|
||||
for (int i = 0; i < colliders.Length; i++)
|
||||
{
|
||||
var c = colliders[i];
|
||||
if (c!=null && c.gameObject != trigger.gameObject)
|
||||
{
|
||||
Physics.IgnoreCollision(c, trigger, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Collider trigger
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_trigger == null) _trigger =gameObject.GetComponent<Collider>();
|
||||
return _trigger;
|
||||
}
|
||||
}
|
||||
|
||||
protected Collider lastCollider;
|
||||
|
||||
internal FootStepObject footstepObj;
|
||||
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (_fT == null) return;
|
||||
if ((lastCollider == null || lastCollider != other) || footstepObj == null)
|
||||
{
|
||||
footstepObj = new FootStepObject(transform, other);
|
||||
lastCollider = other;
|
||||
}
|
||||
|
||||
if (footstepObj.isTerrain) //Check if trigger objet is a terrain
|
||||
{
|
||||
_fT.StepOnTerrain(footstepObj);
|
||||
OnStep.Invoke();
|
||||
}
|
||||
else
|
||||
{
|
||||
_fT.StepOnMesh(footstepObj);
|
||||
OnStep.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Foot step Object work with FootStepFromTexture
|
||||
/// </summary>
|
||||
public class FootStepObject
|
||||
{
|
||||
public string name;
|
||||
public Transform sender;
|
||||
public Collider ground;
|
||||
public Terrain terrain;
|
||||
public bool isTerrain { get { return terrain != null; } }
|
||||
public vFootStepHandler stepHandle;
|
||||
public Renderer renderer;
|
||||
public bool spawnSoundEffect;
|
||||
public bool spawnStepMarkEffect;
|
||||
public bool spawnParticleEffect;
|
||||
public float volume;
|
||||
public FootStepObject(Transform sender, Collider ground)
|
||||
{
|
||||
this.name = "";
|
||||
this.sender = sender;
|
||||
this.ground = ground;
|
||||
this.terrain = ground.GetComponent<Terrain>();
|
||||
this.stepHandle = ground.GetComponent<vFootStepHandler>();
|
||||
this.renderer = ground.GetComponent<Renderer>();
|
||||
spawnSoundEffect = true;
|
||||
spawnStepMarkEffect = true;
|
||||
spawnParticleEffect = true;
|
||||
volume = 1;
|
||||
if (renderer != null && renderer.material != null)
|
||||
{
|
||||
var index = 0;
|
||||
this.name = string.Empty;
|
||||
if (stepHandle != null && stepHandle.material_ID > 0)// if trigger contains a StepHandler to pass material ID. Default is (0)
|
||||
index = stepHandle.material_ID;
|
||||
if (stepHandle)
|
||||
{
|
||||
// check stepHandlerType
|
||||
switch (stepHandle.stepHandleType)
|
||||
{
|
||||
case vFootStepHandler.StepHandleType.materialName:
|
||||
this.name = renderer.materials[index].name;
|
||||
break;
|
||||
case vFootStepHandler.StepHandleType.textureName:
|
||||
this.name = renderer.materials[index].mainTexture.name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
this.name = renderer.materials[index].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b04f4ac1b776ff48b5f78a97b57f776
|
||||
timeCreated: 1429924045
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dda0adb2daa01e54f998c67fc75dd1ad
|
||||
folderAsset: yes
|
||||
timeCreated: 1458357294
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
@@ -0,0 +1,52 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5b303ff28ad9368468a2edd759cf458d
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 8
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 1024
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
textureType: -1
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
@@ -0,0 +1,57 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e24bbbeb25aaffe43ad3fc7b06fa5170
|
||||
timeCreated: 1458358658
|
||||
licenseType: Store
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 1
|
||||
externalNormalMap: 1
|
||||
heightScale: 0.078
|
||||
normalMapFilter: 1
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
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
|
||||
alphaIsTransparency: 0
|
||||
textureType: 1
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
@@ -0,0 +1,57 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1529461d937a8274a99c03ccc8fbc6a2
|
||||
timeCreated: 1458359022
|
||||
licenseType: Store
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
cubemapConvolution: 0
|
||||
cubemapConvolutionSteps: 7
|
||||
cubemapConvolutionExponent: 1.5
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 512
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
rGBM: 0
|
||||
compressionQuality: 50
|
||||
allowsAlphaSplitting: 0
|
||||
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
|
||||
alphaIsTransparency: 1
|
||||
textureType: -1
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user