├── .gitignore ├── Assets ├── Audio.meta ├── Audio │ ├── SE_002.wav │ ├── SE_002.wav.meta │ ├── boom.wav │ └── boom.wav.meta ├── CinematicEffects.meta ├── CinematicEffects │ ├── Bloom.meta │ ├── Bloom │ │ ├── Bloom.cs │ │ ├── Bloom.cs.meta │ │ ├── Editor.meta │ │ ├── Editor │ │ │ ├── BloomEditor.cs │ │ │ └── BloomEditor.cs.meta │ │ ├── Resources.meta │ │ └── Resources │ │ │ ├── Bloom.shader │ │ │ └── Bloom.shader.meta │ ├── Common.meta │ ├── Common │ │ ├── Editor.meta │ │ ├── Editor │ │ │ ├── EditorGUIHelper.cs │ │ │ ├── EditorGUIHelper.cs.meta │ │ │ ├── FieldFinder.cs │ │ │ ├── FieldFinder.cs.meta │ │ │ ├── MinDrawer.cs │ │ │ └── MinDrawer.cs.meta │ │ ├── ImageEffectHelper.cs │ │ ├── ImageEffectHelper.cs.meta │ │ ├── MinAttribute.cs │ │ ├── MinAttribute.cs.meta │ │ ├── RenderTextureUtility.cs │ │ └── RenderTextureUtility.cs.meta │ ├── README.txt │ └── README.txt.meta ├── Editor.meta ├── Editor │ ├── AtlasExporterWindow.cs │ └── AtlasExporterWindow.cs.meta ├── Fonts.meta ├── Fonts │ ├── M+2Mm.fontsettings │ ├── M+2Mm.fontsettings.meta │ ├── M+2Mm.mat │ ├── M+2Mm.mat.meta │ ├── M+2Mm.png │ ├── M+2Mm.png.meta │ ├── M+2Mm.txt │ └── M+2Mm.txt.meta ├── Materials.meta ├── Materials │ ├── burner_instanced_indirect.mat │ ├── burner_instanced_indirect.mat.meta │ ├── debris.mat │ ├── debris.mat.meta │ ├── explosion_instanced_indirect.mat │ ├── explosion_instanced_indirect.mat.meta │ ├── final.mat │ ├── final.mat.meta │ ├── font.mat │ ├── font.mat.meta │ ├── missile_instanced_indirect.mat │ ├── missile_instanced_indirect.mat.meta │ ├── skybox.mat │ ├── skybox.mat.meta │ ├── spark.mat │ ├── spark.mat.meta │ ├── sprite.mat │ ├── sprite.mat.meta │ ├── trail_instanced_indirect.mat │ └── trail_instanced_indirect.mat.meta ├── Models.meta ├── Models │ ├── Fighter.meta │ ├── Fighter │ │ ├── Materials.meta │ │ └── Materials │ │ │ ├── _0Mat.mat │ │ │ ├── _0Mat.mat.meta │ │ │ ├── aura_01.mat │ │ │ ├── aura_01.mat.meta │ │ │ ├── fighter_burner_instanced.mat │ │ │ ├── fighter_burner_instanced.mat.meta │ │ │ ├── fighter_instanced.mat │ │ │ ├── fighter_instanced.mat.meta │ │ │ ├── fighter_instancedLW.mat │ │ │ └── fighter_instancedLW.mat.meta │ ├── burner.fbx │ ├── burner.fbx.meta │ ├── burner.png │ ├── burner.png.meta │ ├── fighter-effect.obj │ ├── fighter-effect.obj.meta │ ├── fighter.obj │ ├── fighter.obj.meta │ ├── fighter.psd │ ├── fighter.psd.meta │ ├── fighter_nrm.psd │ ├── fighter_nrm.psd.meta │ ├── missile.fbx │ ├── missile.fbx.meta │ ├── missile.png │ └── missile.png.meta ├── Scenes.meta ├── Scenes │ ├── main.unity │ └── main.unity.meta ├── Scripts.meta ├── Scripts │ ├── CV.cs │ ├── CV.cs.meta │ ├── CameraBase.cs │ ├── CameraBase.cs.meta │ ├── ComputeBillboardRenderer.cs │ ├── ComputeBillboardRenderer.cs.meta │ ├── Controller.cs │ ├── Controller.cs.meta │ ├── Debris.cs │ ├── Debris.cs.meta │ ├── DebrisRenderer.cs │ ├── DebrisRenderer.cs.meta │ ├── DebugCamera.cs │ ├── DebugCamera.cs.meta │ ├── DrawBuffer.cs │ ├── DrawBuffer.cs.meta │ ├── Fighter.cs │ ├── Fighter.cs.meta │ ├── Fighter_alpha.cs │ ├── Fighter_alpha.cs.meta │ ├── GameManager.cs │ ├── GameManager.cs.meta │ ├── InputManager.cs │ ├── InputManager.cs.meta │ ├── MissileManager.cs │ ├── MissileManager.cs.meta │ ├── MyFont.cs │ ├── MyFont.cs.meta │ ├── MyFontRenderer.cs │ ├── MyFontRenderer.cs.meta │ ├── MyRandom.cs │ ├── MyRandom.cs.meta │ ├── MySprite.cs │ ├── MySprite.cs.meta │ ├── MySpriteRenderer.cs │ ├── MySpriteRenderer.cs.meta │ ├── MyTransform.cs │ ├── MyTransform.cs.meta │ ├── PerformanceFetcher.cs │ ├── PerformanceFetcher.cs.meta │ ├── PerformanceFetcher2.cs │ ├── PerformanceFetcher2.cs.meta │ ├── PerformanceMeter.cs │ ├── PerformanceMeter.cs.meta │ ├── PerformanceTest.cs │ ├── PerformanceTest.cs.meta │ ├── ProfileSampler.cs │ ├── ProfileSampler.cs.meta │ ├── Recorder.cs │ ├── Recorder.cs.meta │ ├── RigidbodyTransform.cs │ ├── RigidbodyTransform.cs.meta │ ├── Spark.cs │ ├── Spark.cs.meta │ ├── SparkRenderer.cs │ ├── SparkRenderer.cs.meta │ ├── SpectatorCamera.cs │ ├── SpectatorCamera.cs.meta │ ├── SystemManager.cs │ ├── SystemManager.cs.meta │ ├── Task.cs │ ├── Task.cs.meta │ ├── TaskManager.cs │ ├── TaskManager.cs.meta │ ├── Utility.cs │ └── Utility.cs.meta ├── Shaders.meta ├── Shaders │ ├── burner_instanced_indirect.shader │ ├── burner_instanced_indirect.shader.meta │ ├── constant_values.cginc │ ├── constant_values.cginc.meta │ ├── debris.shader │ ├── debris.shader.meta │ ├── explosion_instanced_indirect.shader │ ├── explosion_instanced_indirect.shader.meta │ ├── figher_burner_instanced.shader │ ├── figher_burner_instanced.shader.meta │ ├── fighter_instanced.shader │ ├── fighter_instanced.shader.meta │ ├── final.shader │ ├── final.shader.meta │ ├── font.shader │ ├── font.shader.meta │ ├── math.cginc │ ├── math.cginc.meta │ ├── missile.cginc │ ├── missile.cginc.meta │ ├── missile_instanced_indirect.shader │ ├── missile_instanced_indirect.shader.meta │ ├── missile_sort.compute │ ├── missile_sort.compute.meta │ ├── missile_spawn.compute │ ├── missile_spawn.compute.meta │ ├── missile_update.compute │ ├── missile_update.compute.meta │ ├── skybox.cginc │ ├── skybox.cginc.meta │ ├── skybox.shader │ ├── skybox.shader.meta │ ├── spark.shader │ ├── spark.shader.meta │ ├── sprite.shader │ ├── sprite.shader.meta │ ├── trail_instanced_indirect.shader │ └── trail_instanced_indirect.shader.meta ├── Textures.meta └── Textures │ ├── .DS_Store │ ├── Explosion_01.png │ ├── Explosion_01.png.meta │ ├── GUI.meta │ ├── GUI │ ├── atlas.png │ ├── atlas.png.meta │ ├── square.png │ └── square.png.meta │ ├── beam.png │ ├── beam.png.meta │ ├── blit_render_texture.renderTexture │ ├── blit_render_texture.renderTexture.meta │ ├── skybox_starfield.png │ ├── skybox_starfield.png.meta │ ├── smoke.png │ ├── smoke.png.meta │ ├── unite_logo.png │ └── unite_logo.png.meta ├── LICENSE ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset ├── README.md └── Tools ├── merge_starfield.py ├── smoke.py ├── smoke_concatenate.py ├── smoke_mix.py ├── starfield.py ├── stitch.py └── stitch2.py /.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/2b3b1f428fb84dc4ba3ad2307ec44af3c5799848/unity.gitignore 2 | 3 | /[Ll]ibrary/ 4 | /[Tt]emp/ 5 | /[Oo]bj/ 6 | /[Bb]uild/ 7 | /[Bb]uilds/ 8 | /Assets/AssetStoreTools* 9 | 10 | # Autogenerated VS/MD/Consulo solution and project files 11 | ExportedObj/ 12 | .consulo/ 13 | *.csproj 14 | *.unityproj 15 | *.sln 16 | *.suo 17 | *.tmp 18 | *.user 19 | *.userprefs 20 | *.pidb 21 | *.booproj 22 | *.svd 23 | 24 | 25 | # Unity3D generated meta files 26 | *.pidb.meta 27 | 28 | # Unity3D Generated File On Crash Reports 29 | sysinfo.txt 30 | 31 | # Builds 32 | *.apk 33 | *.unitypackage 34 | 35 | *~ 36 | 37 | iOS 38 | Tools/*.png 39 | movie_work 40 | *.mp4 41 | */.DS_Store -------------------------------------------------------------------------------- /Assets/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea2042f3436db4fbb931d925df0dfc12 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Audio/SE_002.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Audio/SE_002.wav -------------------------------------------------------------------------------- /Assets/Audio/SE_002.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29942fdf707f74367ae98f987852fe14 3 | timeCreated: 1458814003 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 1 10 | sampleRateOverride: 44100 11 | compressionFormat: 2 12 | quality: 1 13 | conversionMode: 0 14 | platformSettingOverrides: {} 15 | forceToMono: 1 16 | normalize: 1 17 | preloadAudioData: 1 18 | loadInBackground: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Audio/boom.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Audio/boom.wav -------------------------------------------------------------------------------- /Assets/Audio/boom.wav.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5f6f09ee30aa4b96bd627e943694fa5 3 | timeCreated: 1458801657 4 | licenseType: Pro 5 | AudioImporter: 6 | serializedVersion: 6 7 | defaultSettings: 8 | loadType: 1 9 | sampleRateSetting: 1 10 | sampleRateOverride: 44100 11 | compressionFormat: 2 12 | quality: 1 13 | conversionMode: 0 14 | platformSettingOverrides: {} 15 | forceToMono: 1 16 | normalize: 1 17 | preloadAudioData: 1 18 | loadInBackground: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/CinematicEffects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9654654fbf8c44c328047f65cdcacdb4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f61865b797a1643368b3383374807955 3 | folderAsset: yes 4 | timeCreated: 1456228504 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Bloom.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32187365ced0c42219cde2b57c99b323 3 | timeCreated: 1454052338 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _shader: {fileID: 4800000, guid: e45d4f28262b04d10a075856ab5fdb5e, type: 3} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92a024b1f1430409eb656f65969aa3d5 3 | folderAsset: yes 4 | timeCreated: 1454052266 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Editor/BloomEditor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | 5 | namespace UnityStandardAssets.CinematicEffects 6 | { 7 | [CanEditMultipleObjects] 8 | [CustomEditor(typeof(Bloom))] 9 | public class BloomEditor : Editor 10 | { 11 | [NonSerialized] 12 | private List m_Properties = new List(); 13 | 14 | void OnEnable() 15 | { 16 | var settings = FieldFinder.GetField(x => x.settings); 17 | foreach (var setting in settings.FieldType.GetFields()) 18 | { 19 | var prop = settings.Name + "." + setting.Name; 20 | m_Properties.Add(serializedObject.FindProperty(prop)); 21 | } 22 | } 23 | 24 | public override void OnInspectorGUI() 25 | { 26 | serializedObject.Update(); 27 | foreach (var property in m_Properties) 28 | EditorGUILayout.PropertyField(property); 29 | serializedObject.ApplyModifiedProperties(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Editor/BloomEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38020a6029a85434a95a6f725a5aae5f 3 | timeCreated: 1454052266 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4af3202dbe79e460e9be42bcb6509fe0 3 | folderAsset: yes 4 | timeCreated: 1454052266 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Bloom/Resources/Bloom.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e45d4f28262b04d10a075856ab5fdb5e 3 | timeCreated: 1454052270 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6786fef3080984548abbde7a8fc8e3cd 3 | folderAsset: yes 4 | timeCreated: 1456228504 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e862ecde714eb154ca2d86a9a0809732 3 | folderAsset: yes 4 | timeCreated: 1453372226 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/EditorGUIHelper.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System; 4 | using System.Linq.Expressions; 5 | using System.Reflection; 6 | 7 | namespace UnityStandardAssets.CinematicEffects 8 | { 9 | public static class EditorGUIHelper 10 | { 11 | private static Styles s_Styles; 12 | private class Styles 13 | { 14 | public GUIStyle header = "ShurikenModuleTitle"; 15 | public GUIStyle headerCheckbox = "ShurikenCheckMark"; 16 | 17 | internal Styles() 18 | { 19 | header.font = (new GUIStyle("Label")).font; 20 | header.border = new RectOffset(15, 7, 4, 4); 21 | header.fixedHeight = 22; 22 | header.contentOffset = new Vector2(20f, -2f); 23 | } 24 | } 25 | 26 | static EditorGUIHelper() 27 | { 28 | s_Styles = new Styles(); 29 | } 30 | 31 | public static bool Header(SerializedProperty group, SerializedProperty enabledField) 32 | { 33 | var display = group == null || group.isExpanded; 34 | var enabled = enabledField != null && enabledField.boolValue; 35 | var title = group == null ? "Unknown Group" : ObjectNames.NicifyVariableName(group.displayName); 36 | 37 | Rect rect = GUILayoutUtility.GetRect(16f, 22f, s_Styles.header); 38 | GUI.Box(rect, title, s_Styles.header); 39 | 40 | Rect toggleRect = new Rect(rect.x + 4f, rect.y + 4f, 13f, 13f); 41 | if (Event.current.type == EventType.Repaint) 42 | s_Styles.headerCheckbox.Draw(toggleRect, false, false, enabled, false); 43 | 44 | Event e = Event.current; 45 | if (e.type == EventType.MouseDown) 46 | { 47 | if (toggleRect.Contains(e.mousePosition) && enabledField != null) 48 | { 49 | enabledField.boolValue = !enabledField.boolValue; 50 | e.Use(); 51 | } 52 | else if (rect.Contains(e.mousePosition) && group != null) 53 | { 54 | display = !display; 55 | group.isExpanded = !group.isExpanded; 56 | e.Use(); 57 | } 58 | } 59 | return display; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/EditorGUIHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b995f06a3ed14d449823cf7ab1c5a58 3 | timeCreated: 1454681943 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/FieldFinder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq.Expressions; 3 | using System.Reflection; 4 | 5 | namespace UnityStandardAssets.CinematicEffects 6 | { 7 | public static class FieldFinder 8 | { 9 | public static FieldInfo GetField(Expression> selector) 10 | { 11 | Expression body = selector; 12 | if (body is LambdaExpression) 13 | { 14 | body = ((LambdaExpression)body).Body; 15 | } 16 | switch (body.NodeType) 17 | { 18 | case ExpressionType.MemberAccess: 19 | return (FieldInfo)((MemberExpression)body).Member; 20 | default: 21 | throw new InvalidOperationException(); 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/FieldFinder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39e54cb37a3a81a40b248f1cc25c4619 3 | timeCreated: 1454073160 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/MinDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace UnityStandardAssets.CinematicEffects 5 | { 6 | [CustomPropertyDrawer(typeof(MinAttribute))] 7 | internal sealed class MinDrawer : PropertyDrawer 8 | { 9 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) 10 | { 11 | MinAttribute attribute = (MinAttribute) base.attribute; 12 | 13 | if (property.propertyType == SerializedPropertyType.Integer) 14 | { 15 | int v = EditorGUI.IntField(position, label, property.intValue); 16 | property.intValue = (int)Mathf.Max(v, attribute.min); 17 | } 18 | else if (property.propertyType == SerializedPropertyType.Float) 19 | { 20 | float v = EditorGUI.FloatField(position, label, property.floatValue); 21 | property.floatValue = Mathf.Max(v, attribute.min); 22 | } 23 | else 24 | { 25 | EditorGUI.LabelField(position, label.text, "Use Min with float or int."); 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/Editor/MinDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c615a85f13c6764fa4496d1d7f75f52 3 | timeCreated: 1453220014 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/ImageEffectHelper.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UnityStandardAssets.CinematicEffects 4 | { 5 | public static class ImageEffectHelper 6 | { 7 | public static Material CheckShaderAndCreateMaterial(Shader s) 8 | { 9 | if (s == null || !s.isSupported) 10 | return null; 11 | 12 | var material = new Material(s); 13 | material.hideFlags = HideFlags.DontSave; 14 | return material; 15 | } 16 | 17 | public static bool supportsDX11 18 | { 19 | get { return SystemInfo.graphicsShaderLevel >= 50 && SystemInfo.supportsComputeShaders; } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/ImageEffectHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab6a3f50deeee984c88794eeeb901226 3 | timeCreated: 1448544124 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/MinAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace UnityStandardAssets.CinematicEffects 2 | { 3 | using UnityEngine; 4 | 5 | public sealed class MinAttribute : PropertyAttribute 6 | { 7 | public readonly float min; 8 | 9 | public MinAttribute(float min) 10 | { 11 | this.min = min; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/MinAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b07292ae638766047a6751da7552e566 3 | timeCreated: 1453220005 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/RenderTextureUtility.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UnityStandardAssets.CinematicEffects 5 | { 6 | public class RenderTextureUtility 7 | { 8 | //Temporary render texture handling 9 | private List m_TemporaryRTs = new List(); 10 | 11 | public RenderTexture GetTemporaryRenderTexture(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.ARGBHalf, FilterMode filterMode = FilterMode.Bilinear) 12 | { 13 | var rt = RenderTexture.GetTemporary(width, height, depthBuffer, format); 14 | rt.filterMode = filterMode; 15 | rt.wrapMode = TextureWrapMode.Clamp; 16 | rt.name = "RenderTextureUtilityTempTexture"; 17 | m_TemporaryRTs.Add(rt); 18 | return rt; 19 | } 20 | 21 | public void ReleaseTemporaryRenderTexture(RenderTexture rt) 22 | { 23 | if (rt == null) 24 | return; 25 | 26 | if (!m_TemporaryRTs.Contains(rt)) 27 | { 28 | Debug.LogErrorFormat("Attempting to remove texture that was not allocated: {0}", rt); 29 | return; 30 | } 31 | 32 | m_TemporaryRTs.Remove(rt); 33 | RenderTexture.ReleaseTemporary(rt); 34 | } 35 | 36 | public void ReleaseAllTemporaryRenderTextures() 37 | { 38 | for (int i = 0; i < m_TemporaryRTs.Count; ++i) 39 | RenderTexture.ReleaseTemporary(m_TemporaryRTs[i]); 40 | 41 | m_TemporaryRTs.Clear(); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/Common/RenderTextureUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 054e694bae00c374a97c2bc495fca66b 3 | timeCreated: 1449148391 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/README.txt: -------------------------------------------------------------------------------- 1 | Scripts here are originated from: 2 | https://bitbucket.org/Unity-Technologies/cinematic-image-effects 3 | 4 | LICENSE: 5 | https://bitbucket.org/Unity-Technologies/cinematic-image-effects/src/530035607b7b707e7bab8384272dd8b34a6cf271/LICENSE?fileviewer=file-view-default 6 | -------------------------------------------------------------------------------- /Assets/CinematicEffects/README.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e860e900b149948e687f51c443ed7857 3 | timeCreated: 1459573998 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 52433e3419a1e423fb0485f6fa322de2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/AtlasExporterWindow.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | public class AtlasExporterWindow : EditorWindow 5 | { 6 | private static Sprite sprite_; 7 | private static RenderTexture render_texture_; 8 | private static Material material_; 9 | private Texture2D texture_; 10 | 11 | [MenuItem("Window/AtlasExporter")] 12 | public static void ShowWindow() 13 | { 14 | EditorWindow.GetWindow(typeof(AtlasExporterWindow)); 15 | } 16 | 17 | void OnGUI() 18 | { 19 | GUILayout.Label("This is a tool for create texture atlas."); 20 | if (GUILayout.Button("convert atlas")) { 21 | Debug.Log("converting.."); 22 | 23 | render_texture_ = AssetDatabase.LoadAssetAtPath("Assets/Textures/blit_render_texture.renderTexture", typeof(RenderTexture)) as RenderTexture; 24 | material_ = AssetDatabase.LoadAssetAtPath("Assets/Materials/blit.mat", typeof(Material)) as Material; 25 | sprite_ = AssetDatabase.LoadAssetAtPath("Assets/Textures/GUI/square.png", typeof(Sprite)) as Sprite; 26 | 27 | Texture2D tex2d = UnityEditor.Sprites.SpriteUtility.GetSpriteTexture(sprite_, true /* getAtlasData */); 28 | Graphics.SetRenderTarget(render_texture_); 29 | GL.Clear(true, true, new Color(0, 0, 0, 0)); 30 | Graphics.Blit(tex2d, render_texture_, material_, 0 /* pass */); 31 | 32 | RenderTexture.active = render_texture_; 33 | int width = render_texture_.width; 34 | int height = render_texture_.height; 35 | texture_ = new Texture2D(width, width, TextureFormat.ARGB32, false /* mipmap */); 36 | texture_.ReadPixels( new Rect(0, 0, width, height), 0, 0); 37 | texture_.Apply(); 38 | RenderTexture.active = null; //can help avoid errors 39 | 40 | var atlas_path = "/Textures/GUI/atlas.png"; 41 | byte[] bytes; 42 | bytes = texture_.EncodeToPNG(); 43 | var path = Application.dataPath + atlas_path; 44 | System.IO.File.WriteAllBytes(path, bytes); 45 | 46 | var rel_path = "Assets" + atlas_path; 47 | AssetDatabase.ImportAsset(rel_path, ImportAssetOptions.ForceUpdate | ImportAssetOptions.ImportRecursive); 48 | Debug.Log("done!"); 49 | } 50 | 51 | if (texture_ != null) { 52 | Graphics.DrawTexture(new Rect(10, 240, 100, 100), texture_); 53 | } 54 | } 55 | } 56 | 57 | /* 58 | * End of AtlasExporterWindow.cs 59 | */ 60 | -------------------------------------------------------------------------------- /Assets/Editor/AtlasExporterWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fb6aedcbce6f4e58b00e42cb9de9d2e 3 | timeCreated: 1486218783 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1be78878fba234637a6351bdab44dfd1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.fontsettings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb81b2d85fe5e4099ba6d279a35ba61f 3 | timeCreated: 1486280594 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: M+2Mm 10 | m_Shader: {fileID: 4800000, guid: c7f90a888d1e94765b70f79985d540fe, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _BumpMap 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _DetailAlbedoMap 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - first: 31 | name: _DetailMask 32 | second: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - first: 37 | name: _DetailNormalMap 38 | second: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - first: 43 | name: _EmissionMap 44 | second: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - first: 49 | name: _MainTex 50 | second: 51 | m_Texture: {fileID: 2800000, guid: 3fd560cf3d3ab4e5ba6ca55d5986ce43, type: 3} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - first: 55 | name: _MetallicGlossMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - first: 61 | name: _OcclusionMap 62 | second: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - first: 67 | name: _ParallaxMap 68 | second: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | m_Floats: 73 | - first: 74 | name: _BumpScale 75 | second: 1 76 | - first: 77 | name: _Cutoff 78 | second: 0.5 79 | - first: 80 | name: _DetailNormalMapScale 81 | second: 1 82 | - first: 83 | name: _DstBlend 84 | second: 0 85 | - first: 86 | name: _GlossMapScale 87 | second: 1 88 | - first: 89 | name: _Glossiness 90 | second: 0.5 91 | - first: 92 | name: _GlossyReflections 93 | second: 1 94 | - first: 95 | name: _Metallic 96 | second: 0 97 | - first: 98 | name: _Mode 99 | second: 0 100 | - first: 101 | name: _OcclusionStrength 102 | second: 1 103 | - first: 104 | name: _Parallax 105 | second: 0.02 106 | - first: 107 | name: _SmoothnessTextureChannel 108 | second: 0 109 | - first: 110 | name: _SpecularHighlights 111 | second: 1 112 | - first: 113 | name: _SrcBlend 114 | second: 1 115 | - first: 116 | name: _UVSec 117 | second: 0 118 | - first: 119 | name: _ZWrite 120 | second: 1 121 | m_Colors: 122 | - first: 123 | name: _Color 124 | second: {r: 1, g: 1, b: 1, a: 1} 125 | - first: 126 | name: _EmissionColor 127 | second: {r: 0, g: 0, b: 0, a: 1} 128 | -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3270db681e498448fa30a9d11fdfa178 3 | timeCreated: 1486274186 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Fonts/M+2Mm.png -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fd560cf3d3ab4e5ba6ca55d5986ce43 3 | timeCreated: 1486280538 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Fonts/M+2Mm.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7671d6616db647e2bfb6f5931390e6c 3 | timeCreated: 1486280538 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 752184dda4b784c858d304f4135dccc6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/burner_instanced_indirect.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: burner_instanced_indirect 10 | m_Shader: {fileID: 4800000, guid: aff065c0dfcea4af1b0d2323e07a3fcf, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 989b9c9b5807b480db4b0eb77c47d793, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Materials/burner_instanced_indirect.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d93845dcf15c94fb28f21e91be03789e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/debris.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: debris 10 | m_Shader: {fileID: 4800000, guid: dd557b3dd284c42529da173f518dbdcf, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - : 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | m_Floats: 26 | - : 0 27 | m_Colors: 28 | - : {r: 0, g: 1, b: 0, a: NaN} 29 | - _TargetPosition: {r: -220.01656, g: -19.461021, b: -25.886724, a: 0} 30 | -------------------------------------------------------------------------------- /Assets/Materials/debris.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4811bc2bcdfd4afd8d26a47b87ce663 3 | timeCreated: 1487164971 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/explosion_instanced_indirect.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: explosion_instanced_indirect 10 | m_Shader: {fileID: 4800000, guid: a98fe64bd66d8450b95b4aae022f1a4f, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 1183e3f0393ed447d909c1fc69eaef29, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Materials/explosion_instanced_indirect.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b38d881fe44f4b2ebec5d74120e6909 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/final.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: final 10 | m_Shader: {fileID: 4800000, guid: a1d3dbad7fc754fd084766475fdef099, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Materials/final.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29469f4d7b2654e8fa20bffc69be0ed0 3 | timeCreated: 1485344548 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/font.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: font 10 | m_Shader: {fileID: 4800000, guid: c7f90a888d1e94765b70f79985d540fe, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _BumpMap 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _DetailAlbedoMap 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - first: 31 | name: _DetailMask 32 | second: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - first: 37 | name: _DetailNormalMap 38 | second: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - first: 43 | name: _EmissionMap 44 | second: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - first: 49 | name: _MainTex 50 | second: 51 | m_Texture: {fileID: 2800000, guid: 3fd560cf3d3ab4e5ba6ca55d5986ce43, type: 3} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - first: 55 | name: _MetallicGlossMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - first: 61 | name: _OcclusionMap 62 | second: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - first: 67 | name: _ParallaxMap 68 | second: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | m_Floats: 73 | - first: 74 | name: _BumpScale 75 | second: 1 76 | - first: 77 | name: _Cutoff 78 | second: 0.5 79 | - first: 80 | name: _DetailNormalMapScale 81 | second: 1 82 | - first: 83 | name: _DstBlend 84 | second: 0 85 | - first: 86 | name: _Glossiness 87 | second: 0.5 88 | - first: 89 | name: _Metallic 90 | second: 0 91 | - first: 92 | name: _Mode 93 | second: 0 94 | - first: 95 | name: _OcclusionStrength 96 | second: 1 97 | - first: 98 | name: _Parallax 99 | second: 0.02 100 | - first: 101 | name: _SrcBlend 102 | second: 1 103 | - first: 104 | name: _UVSec 105 | second: 0 106 | - first: 107 | name: _ZWrite 108 | second: 1 109 | m_Colors: 110 | - first: 111 | name: _Color 112 | second: {r: 1, g: 1, b: 1, a: 1} 113 | - first: 114 | name: _EmissionColor 115 | second: {r: 0, g: 0, b: 0, a: 1} 116 | -------------------------------------------------------------------------------- /Assets/Materials/font.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 563aa9f128f84474ca29e41546b8d089 3 | timeCreated: 1486218693 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/missile_instanced_indirect.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: missile_instanced_indirect 10 | m_Shader: {fileID: 4800000, guid: 436c3cdced61b4ca4be72062308b224a, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 32dbe722d5532441cb9a59e2afb2705c, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Materials/missile_instanced_indirect.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bedb7ecd0b9054c74bbeb0a625109350 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/skybox.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: skybox 10 | m_Shader: {fileID: 4800000, guid: 30085050fe14f4ca493985861a34ec09, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - : 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _Tex: 26 | m_Texture: {fileID: 8900000, guid: a045bd16a23c2440e8f26c68337b6973, type: 3} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | m_Floats: 30 | - : 0 31 | - _SwitchSkybox: 0 32 | m_Colors: 33 | - : {r: 0, g: 1, b: 0, a: NaN} 34 | -------------------------------------------------------------------------------- /Assets/Materials/skybox.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8e5099381db340aabc1d2987d02a06b 3 | timeCreated: 1485698702 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/spark.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: spark 10 | m_Shader: {fileID: 4800000, guid: e588c9f79a04b4a33866d8f399c4e19b, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _BumpMap 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _DetailAlbedoMap 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - first: 31 | name: _DetailMask 32 | second: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - first: 37 | name: _DetailNormalMap 38 | second: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - first: 43 | name: _EmissionMap 44 | second: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - first: 49 | name: _MainTex 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - first: 55 | name: _MetallicGlossMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - first: 61 | name: _OcclusionMap 62 | second: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - first: 67 | name: _ParallaxMap 68 | second: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | m_Floats: 73 | - first: 74 | name: _BumpScale 75 | second: 1 76 | - first: 77 | name: _Cutoff 78 | second: 0.5 79 | - first: 80 | name: _DetailNormalMapScale 81 | second: 1 82 | - first: 83 | name: _DstBlend 84 | second: 0 85 | - first: 86 | name: _Glossiness 87 | second: 0.5 88 | - first: 89 | name: _Metallic 90 | second: 0 91 | - first: 92 | name: _Mode 93 | second: 0 94 | - first: 95 | name: _OcclusionStrength 96 | second: 1 97 | - first: 98 | name: _Parallax 99 | second: 0.02 100 | - first: 101 | name: _SrcBlend 102 | second: 1 103 | - first: 104 | name: _UVSec 105 | second: 0 106 | - first: 107 | name: _ZWrite 108 | second: 1 109 | m_Colors: 110 | - first: 111 | name: _Color 112 | second: {r: 1, g: 1, b: 1, a: 1} 113 | - first: 114 | name: _EmissionColor 115 | second: {r: 0, g: 0, b: 0, a: 1} 116 | -------------------------------------------------------------------------------- /Assets/Materials/spark.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c13d63ff90bd74121af3c07300fd5957 3 | timeCreated: 1483622898 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/sprite.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: sprite 10 | m_Shader: {fileID: 4800000, guid: bb8a56aeda5914aee976a4880e3d666a, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 48030df7726f24883a3ac3fc884d50f1, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _Glossiness: 0.5 63 | - _Metallic: 0 64 | - _Mode: 0 65 | - _OcclusionStrength: 1 66 | - _Parallax: 0.02 67 | - _SrcBlend: 1 68 | - _UVSec: 0 69 | - _ZWrite: 1 70 | m_Colors: 71 | - _Color: {r: 1, g: 1, b: 1, a: 1} 72 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 73 | -------------------------------------------------------------------------------- /Assets/Materials/sprite.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f69a85ebe2424be2996a83edba6208b 3 | timeCreated: 1486218693 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/trail_instanced_indirect.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: trail_instanced_indirect 10 | m_Shader: {fileID: 4800000, guid: ea9b373192666431481afa4346141f8d, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 4f49ad4e2d90b4fa096d8aef090e0158, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _Debug: 0 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _Glossiness: 0.5 64 | - _Metallic: 0 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _Parallax: 0.02 68 | - _SrcBlend: 1 69 | - _UVSec: 0 70 | - _ZWrite: 1 71 | m_Colors: 72 | - _Color: {r: 1, g: 1, b: 1, a: 1} 73 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 74 | -------------------------------------------------------------------------------- /Assets/Materials/trail_instanced_indirect.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8392d91e835ac4eaf9d5eb6e1d6bd0e9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9205f06e8e1c841529df543fbe15b9dd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Fighter.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edfe00ae7c87e49328d32b78e8baf5ed 3 | folderAsset: yes 4 | timeCreated: 1485078220 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8aa3c6acc3bfa4146b1c473523073d56 3 | folderAsset: yes 4 | timeCreated: 1458311182 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/_0Mat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: _0Mat 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/_0Mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a6629b02375148ebb2c4a497eaef086 3 | timeCreated: 1490102093 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/aura_01.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c50bb4377f26c43938bad70c98dd18a2 3 | timeCreated: 1488718595 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_burner_instanced.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: fighter_burner_instanced 10 | m_Shader: {fileID: 4800000, guid: ed74271cb3fe34783921116f7ef3bfaf, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 1 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _CubeTex: 26 | m_Texture: {fileID: 8900000, guid: 086fde73e50f94cffb8b2724d7940ea6, type: 3} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailAlbedoMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailMask: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _DetailNormalMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _EmissionMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 2800000, guid: 989b9c9b5807b480db4b0eb77c47d793, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _AlphaValue: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.5 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _Specular: 1 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_burner_instanced.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5591b78a38e664a98bd5cd983b69c1a1 3 | timeCreated: 1490102170 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_instanced.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: fighter_instanced 10 | m_Shader: {fileID: 4800000, guid: a133337b98d8046768d2b2f63aaa0b1e, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 1 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _CubeTex: 26 | m_Texture: {fileID: 8900000, guid: 086fde73e50f94cffb8b2724d7940ea6, type: 3} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailAlbedoMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailMask: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _DetailNormalMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _EmissionMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 2800000, guid: 18eb74a84bb844facbe63b505065489d, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _AlphaValue: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.5 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _Specular: 1 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_instanced.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d721a88e73d1e4a94b1ba801445d2a39 3 | timeCreated: 1490102170 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_instancedLW.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: fighter_instancedLW 10 | m_Shader: {fileID: 4800000, guid: a133337b98d8046768d2b2f63aaa0b1e, type: 3} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 1 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _CubeTex: 26 | m_Texture: {fileID: 8900000, guid: 086fde73e50f94cffb8b2724d7940ea6, type: 3} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailAlbedoMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailMask: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _DetailNormalMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _EmissionMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 2800000, guid: 18eb74a84bb844facbe63b505065489d, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _AlphaValue: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.5 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _Specular: 1 76 | - _SpecularHighlights: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | -------------------------------------------------------------------------------- /Assets/Models/Fighter/Materials/fighter_instancedLW.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d763f71189ab4dbeb2888b611f3eabf 3 | timeCreated: 1490102170 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Models/burner.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/burner.fbx -------------------------------------------------------------------------------- /Assets/Models/burner.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4fa4b3862085406e864a8d4b4b86dc7 3 | ModelImporter: 4 | serializedVersion: 22 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: burner 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: burner 12 | externalObjects: {} 13 | materials: 14 | importMaterials: 1 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | extraUserProperties: [] 38 | clipAnimations: [] 39 | isReadable: 0 40 | meshes: 41 | lODScreenPercentages: [] 42 | globalScale: 1 43 | meshCompression: 0 44 | addColliders: 0 45 | importVisibility: 1 46 | importBlendShapes: 0 47 | importCameras: 1 48 | importLights: 1 49 | swapUVChannels: 0 50 | generateSecondaryUV: 0 51 | useFileUnits: 1 52 | optimizeMeshForGPU: 1 53 | keepQuads: 0 54 | weldVertices: 1 55 | preserveHierarchy: 0 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 0 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | importAnimation: 1 68 | copyAvatar: 0 69 | humanDescription: 70 | serializedVersion: 2 71 | human: [] 72 | skeleton: [] 73 | armTwist: 0.5 74 | foreArmTwist: 0.5 75 | upperLegTwist: 0.5 76 | legTwist: 0.5 77 | armStretch: 0.05 78 | legStretch: 0.05 79 | feetSpacing: 0 80 | rootMotionBoneName: 81 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 82 | hasTranslationDoF: 0 83 | hasExtraRoot: 0 84 | skeletonHasParents: 1 85 | lastHumanDescriptionAvatarSource: {instanceID: 0} 86 | animationType: 0 87 | humanoidOversampling: 1 88 | additionalBone: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Assets/Models/burner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/burner.png -------------------------------------------------------------------------------- /Assets/Models/burner.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 989b9c9b5807b480db4b0eb77c47d793 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaUsage: 1 49 | alphaIsTransparency: 0 50 | spriteTessellationDetail: -1 51 | textureType: 0 52 | textureShape: 1 53 | singleChannelComponent: 0 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - serializedVersion: 2 59 | buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | bones: [] 75 | spriteID: 76 | vertices: [] 77 | indices: 78 | edges: [] 79 | weights: [] 80 | spritePackingTag: 81 | userData: 82 | assetBundleName: 83 | assetBundleVariant: 84 | -------------------------------------------------------------------------------- /Assets/Models/fighter-effect.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc6868a570d304a9987b8e752ba43a26 3 | timeCreated: 1521534258 4 | licenseType: Pro 5 | ModelImporter: 6 | serializedVersion: 22 7 | fileIDToRecycleName: 8 | 100000: //RootNode 9 | 100002: fighter-effect_0 10 | 400000: //RootNode 11 | 400002: fighter-effect_0 12 | 2100000: fighter-effect_0Mat 13 | 2300000: fighter-effect_0 14 | 3300000: fighter-effect_0 15 | 4300000: fighter-effect_0 16 | externalObjects: {} 17 | materials: 18 | importMaterials: 1 19 | materialName: 0 20 | materialSearch: 1 21 | materialLocation: 1 22 | animations: 23 | legacyGenerateAnimations: 4 24 | bakeSimulation: 0 25 | resampleCurves: 1 26 | optimizeGameObjects: 0 27 | motionNodeName: 28 | rigImportErrors: 29 | rigImportWarnings: 30 | animationImportErrors: 31 | animationImportWarnings: 32 | animationRetargetingWarnings: 33 | animationDoRetargetingWarnings: 0 34 | importAnimatedCustomProperties: 0 35 | animationCompression: 1 36 | animationRotationError: 0.5 37 | animationPositionError: 0.5 38 | animationScaleError: 0.5 39 | animationWrapMode: 0 40 | extraExposedTransformPaths: [] 41 | extraUserProperties: [] 42 | clipAnimations: [] 43 | isReadable: 1 44 | meshes: 45 | lODScreenPercentages: [] 46 | globalScale: 1 47 | meshCompression: 0 48 | addColliders: 0 49 | importVisibility: 1 50 | importBlendShapes: 1 51 | importCameras: 1 52 | importLights: 1 53 | swapUVChannels: 0 54 | generateSecondaryUV: 0 55 | useFileUnits: 1 56 | optimizeMeshForGPU: 1 57 | keepQuads: 0 58 | weldVertices: 1 59 | preserveHierarchy: 0 60 | indexFormat: 0 61 | secondaryUVAngleDistortion: 8 62 | secondaryUVAreaDistortion: 15.000001 63 | secondaryUVHardAngle: 88 64 | secondaryUVPackMargin: 4 65 | useFileScale: 1 66 | tangentSpace: 67 | normalSmoothAngle: 60 68 | normalImportMode: 0 69 | tangentImportMode: 3 70 | normalCalculationMode: 4 71 | importAnimation: 1 72 | copyAvatar: 0 73 | humanDescription: 74 | serializedVersion: 2 75 | human: [] 76 | skeleton: [] 77 | armTwist: 0.5 78 | foreArmTwist: 0.5 79 | upperLegTwist: 0.5 80 | legTwist: 0.5 81 | armStretch: 0.05 82 | legStretch: 0.05 83 | feetSpacing: 0 84 | rootMotionBoneName: 85 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 86 | hasTranslationDoF: 0 87 | hasExtraRoot: 0 88 | skeletonHasParents: 1 89 | lastHumanDescriptionAvatarSource: {instanceID: 0} 90 | animationType: 0 91 | humanoidOversampling: 1 92 | additionalBone: 0 93 | userData: 94 | assetBundleName: 95 | assetBundleVariant: 96 | -------------------------------------------------------------------------------- /Assets/Models/fighter.obj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e736a64a371646c3b89ab717055723e 3 | timeCreated: 1521532470 4 | licenseType: Pro 5 | ModelImporter: 6 | serializedVersion: 22 7 | fileIDToRecycleName: 8 | 100000: //RootNode 9 | 100002: fighter_0 10 | 100004: fighter_1 11 | 400000: //RootNode 12 | 400002: fighter_0 13 | 400004: fighter_1 14 | 2100000: fighter_0Mat 15 | 2100002: fighter_1Mat 16 | 2300000: fighter_0 17 | 2300002: fighter_1 18 | 3300000: fighter_0 19 | 3300002: fighter_1 20 | 4300000: fighter_0 21 | 4300002: fighter_1 22 | externalObjects: {} 23 | materials: 24 | importMaterials: 1 25 | materialName: 0 26 | materialSearch: 1 27 | materialLocation: 1 28 | animations: 29 | legacyGenerateAnimations: 4 30 | bakeSimulation: 0 31 | resampleCurves: 1 32 | optimizeGameObjects: 0 33 | motionNodeName: 34 | rigImportErrors: 35 | rigImportWarnings: 36 | animationImportErrors: 37 | animationImportWarnings: 38 | animationRetargetingWarnings: 39 | animationDoRetargetingWarnings: 0 40 | importAnimatedCustomProperties: 0 41 | animationCompression: 1 42 | animationRotationError: 0.5 43 | animationPositionError: 0.5 44 | animationScaleError: 0.5 45 | animationWrapMode: 0 46 | extraExposedTransformPaths: [] 47 | extraUserProperties: [] 48 | clipAnimations: [] 49 | isReadable: 1 50 | meshes: 51 | lODScreenPercentages: [] 52 | globalScale: 1 53 | meshCompression: 0 54 | addColliders: 0 55 | importVisibility: 1 56 | importBlendShapes: 1 57 | importCameras: 1 58 | importLights: 1 59 | swapUVChannels: 0 60 | generateSecondaryUV: 0 61 | useFileUnits: 1 62 | optimizeMeshForGPU: 1 63 | keepQuads: 0 64 | weldVertices: 1 65 | preserveHierarchy: 0 66 | indexFormat: 0 67 | secondaryUVAngleDistortion: 8 68 | secondaryUVAreaDistortion: 15.000001 69 | secondaryUVHardAngle: 88 70 | secondaryUVPackMargin: 4 71 | useFileScale: 1 72 | tangentSpace: 73 | normalSmoothAngle: 60 74 | normalImportMode: 0 75 | tangentImportMode: 3 76 | normalCalculationMode: 4 77 | importAnimation: 1 78 | copyAvatar: 0 79 | humanDescription: 80 | serializedVersion: 2 81 | human: [] 82 | skeleton: [] 83 | armTwist: 0.5 84 | foreArmTwist: 0.5 85 | upperLegTwist: 0.5 86 | legTwist: 0.5 87 | armStretch: 0.05 88 | legStretch: 0.05 89 | feetSpacing: 0 90 | rootMotionBoneName: 91 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 92 | hasTranslationDoF: 0 93 | hasExtraRoot: 0 94 | skeletonHasParents: 1 95 | lastHumanDescriptionAvatarSource: {instanceID: 0} 96 | animationType: 0 97 | humanoidOversampling: 1 98 | additionalBone: 0 99 | userData: 100 | assetBundleName: 101 | assetBundleVariant: 102 | -------------------------------------------------------------------------------- /Assets/Models/fighter.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/fighter.psd -------------------------------------------------------------------------------- /Assets/Models/fighter.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18eb74a84bb844facbe63b505065489d 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaUsage: 1 49 | alphaIsTransparency: 0 50 | spriteTessellationDetail: -1 51 | textureType: 0 52 | textureShape: 1 53 | singleChannelComponent: 0 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - serializedVersion: 2 59 | buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | bones: [] 75 | spriteID: 76 | vertices: [] 77 | indices: 78 | edges: [] 79 | weights: [] 80 | spritePackingTag: 81 | userData: 82 | assetBundleName: 83 | assetBundleVariant: 84 | -------------------------------------------------------------------------------- /Assets/Models/fighter_nrm.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/fighter_nrm.psd -------------------------------------------------------------------------------- /Assets/Models/fighter_nrm.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 532ee98242ecf476fa064ae3ec68c626 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaUsage: 1 49 | alphaIsTransparency: 0 50 | spriteTessellationDetail: -1 51 | textureType: 0 52 | textureShape: 1 53 | singleChannelComponent: 0 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - serializedVersion: 2 59 | buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | bones: [] 75 | spriteID: 76 | vertices: [] 77 | indices: 78 | edges: [] 79 | weights: [] 80 | spritePackingTag: 81 | userData: 82 | assetBundleName: 83 | assetBundleVariant: 84 | -------------------------------------------------------------------------------- /Assets/Models/missile.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/missile.fbx -------------------------------------------------------------------------------- /Assets/Models/missile.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87bc15a50221647f4bff4d7932049f41 3 | ModelImporter: 4 | serializedVersion: 22 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: missile 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: missile 12 | externalObjects: {} 13 | materials: 14 | importMaterials: 1 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | animationCompression: 1 32 | animationRotationError: 0.5 33 | animationPositionError: 0.5 34 | animationScaleError: 0.5 35 | animationWrapMode: 0 36 | extraExposedTransformPaths: [] 37 | extraUserProperties: [] 38 | clipAnimations: [] 39 | isReadable: 0 40 | meshes: 41 | lODScreenPercentages: [] 42 | globalScale: 1 43 | meshCompression: 0 44 | addColliders: 0 45 | importVisibility: 1 46 | importBlendShapes: 0 47 | importCameras: 1 48 | importLights: 1 49 | swapUVChannels: 0 50 | generateSecondaryUV: 0 51 | useFileUnits: 1 52 | optimizeMeshForGPU: 1 53 | keepQuads: 0 54 | weldVertices: 1 55 | preserveHierarchy: 0 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 0 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | importAnimation: 1 68 | copyAvatar: 0 69 | humanDescription: 70 | serializedVersion: 2 71 | human: [] 72 | skeleton: [] 73 | armTwist: 0.5 74 | foreArmTwist: 0.5 75 | upperLegTwist: 0.5 76 | legTwist: 0.5 77 | armStretch: 0.05 78 | legStretch: 0.05 79 | feetSpacing: 0 80 | rootMotionBoneName: 81 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 82 | hasTranslationDoF: 0 83 | hasExtraRoot: 0 84 | skeletonHasParents: 1 85 | lastHumanDescriptionAvatarSource: {instanceID: 0} 86 | animationType: 0 87 | humanoidOversampling: 1 88 | additionalBone: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Assets/Models/missile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Models/missile.png -------------------------------------------------------------------------------- /Assets/Models/missile.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32dbe722d5532441cb9a59e2afb2705c 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaUsage: 1 49 | alphaIsTransparency: 0 50 | spriteTessellationDetail: -1 51 | textureType: 0 52 | textureShape: 1 53 | singleChannelComponent: 0 54 | maxTextureSizeSet: 0 55 | compressionQualitySet: 0 56 | textureFormatSet: 0 57 | platformSettings: 58 | - serializedVersion: 2 59 | buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - serializedVersion: 2 70 | buildTarget: Standalone 71 | maxTextureSize: 2048 72 | resizeAlgorithm: 0 73 | textureFormat: -1 74 | textureCompression: 1 75 | compressionQuality: 50 76 | crunchedCompression: 0 77 | allowsAlphaSplitting: 0 78 | overridden: 0 79 | androidETC2FallbackOverride: 0 80 | - serializedVersion: 2 81 | buildTarget: iPhone 82 | maxTextureSize: 2048 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | spriteSheet: 92 | serializedVersion: 2 93 | sprites: [] 94 | outline: [] 95 | physicsShape: [] 96 | bones: [] 97 | spriteID: 98 | vertices: [] 99 | indices: 100 | edges: [] 101 | weights: [] 102 | spritePackingTag: 103 | userData: 104 | assetBundleName: 105 | assetBundleVariant: 106 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 973160ce51886432ab2cbb5d340cba64 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/main.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d2d655cc7f0c28448b0918bebb721a5 3 | timeCreated: 1509972402 4 | licenseType: Pro 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6272a18ab9934b9e8595113a2262b4c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/CV.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | class CV { 10 | public static Vector3 Vector3Zero = Vector3.zero; 11 | public static Vector3 Vector3One = Vector3.one; 12 | public static Vector3 Vector3Forward = Vector3.forward; 13 | public static Vector3 Vector3Back = Vector3.back; 14 | public static Vector3 Vector3Left = Vector3.left; 15 | public static Vector3 Vector3Right = Vector3.right; 16 | public static Vector3 Vector3Up = Vector3.up; 17 | public static Vector3 Vector3Down = Vector3.down; 18 | public static Quaternion QuaternionIdentity = Quaternion.identity; 19 | public static Quaternion Quaternion180Y = Quaternion.Euler(0f, 180f, 0f); 20 | 21 | public static Vector3[] Vector3ArrayEmpty = new Vector3[0]; 22 | public static Vector2[] Vector2ArrayEmpty = new Vector2[0]; 23 | public static int[] IntArrayEmpty = new int[0]; 24 | } 25 | 26 | } // namespace UTJ { 27 | 28 | /* 29 | * End of CV.cs 30 | */ 31 | -------------------------------------------------------------------------------- /Assets/Scripts/CV.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa7c42dd2368344b9a6858fd40d7e0f0 3 | timeCreated: 1483532365 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/CameraBase.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | 6 | namespace UTJ { 7 | 8 | public abstract class CameraBase : Task 9 | { 10 | private const float SCREEN_HEIGHT = 360f; // size of FinalCamera 11 | public bool active_; 12 | public MyTransform transform_; 13 | private Matrix4x4 screen_matrix_; 14 | 15 | public override void init() 16 | { 17 | base.init(); 18 | transform_.init(); 19 | active_ = true; 20 | } 21 | 22 | public void applyTransform(ref Vector3 pos, ref Quaternion rot) 23 | { 24 | transform_.position_ = pos; 25 | transform_.rotation_ = rot; 26 | } 27 | 28 | public override void renderUpdate(int front, CameraBase dummy, ref DrawBuffer draw_buffer) 29 | { 30 | if (active_) { 31 | draw_buffer.registCamera(ref transform_); 32 | var view_matrix = transform_.getTRS(); 33 | var projection_matrix = SystemManager.Instance.ProjectionMatrix; 34 | screen_matrix_ = projection_matrix * view_matrix.inverse; 35 | } 36 | } 37 | 38 | public Vector3 getScreenPoint(ref Vector3 world_position) 39 | { 40 | var v = screen_matrix_.MultiplyPoint(world_position); 41 | float w = SCREEN_HEIGHT*((float)Screen.width/(float)Screen.height); 42 | float h = SCREEN_HEIGHT; 43 | return new Vector3(v.x * (-w), v.y * (-h), v.z); 44 | } 45 | } 46 | 47 | } // namespace UTJ { 48 | 49 | /* 50 | * End of CameraBase.cs 51 | */ 52 | -------------------------------------------------------------------------------- /Assets/Scripts/CameraBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d19c4e8127aad4d2c9fb0cce4a0d4f5c 3 | timeCreated: 1486474685 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ComputeBillboardRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f29692ced1444b81871f496d8a6ae90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Controller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04c2f733fa5f9445fad743786d2ca232 3 | timeCreated: 1486039982 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Debris.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | public class Debris 10 | { 11 | // singleton 12 | static Debris instance_; 13 | public static Debris Instance { get { return instance_ ?? (instance_ = new Debris()); } } 14 | 15 | const int POINT_MAX = 512; 16 | private float range_; 17 | private float rangeR_; 18 | private Matrix4x4 prev_view_matrix_; 19 | private int delay_start_count_ = 2; 20 | private Mesh mesh_; 21 | private Material material_; 22 | static readonly int material_TargetPosition = Shader.PropertyToID("_TargetPosition"); 23 | static readonly int material_PrevInvMatrix = Shader.PropertyToID("_PrevInvMatrix"); 24 | static readonly int material_Color = Shader.PropertyToID("_Color"); 25 | 26 | public Mesh getMesh() { return mesh_; } 27 | public Material getMaterial() { return material_; } 28 | 29 | public void init(Material material) 30 | { 31 | range_ = 16f; 32 | rangeR_ = 1f/range_; 33 | var vertices = new Vector3[POINT_MAX*2]; 34 | for (var i = 0; i < POINT_MAX; ++i) { 35 | float x = Random.Range(-range_, range_); 36 | float y = Random.Range(-range_, range_); 37 | float z = Random.Range(-range_, range_); 38 | var point = new Vector3(x, y, z); 39 | vertices[i*2+0] = point; 40 | vertices[i*2+1] = point; 41 | } 42 | var indices = new int[POINT_MAX*2]; 43 | for (var i = 0; i < POINT_MAX*2; ++i) { 44 | indices[i] = i; 45 | } 46 | var colors = new Color[POINT_MAX*2]; 47 | for (var i = 0; i < POINT_MAX; ++i) { 48 | colors[i*2+0] = new Color(0f, 0f, 0f /* not used */, 1f); 49 | colors[i*2+1] = new Color(0f, 0f, 0f /* not used */, 0f); 50 | } 51 | mesh_ = new Mesh(); 52 | mesh_.name = "debris"; 53 | mesh_.vertices = vertices; 54 | mesh_.colors = colors; 55 | mesh_.bounds = new Bounds(Vector3.zero, Vector3.one * 99999999); 56 | mesh_.SetIndices(indices, MeshTopology.Lines, 0); 57 | mesh_.UploadMeshData(true /* markNoLogerReadable */); 58 | material_ = material; 59 | material_.SetFloat("_Range", range_); 60 | material_.SetFloat("_RangeR", rangeR_); 61 | material_.SetColor(material_Color, new Color(1f, 1f, 1f)); 62 | } 63 | 64 | public void render(Camera camera, double render_time) 65 | { 66 | if (material_ == null) { 67 | return; 68 | } 69 | 70 | if (delay_start_count_ > 0) { 71 | prev_view_matrix_ = camera.worldToCameraMatrix; 72 | --delay_start_count_; 73 | return; 74 | } 75 | var target_position = camera.transform.TransformPoint(new Vector3(0f, 0f, range_*0.5f)); 76 | var matrix = prev_view_matrix_ * camera.cameraToWorldMatrix; // prev-view * inverted-cur-view 77 | material_.SetVector(material_TargetPosition, target_position); 78 | material_.SetMatrix(material_PrevInvMatrix, matrix); 79 | prev_view_matrix_ = camera.worldToCameraMatrix; 80 | } 81 | } 82 | 83 | } // namespace UTJ { 84 | 85 | /* 86 | * End of Debris.cs 87 | */ 88 | -------------------------------------------------------------------------------- /Assets/Scripts/Debris.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fdc3e3210db247a1b2a3f2cfadaaef2 3 | timeCreated: 1487164967 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/DebrisRenderer.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))] 10 | public class DebrisRenderer : MonoBehaviour { 11 | 12 | private MeshFilter mf_; 13 | private MeshRenderer mr_; 14 | 15 | void Start() 16 | { 17 | mf_ = GetComponent(); 18 | mr_ = GetComponent(); 19 | mf_.sharedMesh = Debris.Instance.getMesh(); 20 | mr_.sharedMaterial = Debris.Instance.getMaterial(); 21 | } 22 | } 23 | 24 | } // namespace UTJ { 25 | 26 | /* 27 | * End of DebrisRenderer.cs 28 | */ 29 | -------------------------------------------------------------------------------- /Assets/Scripts/DebrisRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73b31f226a3b2470ea707983ac6c0421 3 | timeCreated: 1487164967 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/DebugCamera.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | 6 | namespace UTJ { 7 | 8 | public class DebugCamera : CameraBase 9 | { 10 | private RigidbodyTransform rigidbody_; 11 | 12 | public static DebugCamera create() 13 | { 14 | var camera = new DebugCamera(); 15 | camera.init(); 16 | return camera; 17 | } 18 | 19 | public override void init() 20 | { 21 | base.init(); 22 | rigidbody_.setPosition(ref CV.Vector3Zero); 23 | rigidbody_.setRotation(ref CV.QuaternionIdentity); 24 | rigidbody_.setRotateDamper(10f); 25 | } 26 | 27 | public override void update(float dt, double update_time) 28 | { 29 | update_in_pause(1f/60f); 30 | } 31 | 32 | public void setup(CameraBase prev_camera) 33 | { 34 | rigidbody_.setPositionAndRotation(ref prev_camera.transform_); 35 | } 36 | 37 | public void update_in_pause(float dt) 38 | { 39 | float hori = InputManager.Instance.getAnalog(InputManager.Button.Horizontal); 40 | float vert = InputManager.Instance.getAnalog(InputManager.Button.Vertical); 41 | if (InputManager.Instance.isButton(InputManager.Button.Right)) { 42 | rigidbody_.addRelativeForceXZ(hori*100f, vert*100f); 43 | var f = -rigidbody_.velocity_*10f; 44 | rigidbody_.addForce(ref f); 45 | } else { 46 | rigidbody_.addRelativeTorqueXY(-vert*8f, hori*8f); 47 | if (InputManager.Instance.isButton(InputManager.Button.Left)) { 48 | rigidbody_.addSpringTorque(ref CV.QuaternionIdentity, 20f); 49 | } 50 | } 51 | if (!InputManager.Instance.isButton(InputManager.Button.Left) && 52 | !InputManager.Instance.isButton(InputManager.Button.Right)) { 53 | var f = -rigidbody_.velocity_*100f; 54 | rigidbody_.addForce(ref f); 55 | } 56 | rigidbody_.update(dt); 57 | 58 | } 59 | 60 | public override void renderUpdate(int front, CameraBase dummy, ref DrawBuffer draw_buffer) 61 | { 62 | applyTransform(ref rigidbody_.transform_.position_, ref rigidbody_.transform_.rotation_); 63 | } 64 | } 65 | 66 | } // namespace UTJ { 67 | -------------------------------------------------------------------------------- /Assets/Scripts/DebugCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cc79a8d7dcac4612a494e396b07f721 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/DrawBuffer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ba4dc4ed7be24494bef6b51be36df56 3 | timeCreated: 1483537646 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Fighter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fed1fd1381fb3469e9467e1fc9bbf4b8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Fighter_alpha.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e619dd723eb914b7188146a20b2a34c8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/GameManager.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | using System.Collections.Generic; 7 | 8 | namespace UTJ { 9 | 10 | public class GameManager 11 | { 12 | // singleton 13 | static GameManager instance_; 14 | public static GameManager Instance { get { return instance_ ?? (instance_ = new GameManager()); } } 15 | 16 | private IEnumerator enumerator_; 17 | private double update_time_; 18 | 19 | public void init(bool debug) 20 | { 21 | if (!debug) { 22 | enumerator_ = act(); // この瞬間は実行されない 23 | } else { 24 | enumerator_ = act_debug(); 25 | } 26 | } 27 | 28 | public void update(float dt, double update_time) 29 | { 30 | update_time_ = update_time; 31 | enumerator_.MoveNext(); 32 | } 33 | 34 | private IEnumerator act() 35 | { 36 | const float RANGE = 300f; 37 | for (var i = 0; i < 100; ++i) { 38 | var position = new Vector3(MyRandom.Probability(0.5f) ? -RANGE : RANGE, 39 | MyRandom.Range(-RANGE, RANGE), 40 | MyRandom.Range(-RANGE, RANGE)); 41 | var rotation = Quaternion.LookRotation(MyRandom.onSphere(1f)); 42 | Fighter.create(Fighter.Type.Alpha, ref position, ref rotation, update_time_); 43 | } 44 | for (;;) { 45 | yield return null; 46 | } 47 | } 48 | 49 | private IEnumerator act_debug() 50 | { 51 | int target_id = MissileManager.Instance.registTarget(update_time_); 52 | MissileManager.Instance.setTargetRadius(target_id, 1f /* radius */); 53 | { 54 | var pos = new Vector3(0f, 0f, 10f); 55 | MissileManager.Instance.updateTarget(target_id, ref pos); 56 | } 57 | for (;;) { 58 | var lpos = new Vector3(0f, 0f, -40f); 59 | var rot = Quaternion.Euler(0f, -30f, 0f); 60 | MissileManager.Instance.spawn(ref lpos, 61 | ref rot, 62 | target_id, update_time_); 63 | for (var i = new Utility.WaitForSeconds(2f, update_time_); !i.end(update_time_);) { 64 | var pos = new Vector3(100f, 0f, 10f); 65 | MissileManager.Instance.updateTarget(target_id, ref pos); 66 | MissileManager.Instance.checkHitAndClear(target_id); 67 | yield return null; 68 | } 69 | } 70 | } 71 | } 72 | 73 | } // namespace UTJ { 74 | 75 | /* 76 | * End of GameManager.cs 77 | */ 78 | -------------------------------------------------------------------------------- /Assets/Scripts/GameManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d04e84bf735a4eed81ad97fc8af4cfd 3 | timeCreated: 1483621575 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/InputManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a78efe8dac8e44cc7afb4588e65d26c8 3 | timeCreated: 1485001970 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MissileManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f10b669bbd0b246ffa17f3d832f30650 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/MyFont.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f2885ba436c440feb673348d4664ded 3 | timeCreated: 1486218640 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MyFontRenderer.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))] 10 | public class MyFontRenderer : MonoBehaviour { 11 | // singleton 12 | static MyFontRenderer instance_; 13 | public static MyFontRenderer Instance { get { return instance_; } } 14 | 15 | private MeshFilter mf_; 16 | private MeshRenderer mr_; 17 | 18 | void Awake() 19 | { 20 | instance_ = this; 21 | } 22 | 23 | public void init(/* Camera camera */) 24 | { 25 | mf_ = GetComponent(); 26 | mr_ = GetComponent(); 27 | mf_.sharedMesh = MyFont.Instance.getMesh(); 28 | mr_.sharedMaterial = MyFont.Instance.getMaterial(); 29 | mr_.SetPropertyBlock(MyFont.Instance.getMaterialPropertyBlock()); 30 | } 31 | } 32 | 33 | } // namespace UTJ { 34 | 35 | /* 36 | * End of MyFontRenderer.cs 37 | */ 38 | -------------------------------------------------------------------------------- /Assets/Scripts/MyFontRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d71ee32220f0448148ccedc08d5459a7 3 | timeCreated: 1486218640 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MyRandom.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System; 6 | 7 | namespace UTJ { 8 | 9 | public class MyRandom 10 | { 11 | public class Xorshift { 12 | private UInt32 x; 13 | private UInt32 y; 14 | private UInt32 z; 15 | private UInt32 w; 16 | 17 | public Xorshift () : this ((UInt64)DateTime.Now.Ticks) {} 18 | 19 | public Xorshift (UInt64 seed) 20 | { 21 | setSeed(seed); 22 | } 23 | 24 | public void setSeed(UInt64 seed) 25 | { 26 | x = 521288629u; 27 | y = (UInt32)(seed >> 32) & 0xFFFFFFFF; 28 | z = (UInt32)(seed & 0xFFFFFFFF); 29 | w = x ^ z; 30 | } 31 | 32 | public UInt32 getNext() 33 | { 34 | UInt32 t = x ^ (x << 11); 35 | x = y; 36 | y = z; 37 | z = w; 38 | w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)); 39 | return w; 40 | } 41 | } 42 | 43 | static Xorshift rand_ = new Xorshift(); 44 | 45 | public static void setSeed(UInt64 seed) 46 | { 47 | rand_.setSeed(seed); 48 | } 49 | 50 | public static UInt32 get() 51 | { 52 | return rand_.getNext(); 53 | } 54 | 55 | public static float Range(float min, float max) 56 | { 57 | int val = (int)(get() & 0xffff); 58 | float range = max - min; 59 | return (((float)val*range) / (float)(0xffff)) + min; 60 | } 61 | 62 | public static int Range(int min, int max) 63 | { 64 | long val = get(); 65 | return (int)((val%(max-min))) + min; 66 | } 67 | 68 | public static bool ProbabilitySlow(float ratio) 69 | { 70 | float v = Range(0f, 1f); 71 | return (v < ratio); 72 | } 73 | 74 | public static bool Probability(float ratio) // optimized 75 | { 76 | UInt32 v = (rand_.getNext()) & 0xffff; 77 | UInt32 p = (UInt32)(((float)(1<<16)) * ratio); 78 | return (v < p); 79 | } 80 | 81 | public static bool Probability(float happen_times_per_second, float dt) 82 | { 83 | float v = Range(0f, 1f); 84 | return (v < happen_times_per_second * dt); 85 | } 86 | 87 | // 秒間何回発生してほしいか 88 | public static bool ProbabilityForSecond(float times_for_a_second, float dt) 89 | { 90 | float v = Range(0f, 1f); 91 | return (v < times_for_a_second * dt); 92 | } 93 | 94 | public static Vector3 onSphere(float radius) 95 | { 96 | float x = Range(-1f, 1f); 97 | float y = Range(-1f, 1f); 98 | float z = Range(-1f, 1f); 99 | float len2 = x*x + y*y + z*z; 100 | float len = Mathf.Sqrt(len2); 101 | float rlen = 1.0f/len; 102 | float v = rlen * radius; 103 | var point = new Vector3(x*v, y*v, z*v); 104 | return point; 105 | } 106 | 107 | } 108 | 109 | } // namespace UTJ { 110 | 111 | /* 112 | * End of MyRandom.cs 113 | */ 114 | -------------------------------------------------------------------------------- /Assets/Scripts/MyRandom.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c608ed24aa4143ddae488dc7c5c2a65 3 | timeCreated: 1483621092 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MySprite.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6f9efc0670a844d9b66bb515d87ebb6 3 | timeCreated: 1486218640 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MySpriteRenderer.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))] 10 | public class MySpriteRenderer : MonoBehaviour { 11 | // singleton 12 | static MySpriteRenderer instance_; 13 | public static MySpriteRenderer Instance { get { return instance_; } } 14 | 15 | private MeshFilter mf_; 16 | private MeshRenderer mr_; 17 | 18 | void Awake() 19 | { 20 | instance_ = this; 21 | } 22 | 23 | public void init(Camera camera) 24 | { 25 | mf_ = GetComponent(); 26 | mr_ = GetComponent(); 27 | mf_.sharedMesh = MySprite.Instance.getMesh(); 28 | mr_.sharedMaterial = MySprite.Instance.getMaterial(); 29 | mr_.SetPropertyBlock(MySprite.Instance.getMaterialPropertyBlock()); 30 | } 31 | } 32 | 33 | } // namespace UTJ { 34 | 35 | /* 36 | * End of MySpriteRenderer.cs 37 | */ 38 | -------------------------------------------------------------------------------- /Assets/Scripts/MySpriteRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9996abff071d44f6bbac897f30f0e5c2 3 | timeCreated: 1486218640 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/MyTransform.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14d3078e59d9341dfa9eaa811fea136c 3 | timeCreated: 1483537658 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceFetcher.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | public class PerformanceFetcher : MonoBehaviour { 10 | 11 | void OnPreRender() 12 | { 13 | PerformanceMeter.Instance.beginConsoleRender(); 14 | MissileManager.Instance.SyncComputeBuffer(); 15 | } 16 | 17 | void OnPreCull() 18 | { 19 | PerformanceMeter.Instance.endConsoleRender(); 20 | // MissileManager.Instance.SyncComputeBuffer(); 21 | } 22 | 23 | void OnPostRender() 24 | { 25 | // MissileManager.Instance.SyncComputeBuffer(); 26 | } 27 | } 28 | 29 | } // namespace UTJ { 30 | 31 | /* 32 | * End of PerformanceFetcher.cs 33 | */ 34 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceFetcher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe96f93d7bbbc4c228fe4376a4197a2b 3 | timeCreated: 1486267258 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceFetcher2.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | public class PerformanceFetcher2 : MonoBehaviour { 10 | 11 | // void OnPreRender() 12 | // { 13 | // } 14 | 15 | void OnPostRender() 16 | { 17 | PerformanceMeter.Instance.endRender(); 18 | } 19 | 20 | } 21 | 22 | } // namespace UTJ { 23 | 24 | /* 25 | * End of PerformanceFetcher2.cs 26 | */ 27 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceFetcher2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6129572472835452bb01f5667c34c7d3 3 | timeCreated: 1486267310 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceMeter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 248092babf15546579cabf1e2deda1f9 3 | timeCreated: 1486267258 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class PerformanceTest : MonoBehaviour { 6 | 7 | UTJ.RigidbodyTransform rb; 8 | 9 | // Use this for initialization 10 | void Start () { 11 | var sw = new System.Diagnostics.Stopwatch(); 12 | sw.Start(); 13 | var q = Quaternion.identity; 14 | for (var i = 0; i < 1000000; ++i) { 15 | rb.addSpringTorque(ref q, 10f /* torque_level */); 16 | } 17 | sw.Stop(); 18 | Debug.Log(sw.ElapsedTicks); 19 | } 20 | 21 | // Update is called once per frame 22 | void Update () { 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Assets/Scripts/PerformanceTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fca4520e3b2b64cf3825f29ed6c7c43f 3 | timeCreated: 1519960316 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/Scripts/ProfileSampler.cs: -------------------------------------------------------------------------------- 1 | namespace UTJ { 2 | 3 | using UnityEngine; 4 | using UnityEngine.Profiling; 5 | 6 | public struct ProfileSampler : System.IDisposable 7 | { 8 | public ProfileSampler(string name) 9 | { 10 | Profiler.BeginSample(name); 11 | } 12 | 13 | public void Dispose() 14 | { 15 | Profiler.EndSample(); 16 | } 17 | } 18 | 19 | } // namespace UTJ { 20 | -------------------------------------------------------------------------------- /Assets/Scripts/ProfileSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b30cb1f4091e2415b99f40896b1427e9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Recorder.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | // e.g. ffmpeg -r 60 -i "./movie_work/20180502_%04d.png" -vcodec mpeg4 -b:v 18000k out.mov 5 | // ffmpeg -r 60 -i "./movie_work/20180502_%04d.png" -pix_fmt yuv420p out.mp4 6 | 7 | using UnityEngine; 8 | using System.Collections; 9 | 10 | namespace UTJ { 11 | 12 | public class Recorder : MonoBehaviour 13 | { 14 | public KeyCode[] screenCaptureKeys; 15 | public KeyCode[] keyModifiers; 16 | 17 | private int minimumWidth = 1278; 18 | private int minimumHeight = 720; 19 | private string directory = "movie_work/"; 20 | private string baseFilename; 21 | private int framerate = 60; 22 | public bool isRecording = false; 23 | public int endFrameno = 60; 24 | 25 | private int frameno = -1; 26 | 27 | void Reset () 28 | { 29 | screenCaptureKeys = new KeyCode[]{ KeyCode.R }; 30 | keyModifiers = new KeyCode[] { KeyCode.LeftShift, KeyCode.RightShift }; 31 | 32 | baseFilename = System.DateTime.Now.ToString("yyyyMMdd"); 33 | } 34 | 35 | void Start() 36 | { 37 | Reset(); 38 | Time.captureFramerate = framerate; 39 | } 40 | 41 | void Update () 42 | { 43 | PerformanceMeter.Instance.setRecording(); 44 | checkRecodingKey(); 45 | 46 | if (isRecording == true) 47 | { 48 | TakeScreenShot(); 49 | } 50 | } 51 | 52 | bool checkRecodingKey() 53 | { 54 | bool isModifierPressed = false; 55 | bool ret = false; 56 | if (keyModifiers.Length > 0) 57 | { 58 | foreach (KeyCode keyCode in keyModifiers) 59 | { 60 | if (Input.GetKey(keyCode)) 61 | { 62 | isModifierPressed = true; 63 | break; 64 | } 65 | } 66 | } 67 | 68 | if (isModifierPressed) 69 | { 70 | foreach (KeyCode keyCode in screenCaptureKeys) 71 | { 72 | if (Input.GetKeyDown(keyCode)) 73 | { 74 | isRecording = !isRecording; 75 | } 76 | } 77 | } 78 | return ret; 79 | } 80 | 81 | public void TakeScreenShot () 82 | { 83 | float rw = (float)minimumWidth / Screen.width; 84 | float rh = (float)minimumHeight / Screen.height; 85 | int scale = (int)Mathf.Ceil(Mathf.Max(rw, rh)); 86 | 87 | ++frameno; 88 | string path = string.Format("{0}/../{1}{2}_{3:D4}.png", 89 | Application.dataPath, directory, baseFilename, frameno); 90 | ScreenCapture.CaptureScreenshot(path, scale); 91 | Debug.Log(string.Format("screen shot : path = {0}, scale = {1} (screen = {2}, {3})", 92 | path, scale, Screen.width, Screen.height), this); 93 | 94 | if (endFrameno > 0 && frameno >= endFrameno) 95 | { 96 | isRecording = false; 97 | } 98 | } 99 | } 100 | 101 | } // namespace UTJ { 102 | 103 | /* 104 | * End of Recorder.cs 105 | */ 106 | -------------------------------------------------------------------------------- /Assets/Scripts/Recorder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcf721a50b4cf4210a6bd5a18c2a774e 3 | timeCreated: 1489275502 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/RigidbodyTransform.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cfc208fc6df34cfe88ae02a78707d7d 3 | timeCreated: 1483537646 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Spark.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d23d04d362984ff7abcdb3c526fec2e 3 | timeCreated: 1483621168 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SparkRenderer.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections; 6 | 7 | namespace UTJ { 8 | 9 | [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))] 10 | public class SparkRenderer : MonoBehaviour { 11 | 12 | private MeshFilter mf_; 13 | private MeshRenderer mr_; 14 | 15 | void Start() 16 | { 17 | mf_ = GetComponent(); 18 | mr_ = GetComponent(); 19 | mf_.sharedMesh = Spark.Instance.getMesh(); 20 | mr_.sharedMaterial = Spark.Instance.getMaterial(); 21 | mr_.SetPropertyBlock(Spark.Instance.getMaterialPropertyBlock()); 22 | } 23 | } 24 | 25 | } // namespace UTJ { 26 | 27 | /* 28 | * End of SparkRenderer.cs 29 | */ 30 | -------------------------------------------------------------------------------- /Assets/Scripts/SparkRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84d2d922993dd4f1aa959808803dd012 3 | timeCreated: 1483621168 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SpectatorCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7831c22f55cf14590bdd1b3d7f2f797c 3 | timeCreated: 1486474224 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SystemManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90c4ed15ef9c44251af83a8add5a3915 3 | timeCreated: 1487477043 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: -100 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Task.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | 6 | namespace UTJ { 7 | 8 | public abstract class Task 9 | { 10 | public Task prev_; 11 | public Task next_; 12 | public bool alive_; 13 | public abstract void update(float dt, double update_time); 14 | public abstract void renderUpdate(int front, CameraBase camera, ref DrawBuffer draw_buffer); 15 | 16 | public virtual void init() 17 | { 18 | alive_ = true; 19 | TaskManager.Instance.add(this); 20 | } 21 | 22 | public virtual void destroy() 23 | { 24 | TaskManager.Instance.remove(this); 25 | alive_ = false; 26 | /* don't touch next_ and prev_ here! */ 27 | } 28 | } 29 | 30 | } // namespace UTJ { 31 | 32 | /* 33 | * End of Task.cs 34 | */ 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Task.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5c4e97823a3a4ede8a85031ca77f9e5 3 | timeCreated: 1483537468 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/TaskManager.cs: -------------------------------------------------------------------------------- 1 | /* -*- mode:CSharp; coding:utf-8-with-signature -*- 2 | */ 3 | 4 | using UnityEngine; 5 | using System.Collections.Generic; 6 | 7 | namespace UTJ { 8 | 9 | public class TaskManager { 10 | 11 | // singleton 12 | static TaskManager instance_; 13 | public static TaskManager Instance { get { return instance_ ?? (instance_ = new TaskManager()); } } 14 | 15 | private Task first_; 16 | private Task last_; 17 | private List add_task_list_; 18 | private List del_task_list_; 19 | private int count_; 20 | 21 | public void init() 22 | { 23 | const int MAX_CAPACITY = 1024; 24 | first_ = null; 25 | last_ = null; 26 | count_ = 0; 27 | add_task_list_ = new List(); 28 | add_task_list_.Capacity = MAX_CAPACITY; 29 | del_task_list_ = new List(); 30 | del_task_list_.Capacity = MAX_CAPACITY; 31 | } 32 | 33 | public int getCount() 34 | { 35 | return count_; 36 | } 37 | 38 | // Taskが呼ぶ 39 | public void add(Task task) 40 | { 41 | add_task_list_.Add(task); 42 | } 43 | 44 | // Taskが呼ぶ 45 | public void remove(Task task) 46 | { 47 | del_task_list_.Add(task); 48 | } 49 | 50 | public void restart() 51 | { 52 | for (var it = first_; it != null; it = it.next_) { 53 | it.alive_ = false; 54 | } 55 | first_ = null; 56 | last_ = null; 57 | add_task_list_.Clear(); 58 | del_task_list_.Clear(); 59 | count_ = 0; 60 | } 61 | 62 | public void update(float dt, double update_time) 63 | { 64 | // update 65 | count_ = 0; 66 | for (var it = first_; it != null; it = it.next_) { 67 | it.update(dt, update_time); 68 | ++count_; 69 | } 70 | 71 | // add 72 | foreach (var it in add_task_list_) { 73 | if (first_ == null) { 74 | Debug.Assert(last_ == null); 75 | first_ = it; 76 | last_ = it; 77 | it.next_ = it.prev_ = null; 78 | } else { 79 | it.prev_ = last_; 80 | it.next_ = null; 81 | last_.next_ = it; 82 | last_ = it; 83 | } 84 | } 85 | add_task_list_.Clear(); 86 | 87 | // delete 88 | foreach (var it in del_task_list_) { 89 | if (it.prev_ == null) { 90 | first_ = it.next_; 91 | } else { 92 | it.prev_.next_ = it.next_; 93 | } 94 | if (it.next_ == null) { 95 | last_ = it.prev_; 96 | } else { 97 | it.next_.prev_ = it.prev_; 98 | } 99 | it.next_ = it.prev_ = null; 100 | } 101 | del_task_list_.Clear(); 102 | } 103 | 104 | public void renderUpdate(int front, CameraBase camera, ref DrawBuffer draw_buffer) 105 | { 106 | for (var it = first_; it != null; it = it.next_) { 107 | it.renderUpdate(front, camera, ref draw_buffer); 108 | } 109 | } 110 | } 111 | 112 | } // namespace UTJ { 113 | 114 | /* 115 | * End of TaskManager.cs 116 | */ 117 | -------------------------------------------------------------------------------- /Assets/Scripts/TaskManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f181cb3420b44d0eb20875e6b188940 3 | timeCreated: 1483537468 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/Utility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58860e97850fd4da48abad3867f8b6e0 3 | timeCreated: 1486212743 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c96d6572ec7ec4d67baa13d21b15e74a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/burner_instanced_indirect.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/burner_instanced_indirect" { 2 | Properties { 3 | _MainTex ("Albedo (RGB)", 2D) = "white" {} 4 | } 5 | SubShader { 6 | Tags { "Queue"="Transparent+1" "IgnoreProjector"="True" "RenderType"="Transparent" } 7 | ZWrite Off 8 | Cull Off 9 | Blend SrcAlpha One 10 | 11 | Pass { 12 | CGPROGRAM 13 | 14 | #pragma vertex vert 15 | #pragma fragment frag 16 | #pragma multi_compile_fwdbase nolightmap nodirlightmap nodynlightmap novertexlight 17 | #pragma target 4.5 18 | 19 | #include "UnityCG.cginc" 20 | 21 | sampler2D _MainTex; 22 | 23 | #include "missile.cginc" 24 | StructuredBuffer cbuffer_missile; 25 | StructuredBuffer cbuffer_missile_alive_index; 26 | StructuredBuffer cbuffer_missile_sort_key_list; 27 | float _CurrentTime; 28 | 29 | struct appdata_custom { 30 | uint instanceID : SV_InstanceID; 31 | float4 vertex : POSITION; 32 | float4 texcoord : TEXCOORD0; 33 | float4 color : COLOR0; 34 | }; 35 | 36 | struct v2f 37 | { 38 | float4 pos : SV_POSITION; 39 | float2 texcoord : TEXCOORD0; 40 | fixed4 color : COLOR0; 41 | }; 42 | 43 | v2f vert (appdata_custom v) 44 | { 45 | int midx = cbuffer_missile_sort_key_list[v.instanceID].packed_&0xffff; // ソート済みリストからインデクス 46 | float elapsed = _CurrentTime - cbuffer_missile[midx].dead_time_; // 正なら死亡している 47 | float3 p = cbuffer_missile[midx].position_; 48 | float4 q = cbuffer_missile[midx].rotation_; 49 | float4x4 mat = { 50 | 1 - 2*q.y*q.y - 2*q.z*q.z, 2*q.x*q.y - 2*q.z*q.w, 2*q.x*q.z + 2*q.y*q.w, p.x, 51 | 2*q.x*q.y + 2*q.z*q.w, 1 - 2*q.x*q.x - 2*q.z*q.z, 2*q.y*q.z - 2*q.x*q.w, p.y, 52 | 2*q.x*q.z - 2*q.y*q.w, 2*q.y*q.z + 2*q.x*q.w, 1 - 2*q.x*q.x - 2*q.y*q.y, p.z, 53 | 0, 0, 0, 1, 54 | }; 55 | float4 wpos = mul(mat, v.vertex); 56 | 57 | v2f o; 58 | o.pos = UnityObjectToClipPos(float4(wpos.xyz, 1)); 59 | o.pos.z = elapsed > 0 ? -1 : o.pos.z; // 死亡していたら見えないところへ移動 60 | o.texcoord = v.texcoord; 61 | o.color = v.color * 8; 62 | o.color.a = cbuffer_missile[midx].random_value_; 63 | 64 | return o; 65 | } 66 | 67 | fixed4 frag (v2f i) : SV_Target 68 | { 69 | float time = frac(_CurrentTime) + i.color.a; 70 | float2 uv = i.texcoord + float2(time*8, time*20); 71 | return tex2D(_MainTex, uv) * fixed4(i.color.rgb, 1); 72 | } 73 | 74 | ENDCG 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/Shaders/burner_instanced_indirect.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aff065c0dfcea4af1b0d2323e07a3fcf 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/constant_values.cginc: -------------------------------------------------------------------------------- 1 | #define FLOAT_MAX 1e+30 2 | -------------------------------------------------------------------------------- /Assets/Shaders/constant_values.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 366995d0930f547c28af245e3cd5e963 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/debris.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/debris" { 5 | Properties { 6 | } 7 | SubShader { 8 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 9 | ZWrite Off 10 | Blend SrcAlpha One // alpha additive 11 | ColorMask RGB 12 | 13 | Pass { 14 | CGPROGRAM 15 | 16 | #pragma vertex vert 17 | #pragma fragment frag 18 | #pragma target 3.0 19 | 20 | #include "UnityCG.cginc" 21 | 22 | struct appdata_custom { 23 | float4 vertex : POSITION; 24 | float4 color : COLOR; 25 | uint vertexID : SV_VertexID; 26 | }; 27 | 28 | struct v2f { 29 | float4 pos:SV_POSITION; 30 | fixed4 color:COLOR; 31 | }; 32 | 33 | float4x4 _PrevInvMatrix; 34 | float3 _TargetPosition; 35 | float _Range; 36 | float _RangeR; 37 | 38 | v2f vert(appdata_custom v) 39 | { 40 | float3 target = _TargetPosition; 41 | float3 diff = target - v.vertex.xyz; 42 | float3 trip = floor( (diff*_RangeR + 1) * 0.5 ); 43 | trip *= (_Range * 2); 44 | v.vertex.xyz += trip; 45 | 46 | float even = (v.vertexID&1) == 0 ? 1 : 0; 47 | 48 | float4 tv0 = v.vertex; 49 | tv0 = UnityObjectToClipPos(tv0); 50 | tv0 *= even; 51 | 52 | float4 tv1 = v.vertex; 53 | tv1 = float4(UnityObjectToViewPos(tv1), 1); 54 | tv1 = mul(_PrevInvMatrix, tv1); 55 | tv1 = mul(UNITY_MATRIX_P, tv1); 56 | tv1.y -= 0.04*(1-even); 57 | tv1 *= 1-even; 58 | 59 | v2f o; 60 | o.pos = tv0 + tv1; 61 | float alpha = v.color.a * 0.5; 62 | o.color = fixed4(1, 1, 1, alpha); 63 | return o; 64 | } 65 | 66 | fixed4 frag(v2f i) : SV_Target 67 | { 68 | return i.color; 69 | } 70 | 71 | ENDCG 72 | } 73 | } 74 | } 75 | 76 | /* 77 | * End of debris.shader 78 | */ 79 | -------------------------------------------------------------------------------- /Assets/Shaders/debris.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd557b3dd284c42529da173f518dbdcf 3 | timeCreated: 1487164971 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/explosion_instanced_indirect.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a98fe64bd66d8450b95b4aae022f1a4f 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/figher_burner_instanced.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/fighter_burner_instanced" 2 | { 3 | Properties 4 | { 5 | } 6 | SubShader 7 | { 8 | Tags {"Queue" = "Geometry" "RenderType" = "Opaque"} 9 | 10 | Pass 11 | { 12 | Tags {"LightMode" = "ForwardBase"} // This Pass tag is important or Unity may not give it the correct light information. 13 | 14 | CGPROGRAM 15 | #pragma vertex vert 16 | #pragma fragment frag 17 | #pragma multi_compile_fwdbase // This line tells Unity to compile this pass for forward base. 18 | #pragma multi_compile_instancing 19 | 20 | #include "UnityCG.cginc" 21 | 22 | struct appdata_custom 23 | { 24 | float4 vertex : POSITION; 25 | UNITY_VERTEX_INPUT_INSTANCE_ID 26 | }; 27 | 28 | struct v2f 29 | { 30 | float4 pos : SV_POSITION; 31 | }; 32 | 33 | v2f vert(appdata_custom v) 34 | { 35 | UNITY_SETUP_INSTANCE_ID(v); 36 | v2f o; 37 | o.pos = UnityObjectToClipPos(v.vertex); 38 | return o; 39 | } 40 | 41 | fixed4 frag(v2f i) : COLOR 42 | { 43 | return fixed4(0.5, 0.75, 1, 1); 44 | } 45 | ENDCG 46 | } 47 | } 48 | FallBack "VertexLit" // Use VertexLit's shadow caster/receiver passes. 49 | } 50 | /* 51 | * End of fighter.shader 52 | */ 53 | -------------------------------------------------------------------------------- /Assets/Shaders/figher_burner_instanced.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed74271cb3fe34783921116f7ef3bfaf 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/fighter_instanced.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | Shader "Custom/fighter_instanced" 4 | { 5 | Properties 6 | { 7 | _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {} 8 | } 9 | SubShader 10 | { 11 | Tags {"Queue" = "Geometry" "RenderType" = "Opaque"} 12 | 13 | Pass 14 | { 15 | Tags {"LightMode" = "ForwardBase"} // This Pass tag is important or Unity may not give it the correct light information. 16 | 17 | CGPROGRAM 18 | #pragma vertex vert 19 | #pragma fragment frag 20 | #pragma multi_compile_fwdbase // This line tells Unity to compile this pass for forward base. 21 | #pragma multi_compile_instancing 22 | 23 | #include "UnityCG.cginc" 24 | #include "AutoLight.cginc" 25 | 26 | struct appdata_custom 27 | { 28 | float4 vertex : POSITION; 29 | float3 normal : NORMAL; 30 | float2 texcoord : TEXCOORD0; 31 | UNITY_VERTEX_INPUT_INSTANCE_ID 32 | }; 33 | 34 | struct v2f 35 | { 36 | float4 pos : SV_POSITION; 37 | float2 uv : TEXCOORD0; 38 | float3 lightDir : TEXCOORD1; 39 | float3 normal : TEXCOORD2; 40 | LIGHTING_COORDS(3,4) // Macro to send shadow & attenuation to the vertex shader. 41 | }; 42 | 43 | sampler2D _MainTex; 44 | float4 _MainTex_ST; 45 | fixed4 _LightColor0; 46 | 47 | v2f vert(appdata_custom v) 48 | { 49 | UNITY_SETUP_INSTANCE_ID(v); 50 | v2f o; 51 | o.pos = UnityObjectToClipPos(v.vertex); 52 | o.uv = v.texcoord.xy; 53 | o.lightDir = ObjSpaceLightDir(v.vertex); 54 | o.normal = v.normal; 55 | TRANSFER_VERTEX_TO_FRAGMENT(o); // Macro to send shadow & attenuation to the fragment shader. 56 | return o; 57 | } 58 | 59 | fixed4 frag(v2f i) : COLOR 60 | { 61 | i.lightDir = normalize(i.lightDir); 62 | fixed atten = LIGHT_ATTENUATION(i); // Macro to get you the combined shadow & attenuation value. 63 | fixed4 tex = tex2D(_MainTex, i.uv); 64 | fixed diff = saturate(dot(i.normal, i.lightDir)); 65 | fixed4 c; 66 | c.rgb = (half3(0.01, 0.01, 0.01) * 2 * tex.rgb); 67 | c.rgb += (tex.rgb * _LightColor0.rgb * diff * 2) * (atten * 2); // Diffuse and specular. 68 | c.a = 1; 69 | return c; 70 | } 71 | ENDCG 72 | } 73 | } 74 | FallBack "VertexLit" // Use VertexLit's shadow caster/receiver passes. 75 | } 76 | /* 77 | * End of fighter.shader 78 | */ 79 | -------------------------------------------------------------------------------- /Assets/Shaders/fighter_instanced.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a133337b98d8046768d2b2f63aaa0b1e 3 | timeCreated: 1520080099 4 | licenseType: Pro 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Shaders/final.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/final" 5 | { 6 | Properties { 7 | _MainTex ("Base (RGB)", 2D) = "white" {} 8 | } 9 | 10 | SubShader { 11 | Tags { "RenderType"="Opaque" } 12 | Cull Off ZWrite Off ZTest Always 13 | 14 | Pass { 15 | CGPROGRAM 16 | #pragma vertex vert 17 | #pragma fragment frag 18 | #pragma target 2.0 19 | 20 | #include "UnityCG.cginc" 21 | 22 | struct appdata_t { 23 | float4 vertex : POSITION; 24 | float2 texcoord : TEXCOORD0; 25 | }; 26 | 27 | struct v2f { 28 | float4 vertex : SV_POSITION; 29 | float2 texcoord : TEXCOORD0; 30 | }; 31 | 32 | sampler2D _MainTex; 33 | float4 _MainTex_ST; 34 | 35 | v2f vert (appdata_t v) 36 | { 37 | v2f o; 38 | o.vertex = UnityObjectToClipPos(v.vertex); 39 | o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); 40 | return o; 41 | } 42 | 43 | fixed4 frag (v2f i) : SV_Target 44 | { 45 | return tex2D(_MainTex, i.texcoord); 46 | } 47 | ENDCG 48 | } 49 | } 50 | } 51 | /* 52 | * End of final.shader 53 | */ 54 | -------------------------------------------------------------------------------- /Assets/Shaders/final.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1d3dbad7fc754fd084766475fdef099 3 | timeCreated: 1489970795 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/font.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/font" { 5 | Properties { 6 | _MainTex ("Base (RGB)", 2D) = "white" {} 7 | } 8 | SubShader { 9 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 10 | ZWrite Off 11 | ZTest Always 12 | Cull Off 13 | Blend SrcAlpha OneMinusSrcAlpha // alpha blending 14 | 15 | Pass { 16 | CGPROGRAM 17 | 18 | #pragma vertex vert 19 | #pragma fragment frag 20 | #pragma target 3.0 21 | 22 | #include "UnityCG.cginc" 23 | 24 | uniform sampler2D _MainTex; 25 | uniform fixed4 _Colors[8]; 26 | 27 | struct appdata_custom { 28 | float4 vertex : POSITION; 29 | float4 texcoord : TEXCOORD0; 30 | }; 31 | 32 | struct v2f { 33 | float4 pos : SV_POSITION; 34 | float2 texcoord : TEXCOORD0; 35 | fixed4 color:COLOR; 36 | }; 37 | 38 | v2f vert(appdata_custom v) 39 | { 40 | v2f o; 41 | o.pos = UnityObjectToClipPos(float4(v.vertex.xy, 1, 1)); 42 | o.texcoord = MultiplyUV(UNITY_MATRIX_TEXTURE0, 43 | float4(v.texcoord.xy, 0, 0)); 44 | int color_index = (int)v.vertex.z; 45 | o.color = _Colors[color_index]; 46 | return o; 47 | } 48 | 49 | fixed4 frag(v2f i) : SV_Target 50 | { 51 | half4 col = tex2D(_MainTex, i.texcoord) * i.color; 52 | return col; 53 | } 54 | 55 | ENDCG 56 | } 57 | } 58 | } 59 | 60 | /* 61 | * End of font.shader 62 | */ 63 | -------------------------------------------------------------------------------- /Assets/Shaders/font.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7f90a888d1e94765b70f79985d540fe 3 | timeCreated: 1486218644 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/math.cginc: -------------------------------------------------------------------------------- 1 | 2 | float3 mul_quaternion(float4 quat, float3 vec) 3 | { 4 | float num = quat.x * 2; 5 | float num2 = quat.y * 2; 6 | float num3 = quat.z * 2; 7 | float num4 = quat.x * num; 8 | float num5 = quat.y * num2; 9 | float num6 = quat.z * num3; 10 | float num7 = quat.x * num2; 11 | float num8 = quat.x * num3; 12 | float num9 = quat.y * num3; 13 | float num10 = quat.w * num; 14 | float num11 = quat.w * num2; 15 | float num12 = quat.w * num3; 16 | float3 result; 17 | result.x = (1 - (num5 + num6)) * vec.x + (num7 - num12) * vec.y + (num8 + num11) * vec.z; 18 | result.y = (num7 + num12) * vec.x + (1 - (num4 + num6)) * vec.y + (num9 - num10) * vec.z; 19 | result.z = (num8 - num11) * vec.x + (num9 + num10) * vec.y + (1 - (num4 + num5)) * vec.z; 20 | return result; 21 | } 22 | 23 | float3 mul_quaternion_z(float4 quat, float vec) 24 | { 25 | float num = quat.x * 2; 26 | float num2 = quat.y * 2; 27 | float num3 = quat.z * 2; 28 | float num4 = quat.x * num; 29 | float num5 = quat.y * num2; 30 | float num6 = quat.z * num3; 31 | float num8 = quat.x * num3; 32 | float num9 = quat.y * num3; 33 | float num10 = quat.w * num; 34 | float num11 = quat.w * num2; 35 | float3 result; 36 | result.x = (num8 + num11) * vec; 37 | result.y = (num9 - num10) * vec; 38 | result.z = (1 - (num4 + num5)) * vec; 39 | return result; 40 | } 41 | 42 | float norm2_quaternion(float4 q) 43 | { 44 | return q.x*q.x + q.y*q.y + q.z*q.z + q.w*q.w; 45 | } 46 | 47 | float4 normalize_quaternion(float4 q) 48 | { 49 | float Epsilon = 0.00001; 50 | float len2 = norm2_quaternion(q); 51 | return len2 > Epsilon ? q*rsqrt(len2) : float4(0, 0, 0, 1); 52 | } 53 | 54 | float4 get_look_rotation(float3 dir) 55 | { 56 | float Epsilon = 0.00001; 57 | float3 ndir = normalize(dir); 58 | float3 fwd = float3(0, 0, 1); 59 | float d = dot(fwd, ndir); 60 | float d0 = (1+d)*2; 61 | float sr = d0 > Epsilon ? rsqrt(d0) : 1; 62 | float3 c = cross(fwd, ndir); 63 | float4 q = float4(c.x, c.y, c.z, d0*0.5f)*sr; 64 | return normalize_quaternion(q); 65 | } 66 | 67 | float4 inverse_quaternion(float4 q) 68 | { 69 | return float4(-q.x, -q.y, -q.z, q.w); 70 | } 71 | 72 | float4 mul_quaternion(float4 lhs, float4 rhs) 73 | { 74 | float x = lhs.w * rhs.x + lhs.x * rhs.w + lhs.y * rhs.z - lhs.z * rhs.y; 75 | float y = lhs.w * rhs.y + lhs.y * rhs.w + lhs.z * rhs.x - lhs.x * rhs.z; 76 | float z = lhs.w * rhs.z + lhs.z * rhs.w + lhs.x * rhs.y - lhs.y * rhs.x; 77 | float w = lhs.w * rhs.w - lhs.x * rhs.x - lhs.y * rhs.y - lhs.z * rhs.z; 78 | return float4(x, y, z, w); 79 | } 80 | -------------------------------------------------------------------------------- /Assets/Shaders/math.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b57a3edbef5a459f8c6304adbbc7697 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/missile.cginc: -------------------------------------------------------------------------------- 1 | 2 | struct SpawnData 3 | { 4 | float3 position_; 5 | int missile_id_; 6 | float4 rotation_; 7 | int target_id_; 8 | int valid_; 9 | float random_value_; 10 | float random_value_second_; 11 | }; 12 | 13 | struct MissileData 14 | { 15 | float3 position_; 16 | float spawn_time_; 17 | float3 omega_; 18 | float dead_time_; 19 | float4 rotation_; 20 | int target_id_; 21 | float random_value_; 22 | float dummy0_; 23 | float dummy1_; 24 | }; 25 | 26 | struct TargetData 27 | { 28 | float3 position_; 29 | float sqr_radius_; 30 | float dead_time_; 31 | float dummy0_; 32 | float dummy1_; 33 | float dummy2_; 34 | }; 35 | 36 | struct ResultData 37 | { 38 | int packed_; 39 | }; 40 | 41 | struct SortData 42 | { 43 | int packed_; // key<<16 | missile_id 44 | }; 45 | 46 | #define TRAIL_LENGTH 32 47 | -------------------------------------------------------------------------------- /Assets/Shaders/missile.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e6efacee5c064939aa4aaa931db5807 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_instanced_indirect.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 436c3cdced61b4ca4be72062308b224a 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_sort.compute: -------------------------------------------------------------------------------- 1 | // refered to: 2 | // https://shobomaru.wordpress.com/2012/11/27/parallel-processing-of-bitonic-sort/ 3 | // 4 | #pragma kernel missile_sort 5 | 6 | #include "missile.cginc" 7 | 8 | RWStructuredBuffer cbuffer_missile_sort_key_list; 9 | 10 | #define THREAD_X 512 11 | #define THREAD_Y 1 12 | #define THREAD_Z 1 13 | #define MISSILE_NUM ( THREAD_X*16 ) // must be more than THREAD_X*2 14 | 15 | [numthreads(THREAD_X, THREAD_Y, THREAD_Z)] 16 | void missile_sort(uint gidx : SV_GroupIndex) 17 | { 18 | for (uint block = 2; block <= MISSILE_NUM; block <<= 1) { // major step 19 | for (uint step = block >> 1; step > 0; step >>= 1) { // minor step 20 | uint maskL = (uint)step - 1; 21 | uint maskH = 0xFFFFFFFF ^ maskL; 22 | for (uint i = gidx; i < MISSILE_NUM >> 1; i += THREAD_X) { 23 | uint idx = ((i&maskH)<<1) | (i&maskL); 24 | SortData v1 = cbuffer_missile_sort_key_list[idx]; 25 | SortData v2 = cbuffer_missile_sort_key_list[idx + step]; 26 | int isAscend = (idx&block) != 0 ? 1 : 0; 27 | int isBigger = (v1.packed_>>16) > (v2.packed_>>16) ? 1 : 0; 28 | if (isAscend ^ isBigger) { 29 | cbuffer_missile_sort_key_list[idx] = v2; 30 | cbuffer_missile_sort_key_list[idx+step] = v1; 31 | } 32 | } 33 | DeviceMemoryBarrierWithGroupSync(); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_sort.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 007dfd316e3e547cd939b92d670e999c 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_spawn.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel missile_spawn 2 | 3 | #include "constant_values.cginc" 4 | #include "missile.cginc" 5 | 6 | StructuredBuffer cbuffer_spawn; 7 | RWStructuredBuffer cbuffer_missile; 8 | RWStructuredBuffer cbuffer_trail; 9 | RWStructuredBuffer cbuffer_trail_index; 10 | float _CurrentTime; 11 | 12 | #define THREAD_X 32 13 | #define THREAD_Y 1 14 | #define THREAD_Z 1 15 | 16 | [numthreads(THREAD_X, THREAD_Y, THREAD_Z)] 17 | void missile_spawn(uint3 id : SV_DispatchThreadID) 18 | { 19 | uint thread_idx = id.z*(THREAD_X*THREAD_Y) + id.y*(THREAD_X) + id.x; 20 | if (cbuffer_spawn[thread_idx].valid_ != 0) { 21 | float random = cbuffer_spawn[thread_idx].random_value_; 22 | float random_second = cbuffer_spawn[thread_idx].random_value_second_; 23 | int idx = cbuffer_spawn[thread_idx].missile_id_; 24 | cbuffer_missile[idx].position_ = cbuffer_spawn[thread_idx].position_; 25 | cbuffer_missile[idx].spawn_time_ = _CurrentTime; 26 | cbuffer_missile[idx].omega_ = float3(random-0.5, random_second-0.5, 0); 27 | cbuffer_missile[idx].dead_time_ = FLOAT_MAX; 28 | cbuffer_missile[idx].rotation_ = cbuffer_spawn[thread_idx].rotation_; 29 | cbuffer_missile[idx].target_id_ = cbuffer_spawn[thread_idx].target_id_; 30 | cbuffer_missile[idx].random_value_ = random; 31 | [unroll] 32 | for (int i = 0; i < TRAIL_LENGTH; ++i) { 33 | int i0 = idx*TRAIL_LENGTH+i; 34 | cbuffer_trail[i0].xyz = cbuffer_spawn[thread_idx].position_; 35 | cbuffer_trail[i0].w = _CurrentTime; 36 | } 37 | cbuffer_trail_index[idx] = 0; 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_spawn.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2adef938878a147fd9ec592f3dc38726 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/missile_update.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1f47106db96b43368ab4f4757704149 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/skybox.cginc: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | #include "UnityCG.cginc" 5 | 6 | samplerCUBE _Tex; 7 | // float _SwitchSkybox; 8 | 9 | struct appdata_t { 10 | float4 vertex : POSITION; 11 | }; 12 | 13 | struct v2f { 14 | float4 vertex : SV_POSITION; 15 | float3 texcoord : TEXCOORD0; 16 | }; 17 | 18 | v2f vert(appdata_t v) 19 | { 20 | v2f o; 21 | o.vertex = UnityObjectToClipPos(v.vertex); 22 | o.texcoord = v.vertex.xyz; 23 | // o.texcoord.y = (step(0.5, 1-_SwitchSkybox)*2-1) * (abs(o.texcoord.y)+0.002 /* remove artifact on horizon. */); 24 | return o; 25 | } 26 | 27 | fixed4 fragSimple(v2f i) : SV_Target 28 | { 29 | fixed4 tex = fixed4(texCUBE(_Tex, i.texcoord).rgb, 0); 30 | return tex; 31 | } 32 | 33 | // v2f vertMix(appdata_t v) 34 | // { 35 | // v2f o; 36 | // o.vertex = UnityObjectToClipPos(v.vertex); 37 | // o.texcoord = v.vertex.xyz; 38 | // o.texcoord.y = abs(o.texcoord.y)+0.002 /* remove artifact on horizon. */; 39 | // return o; 40 | // } 41 | 42 | // fixed4 fragMix(v2f i) : SV_Target 43 | // { 44 | // fixed4 tex0 = texCUBE(_Tex, i.texcoord); 45 | // half3 t = float3(i.texcoord.x, -i.texcoord.y, i.texcoord.z); 46 | // fixed4 tex1 = texCUBE(_Tex, t); 47 | // fixed4 tex = fixed4(lerp(tex0.rgb, tex1.rgb, _SwitchSkybox), 0); 48 | // return tex; 49 | // } 50 | 51 | /* 52 | * End of skybox.cginc 53 | */ 54 | -------------------------------------------------------------------------------- /Assets/Shaders/skybox.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 719d9b31577a642c0a8f836220d82c3c 3 | timeCreated: 1489321179 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/skybox.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/skybox" { 5 | Properties { 6 | [NoScaleOffset] _Tex ("Cubemap", Cube) = "grey" {} 7 | } 8 | 9 | SubShader { 10 | Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" } 11 | Cull Off ZWrite Off 12 | ColorMask RGBA 13 | Pass { 14 | CGPROGRAM 15 | #pragma vertex vert 16 | #pragma fragment fragSimple 17 | #pragma target 2.0 18 | #include "UnityCG.cginc" 19 | 20 | samplerCUBE _Tex; 21 | struct appdata_t { 22 | float4 vertex : POSITION; 23 | }; 24 | struct v2f { 25 | float4 vertex : SV_POSITION; 26 | float3 texcoord : TEXCOORD0; 27 | }; 28 | 29 | v2f vert(appdata_t v) 30 | { 31 | v2f o; 32 | o.vertex = UnityObjectToClipPos(v.vertex); 33 | o.texcoord = v.vertex.xyz; 34 | return o; 35 | } 36 | 37 | fixed4 fragSimple(v2f i) : SV_Target 38 | { 39 | fixed4 tex = fixed4(texCUBE(_Tex, i.texcoord).rgb, 0); 40 | return tex; 41 | } 42 | 43 | ENDCG 44 | } 45 | } 46 | // Fallback Off 47 | } 48 | 49 | /* 50 | * End of skybox.shader 51 | */ 52 | -------------------------------------------------------------------------------- /Assets/Shaders/skybox.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30085050fe14f4ca493985861a34ec09 3 | timeCreated: 1485778965 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/spark.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/spark" { 5 | SubShader { 6 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 7 | ZWrite Off 8 | // Blend SrcAlpha OneMinusSrcAlpha // alpha blending 9 | Blend SrcAlpha One // alpha additive 10 | ColorMask RGB 11 | 12 | Pass { 13 | CGPROGRAM 14 | 15 | #pragma vertex vert 16 | #pragma fragment frag 17 | #pragma target 3.0 18 | 19 | #include "UnityCG.cginc" 20 | 21 | uniform fixed4 _Colors[8]; 22 | 23 | struct appdata_custom { 24 | float4 vertex : POSITION; 25 | float4 normal : NORMAL; 26 | // fixed4 color : COLOR; 27 | float4 texcoord : TEXCOORD0; 28 | float4 texcoord2 : TEXCOORD1; 29 | }; 30 | 31 | struct v2f 32 | { 33 | float4 pos:SV_POSITION; 34 | fixed4 color:COLOR; 35 | }; 36 | 37 | float4x4 _PrevInvMatrix; 38 | float _CurrentTime; 39 | float _PreviousTime; 40 | 41 | v2f vert(appdata_custom v) 42 | { 43 | float elapsed = (_CurrentTime - v.texcoord2.x); 44 | float4 tv0 = v.vertex; 45 | float alpha = clamp(1 - elapsed*2, 0, 1); // life time:0.5sec 46 | float scale = 4; 47 | 48 | float size = elapsed * scale; 49 | size = size * step(elapsed, 0.5); 50 | tv0.xyz *= size; 51 | tv0.xyz += v.normal.xyz; 52 | tv0 = UnityObjectToClipPos(tv0); 53 | tv0 *= v.texcoord.x; 54 | 55 | float prev_elapsed = (_PreviousTime - v.texcoord2.x); 56 | float prev_size = prev_elapsed * scale; 57 | float4 tv1 = v.vertex; 58 | tv1.xyz *= prev_size; 59 | tv1.xyz += v.normal.xyz; 60 | tv1 = float4(UnityObjectToViewPos(tv1), 1); 61 | tv1 = mul(_PrevInvMatrix, tv1); 62 | tv1 = mul(UNITY_MATRIX_P, tv1); 63 | tv1 *= v.texcoord.y; 64 | 65 | v2f o; 66 | o.pos = tv0 + tv1; 67 | // o.color = v.color; 68 | int color_index = (int)v.texcoord2.y; 69 | o.color = _Colors[color_index]; 70 | o.color.a *= alpha; 71 | return o; 72 | } 73 | 74 | fixed4 frag(v2f i) : SV_Target 75 | { 76 | return i.color; 77 | } 78 | 79 | ENDCG 80 | } 81 | } 82 | } 83 | 84 | /* 85 | * End of spark.shader 86 | */ 87 | -------------------------------------------------------------------------------- /Assets/Shaders/spark.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e588c9f79a04b4a33866d8f399c4e19b 3 | timeCreated: 1483622898 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/sprite.shader: -------------------------------------------------------------------------------- 1 | /* -*- mode:Shader coding:utf-8-with-signature -*- 2 | */ 3 | 4 | Shader "Custom/sprite" { 5 | Properties { 6 | _MainTex ("Base (RGB)", 2D) = "white" {} 7 | //_InvFade ("Soft Particles Factor", Range(0.01,3.0)) = 1.0 8 | } 9 | SubShader { 10 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 11 | ZWrite Off 12 | ZTest Always 13 | Cull Off 14 | Blend SrcAlpha OneMinusSrcAlpha // alpha blending 15 | 16 | Pass { 17 | CGPROGRAM 18 | 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | #pragma target 3.0 22 | 23 | #include "UnityCG.cginc" 24 | 25 | uniform sampler2D _MainTex; 26 | uniform fixed4 _Colors[13]; 27 | 28 | struct appdata_custom { 29 | float4 vertex : POSITION; 30 | float4 texcoord : TEXCOORD0; 31 | }; 32 | 33 | struct v2f { 34 | float4 pos : SV_POSITION; 35 | float2 texcoord : TEXCOORD0; 36 | fixed4 color:COLOR; 37 | }; 38 | 39 | v2f vert(appdata_custom v) 40 | { 41 | v2f o; 42 | o.pos = UnityObjectToClipPos(float4(v.vertex.xy, 1, 1)); 43 | o.texcoord = MultiplyUV(UNITY_MATRIX_TEXTURE0, 44 | float4(v.texcoord.xy, 0, 0)); 45 | o.texcoord = v.texcoord.xy; 46 | int color_index = (int)v.vertex.z; 47 | o.color = _Colors[color_index]; 48 | return o; 49 | } 50 | 51 | fixed4 frag(v2f i) : SV_Target 52 | { 53 | fixed4 col = tex2D(_MainTex, i.texcoord) * i.color; 54 | return col; 55 | } 56 | 57 | ENDCG 58 | } 59 | } 60 | } 61 | 62 | /* 63 | * End of sprite.shader 64 | */ 65 | -------------------------------------------------------------------------------- /Assets/Shaders/sprite.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb8a56aeda5914aee976a4880e3d666a 3 | timeCreated: 1486218644 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/trail_instanced_indirect.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea9b373192666431481afa4346141f8d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71328d4ae50c1421d95e3842461f7bbb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/.DS_Store -------------------------------------------------------------------------------- /Assets/Textures/Explosion_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/Explosion_01.png -------------------------------------------------------------------------------- /Assets/Textures/Explosion_01.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1183e3f0393ed447d909c1fc69eaef29 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/Textures/GUI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84705fc74f19f42e0a4b68748505b209 3 | folderAsset: yes 4 | timeCreated: 1486218639 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Textures/GUI/atlas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/GUI/atlas.png -------------------------------------------------------------------------------- /Assets/Textures/GUI/atlas.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48030df7726f24883a3ac3fc884d50f1 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 21300000: square 6 | externalObjects: {} 7 | serializedVersion: 5 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: -1 35 | mipBias: -1 36 | wrapU: 1 37 | wrapV: 1 38 | wrapW: -1 39 | nPOTScale: 0 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 2 43 | spriteExtrude: 1 44 | spriteMeshType: 0 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spritePixelsToUnits: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 8 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | - serializedVersion: 2 71 | buildTarget: Standalone 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | androidETC2FallbackOverride: 0 81 | - serializedVersion: 2 82 | buildTarget: iPhone 83 | maxTextureSize: 2048 84 | resizeAlgorithm: 0 85 | textureFormat: -1 86 | textureCompression: 1 87 | compressionQuality: 50 88 | crunchedCompression: 0 89 | allowsAlphaSplitting: 0 90 | overridden: 0 91 | androidETC2FallbackOverride: 0 92 | spriteSheet: 93 | serializedVersion: 2 94 | sprites: 95 | - serializedVersion: 2 96 | name: square 97 | rect: 98 | serializedVersion: 2 99 | x: 0 100 | y: 0 101 | width: 512 102 | height: 512 103 | alignment: 0 104 | pivot: {x: 0, y: 0} 105 | border: {x: 0, y: 0, z: 0, w: 0} 106 | outline: [] 107 | physicsShape: [] 108 | tessellationDetail: 0 109 | bones: [] 110 | spriteID: 557308c55d18c47cd95b9cf6acca2c15 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | outline: [] 116 | physicsShape: [] 117 | bones: [] 118 | spriteID: c32a32b9fb1fd4ffeac73062c0fd0b61 119 | vertices: [] 120 | indices: 121 | edges: [] 122 | weights: [] 123 | spritePackingTag: 124 | userData: 125 | assetBundleName: 126 | assetBundleVariant: 127 | -------------------------------------------------------------------------------- /Assets/Textures/GUI/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/GUI/square.png -------------------------------------------------------------------------------- /Assets/Textures/GUI/square.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e4175ba047324edaa7d991ce59f3af5 3 | timeCreated: 1486218643 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 1 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 8 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | spritePackingTag: GUI 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Assets/Textures/beam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/beam.png -------------------------------------------------------------------------------- /Assets/Textures/beam.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f219e2a955fa49f3aed75e980a983c0 3 | timeCreated: 1485755715 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 10 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: iPhone 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | - buildTarget: Android 78 | maxTextureSize: 2048 79 | textureFormat: -1 80 | textureCompression: 1 81 | compressionQuality: 50 82 | crunchedCompression: 0 83 | allowsAlphaSplitting: 0 84 | overridden: 0 85 | - buildTarget: tvOS 86 | maxTextureSize: 2048 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | - buildTarget: PSP2 94 | maxTextureSize: 2048 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | - buildTarget: PS4 102 | maxTextureSize: 2048 103 | textureFormat: -1 104 | textureCompression: 1 105 | compressionQuality: 50 106 | crunchedCompression: 0 107 | allowsAlphaSplitting: 0 108 | overridden: 0 109 | - buildTarget: Nintendo Switch 110 | maxTextureSize: 2048 111 | textureFormat: -1 112 | textureCompression: 1 113 | compressionQuality: 50 114 | crunchedCompression: 0 115 | allowsAlphaSplitting: 0 116 | overridden: 0 117 | spriteSheet: 118 | serializedVersion: 2 119 | sprites: [] 120 | outline: [] 121 | spritePackingTag: 122 | userData: 123 | assetBundleName: 124 | assetBundleVariant: 125 | -------------------------------------------------------------------------------- /Assets/Textures/blit_render_texture.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: blit_render_texture 9 | m_ImageContentsHash: 10 | serializedVersion: 2 11 | Hash: 00000000000000000000000000000000 12 | m_Width: 512 13 | m_Height: 512 14 | m_AntiAliasing: 1 15 | m_DepthFormat: 0 16 | m_ColorFormat: 0 17 | m_MipMap: 0 18 | m_GenerateMips: 1 19 | m_SRGB: 0 20 | m_TextureSettings: 21 | m_FilterMode: 0 22 | m_Aniso: 0 23 | m_MipBias: 0 24 | m_WrapMode: 1 25 | -------------------------------------------------------------------------------- /Assets/Textures/blit_render_texture.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da4fac90bb1a74c5298d8eaff6285a17 3 | timeCreated: 1486219259 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/skybox_starfield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/skybox_starfield.png -------------------------------------------------------------------------------- /Assets/Textures/skybox_starfield.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a045bd16a23c2440e8f26c68337b6973 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 5 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | grayScaleToAlpha: 0 26 | generateCubemap: 6 27 | cubemapConvolution: 0 28 | seamlessCubemap: 0 29 | textureFormat: 1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | serializedVersion: 2 33 | filterMode: -1 34 | aniso: -1 35 | mipBias: -1 36 | wrapU: -1 37 | wrapV: -1 38 | wrapW: -1 39 | nPOTScale: 1 40 | lightmap: 0 41 | compressionQuality: 50 42 | spriteMode: 0 43 | spriteExtrude: 1 44 | spriteMeshType: 1 45 | alignment: 0 46 | spritePivot: {x: 0.5, y: 0.5} 47 | spritePixelsToUnits: 100 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spriteGenerateFallbackPhysicsShape: 1 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 2 55 | singleChannelComponent: 0 56 | maxTextureSizeSet: 0 57 | compressionQualitySet: 0 58 | textureFormatSet: 0 59 | platformSettings: 60 | - serializedVersion: 2 61 | buildTarget: DefaultTexturePlatform 62 | maxTextureSize: 2048 63 | resizeAlgorithm: 0 64 | textureFormat: -1 65 | textureCompression: 1 66 | compressionQuality: 50 67 | crunchedCompression: 0 68 | allowsAlphaSplitting: 0 69 | overridden: 0 70 | androidETC2FallbackOverride: 0 71 | - serializedVersion: 2 72 | buildTarget: Standalone 73 | maxTextureSize: 2048 74 | resizeAlgorithm: 0 75 | textureFormat: -1 76 | textureCompression: 1 77 | compressionQuality: 50 78 | crunchedCompression: 0 79 | allowsAlphaSplitting: 0 80 | overridden: 0 81 | androidETC2FallbackOverride: 0 82 | - serializedVersion: 2 83 | buildTarget: iPhone 84 | maxTextureSize: 2048 85 | resizeAlgorithm: 0 86 | textureFormat: -1 87 | textureCompression: 1 88 | compressionQuality: 50 89 | crunchedCompression: 0 90 | allowsAlphaSplitting: 0 91 | overridden: 0 92 | androidETC2FallbackOverride: 0 93 | spriteSheet: 94 | serializedVersion: 2 95 | sprites: [] 96 | outline: [] 97 | physicsShape: [] 98 | bones: [] 99 | spriteID: 100 | vertices: [] 101 | indices: 102 | edges: [] 103 | weights: [] 104 | spritePackingTag: 105 | userData: 106 | assetBundleName: 107 | assetBundleVariant: 108 | -------------------------------------------------------------------------------- /Assets/Textures/smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/smoke.png -------------------------------------------------------------------------------- /Assets/Textures/smoke.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f49ad4e2d90b4fa096d8aef090e0158 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: 0 36 | wrapV: 0 37 | wrapW: 0 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 2 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 10 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | - serializedVersion: 2 71 | buildTarget: Standalone 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | androidETC2FallbackOverride: 0 81 | - serializedVersion: 2 82 | buildTarget: iPhone 83 | maxTextureSize: 2048 84 | resizeAlgorithm: 0 85 | textureFormat: -1 86 | textureCompression: 1 87 | compressionQuality: 50 88 | crunchedCompression: 0 89 | allowsAlphaSplitting: 0 90 | overridden: 0 91 | androidETC2FallbackOverride: 0 92 | - serializedVersion: 2 93 | buildTarget: Android 94 | maxTextureSize: 2048 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 1 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 110 | vertices: [] 111 | indices: 112 | edges: [] 113 | weights: [] 114 | spritePackingTag: 115 | userData: 116 | assetBundleName: 117 | assetBundleVariant: 118 | -------------------------------------------------------------------------------- /Assets/Textures/unite_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/MissilesPerfectMaster/faf1f57d487df2daf6e6cdc2d2f91259e0979af7/Assets/Textures/unite_logo.png -------------------------------------------------------------------------------- /Assets/Textures/unite_logo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdc83f187c6be4ab995fc7c4fcd94025 3 | timeCreated: 1522288955 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 0 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 0 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: Android 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | spriteSheet: 100 | serializedVersion: 2 101 | sprites: [] 102 | outline: [] 103 | physicsShape: [] 104 | spritePackingTag: 105 | userData: 106 | assetBundleName: 107 | assetBundleVariant: 108 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Unity Technologies 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/main.unity 10 | guid: 4d2d655cc7f0c28448b0918bebb721a5 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 1 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 1 63 | m_LightsUseColorTemperature: 0 64 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.1.0f2 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 0 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Medium 11 | pixelLightCount: 1 12 | shadows: 1 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 2 22 | textureQuality: 0 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 1 30 | lodBias: 0.7 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 64 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | m_PerPlatformDefaultQuality: 38 | Android: 0 39 | Nintendo 3DS: 0 40 | Nintendo Switch: 0 41 | PS4: 0 42 | PSM: 0 43 | PSP2: 0 44 | Standalone: 0 45 | Tizen: 0 46 | WebGL: 0 47 | WiiU: 0 48 | Windows Store Apps: 0 49 | XboxOne: 0 50 | iPhone: 0 51 | tvOS: 0 52 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 10 7 | Maximum Allowed Timestep: 10 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 10 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 1 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: 32 | AndroidPlayer: 33 | iPhonePlayer: 34 | m_GameId: 35 | PerformanceReportingSettings: 36 | m_Enabled: 0 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MissilesPerfectMaster 2 | A compute shader demo for Unite 2018 Tokyo.
3 | Around 8 thousands missiles are calculated.
4 |
5 | https://www.youtube.com/watch?v=E7xh4jDbhSU
6 | https://www.youtube.com/watch?v=2eIejJ9vmGw
7 |
8 | ![](https://i.imgur.com/DLxqBlX.png) 9 | -------------------------------------------------------------------------------- /Tools/merge_starfield.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | import random 5 | import numpy as np 6 | from PIL import Image 7 | from PIL import ImageDraw 8 | from PIL import ImageFilter 9 | 10 | def create(srcimg0, srcimg1): 11 | w0, h0 = srcimg0.size 12 | w1, h1 = srcimg1.size 13 | if w0 != w1: 14 | return 15 | #end 16 | if h0 != h1: 17 | return 18 | #end 19 | w, h = w0, h0 20 | 21 | dstimg = Image.new('RGB', [w, h], (0x00,0x00,0x00)) 22 | dst_pixels = dstimg.load() 23 | src0_pixels = srcimg0.load() 24 | src1_pixels = srcimg1.load() 25 | th = 48 26 | for ky in range(h): 27 | for kx in range(w): 28 | p0 = src0_pixels[kx, ky] 29 | p1 = src1_pixels[kx, ky] 30 | ratio = min(th, max(p1[0], p1[1], p1[2]))/th 31 | r = (int)(p0[0]*(1-ratio) + p1[0]*ratio) 32 | g = (int)(p0[1]*(1-ratio) + p1[1]*ratio) 33 | b = (int)(p0[2]*(1-ratio) + p1[2]*ratio) 34 | dst_pixels[kx, ky] = (r, g, b) 35 | #end 36 | #end 37 | 38 | return dstimg 39 | #end 40 | 41 | def merge(src0, src1, dst): 42 | srcimg0 = Image.open(src0, 'r') 43 | srcimg1 = Image.open(src1, 'r') 44 | dstimg = create(srcimg0, srcimg1) 45 | dstimg.save(dst) 46 | #end 47 | 48 | 49 | if __name__ == '__main__': 50 | merge("out0.png", "x+.png", "x0+.png") 51 | merge("out1.png", "x-.png", "x0-.png") 52 | merge("out2.png", "y+.png", "y0+.png") 53 | merge("out3.png", "y-.png", "y0-.png") 54 | #end 55 | 56 | 57 | -------------------------------------------------------------------------------- /Tools/smoke.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | import random 5 | from PIL import Image 6 | from PIL import ImageDraw 7 | from PIL import ImageFilter 8 | 9 | def crop(src_pixels, dst_pixels, x, y, w, h, dx, dy): 10 | for ky in range(h): 11 | for kx in range(w): 12 | p = src_pixels[x+kx, y+ky]; 13 | dst_pixels[dx+kx, dy+ky] = p 14 | #end 15 | #end 16 | #end 17 | 18 | def convert(srcimg): 19 | w, h = srcimg.size 20 | #print("%d,%d" % (w, h)) 21 | src_pixels = srcimg.load() 22 | tmpimg = Image.new('RGBA', [w, h], (0x00,0x00,0x00,0x00)) 23 | tmp_pixels = tmpimg.load() 24 | for ky in range(h): 25 | for kx in range(w): 26 | p = src_pixels[kx, ky]; 27 | tmp_pixels[kx, ky] = (0xff, 28 | 0xff, 29 | 0xff, 30 | p[3]) 31 | #end 32 | #end 33 | tmpimg.save("out2.png") 34 | 35 | dstimg = Image.new('RGBA', [512, 512], (0x00,0x00,0x00,0x00)) 36 | s = 0 37 | d = 0 38 | src_pixels = tmpimg.load() 39 | dst_pixels = dstimg.load() 40 | for i in range(4): 41 | #region = srcimg.crop((0, s, 128, s+512)) 42 | #dstimg.paste(region, (d, 0)) 43 | crop(src_pixels, dst_pixels, 0, s, 128, 512, d, 0) 44 | s += 512 45 | d += 128 46 | #end 47 | return dstimg 48 | #end 49 | 50 | if __name__ == '__main__': 51 | args = sys.argv 52 | src = args[1] 53 | srcimg = Image.open(src, 'r') 54 | dstimg = convert(srcimg) 55 | dstimg.save("out.png") 56 | #EOF 57 | -------------------------------------------------------------------------------- /Tools/smoke_concatenate.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | import random 5 | from PIL import Image 6 | from PIL import ImageDraw 7 | from PIL import ImageFilter 8 | 9 | def crop(src_pixels, dst_pixels, x, y, w, h, dx, dy): 10 | for ky in range(h): 11 | for kx in range(w): 12 | p = src_pixels[x+kx, y+ky]; 13 | dst_pixels[dx+kx, dy+ky] = p 14 | #end 15 | #end 16 | #end 17 | 18 | def convert(srcimg): 19 | w, h = srcimg.size 20 | #print("%d,%d" % (w, h)) 21 | src_pixels = srcimg.load() 22 | dstimg = Image.new('RGBA', [int(w/4), int(h*4)], (0x00,0x00,0x00,0x00)) 23 | 24 | clipboard = srcimg.crop((int(w/4*0), 0, int(w/4*1), h)) 25 | dstimg.paste(clipboard, (0, 0, int(w/4), int(h*1))) 26 | clipboard = srcimg.crop((int(w/4*1), 0, int(w/4*2), h)) 27 | dstimg.paste(clipboard, (0, h*1, int(w/4), int(h*2))) 28 | clipboard = srcimg.crop((int(w/4*2), 0, int(w/4*3), h)) 29 | dstimg.paste(clipboard, (0, h*2, int(w/4), int(h*3))) 30 | clipboard = srcimg.crop((int(w/4*3), 0, int(w/4*4), h)) 31 | dstimg.paste(clipboard, (0, h*3, int(w/4), int(h*4))) 32 | 33 | return dstimg 34 | #end 35 | 36 | if __name__ == '__main__': 37 | args = sys.argv 38 | src = args[1] 39 | srcimg = Image.open(src, 'r') 40 | dstimg = convert(srcimg) 41 | dstimg.save("out.png") 42 | #EOF 43 | -------------------------------------------------------------------------------- /Tools/smoke_mix.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | import random 5 | from PIL import Image 6 | from PIL import ImageDraw 7 | from PIL import ImageFilter 8 | 9 | def crop(src_pixels, dst_pixels, x, y, w, h, dx, dy): 10 | for ky in range(h): 11 | for kx in range(w): 12 | p = src_pixels[x+kx, y+ky]; 13 | dst_pixels[dx+kx, dy+ky] = p 14 | #end 15 | #end 16 | #end 17 | 18 | def convert(srcimg): 19 | w, h = srcimg.size 20 | #print("%d,%d" % (w, h)) 21 | src_pixels = srcimg.load() 22 | dstimg = Image.new('RGBA', [w, h], (0x00,0x00,0x00,0x00)) 23 | dst_pixels = dstimg.load() 24 | for ky in range(h): 25 | for kx in range(w/4): 26 | p0 = src_pixels[kx+w/4*0, ky]; 27 | p1 = src_pixels[kx+w/4*1, ky]; 28 | p2 = src_pixels[kx+w/4*2, ky]; 29 | p3 = src_pixels[kx+w/4*3, ky]; 30 | dst_pixels[kx, ky] = (p0[0], 31 | p1[0], 32 | p2[0], 33 | p3[0]) 34 | #end 35 | #end 36 | return dstimg 37 | #end 38 | 39 | if __name__ == '__main__': 40 | args = sys.argv 41 | src = args[1] 42 | srcimg = Image.open(src, 'r') 43 | dstimg = convert(srcimg) 44 | dstimg.save("out.png") 45 | #EOF 46 | -------------------------------------------------------------------------------- /Tools/stitch.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | from PIL import Image 5 | from PIL import ImageDraw 6 | from PIL import ImageFilter 7 | 8 | if __name__ == '__main__': 9 | args = sys.argv 10 | faces = ( "out0", "out1", "out2", "out3", "out4", "out5" ) 11 | out_width = 1024 12 | start_x = 0 13 | img = Image.new('RGBA', [out_width*6, out_width], (0x00,0x00,0x00,0xff)) 14 | for face in faces: 15 | srcimg = Image.open(face+".png", 'r') 16 | resized_img = srcimg.resize((out_width, out_width)) 17 | clipboard = resized_img.crop((0, 0, out_width, out_width)) 18 | img.paste(clipboard, (start_x, 0, start_x + out_width, out_width)) 19 | start_x += out_width 20 | #end 21 | 22 | outdir = "." 23 | outpath = outdir + '/skybox.png' 24 | img.save(outpath); 25 | #EOF 26 | -------------------------------------------------------------------------------- /Tools/stitch2.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import math 4 | from PIL import Image 5 | from PIL import ImageDraw 6 | from PIL import ImageFilter 7 | 8 | if __name__ == '__main__': 9 | args = sys.argv 10 | faces = ( "x+", "x-", "y+", "y-", "z+", "z-" ) 11 | out_width = 1024 12 | start_x = 0 13 | img = Image.new('RGBA', [out_width*6, out_width], (0x00,0x00,0x00,0xff)) 14 | for face in faces: 15 | srcimg = Image.open(face+".png", 'r') 16 | resized_img = srcimg.resize((out_width, out_width)) 17 | clipboard = resized_img.crop((0, 0, out_width, out_width)) 18 | img.paste(clipboard, (start_x, 0, start_x + out_width, out_width)) 19 | start_x += out_width 20 | #end 21 | 22 | outdir = "." 23 | outpath = outdir + '/skybox.png' 24 | img.save(outpath); 25 | #EOF 26 | --------------------------------------------------------------------------------