From f4642ea00543b6c837bca194a31692570f102e7f Mon Sep 17 00:00:00 2001 From: Trey Shaw Date: Wed, 16 Sep 2026 22:48:52 -0500 Subject: [PATCH] stack item pickup (in progress), throwable hand consumes items, spawnable objects tied to item definitions --- Assets/GameManager.prefab | 13 ++ Assets/Resources/ItemSprites/dynamite.png | 3 + .../Resources/ItemSprites/dynamite.png.meta | 117 +++++++++++++++ Assets/Resources/SpawnablePrefabs.meta | 8 + .../SpawnablePrefabs/ID_DYNAMITE.prefab} | 4 +- .../SpawnablePrefabs/ID_DYNAMITE.prefab.meta} | 2 +- Assets/Scenes/World_Greaybox.unity | 28 +++- Assets/Scripts/Inventory/Inventory.cs | 17 ++- Assets/Scripts/Management/GameManager.cs | 2 + .../Management/ItemInstantiationManager.cs | 35 +++++ .../ItemInstantiationManager.cs.meta | 2 + Assets/Scripts/Management/PlayerController.cs | 6 +- Assets/Scripts/Tools/ThrowableHand.cs | 61 +++++++- Assets/Scripts/WorldInteraction/Item.cs | 23 ++- Assets/tnt.mat | 4 +- Assets/tntFuse.mat | 137 ++++++++++++++++++ Assets/tntFuse.mat.meta | 8 + 17 files changed, 444 insertions(+), 26 deletions(-) create mode 100644 Assets/Resources/ItemSprites/dynamite.png create mode 100644 Assets/Resources/ItemSprites/dynamite.png.meta create mode 100644 Assets/Resources/SpawnablePrefabs.meta rename Assets/{Items/TestTnt.prefab => Resources/SpawnablePrefabs/ID_DYNAMITE.prefab} (99%) rename Assets/{Items/TestTnt.prefab.meta => Resources/SpawnablePrefabs/ID_DYNAMITE.prefab.meta} (74%) create mode 100644 Assets/Scripts/Management/ItemInstantiationManager.cs create mode 100644 Assets/Scripts/Management/ItemInstantiationManager.cs.meta create mode 100644 Assets/tntFuse.mat create mode 100644 Assets/tntFuse.mat.meta diff --git a/Assets/GameManager.prefab b/Assets/GameManager.prefab index de2b235..b97791f 100644 --- a/Assets/GameManager.prefab +++ b/Assets/GameManager.prefab @@ -439,6 +439,7 @@ GameObject: - component: {fileID: 4444498079052879519} - component: {fileID: 5173819118098093347} - component: {fileID: 1410439939888368689} + - component: {fileID: 4848130177960439240} m_Layer: 0 m_Name: GameManager m_TagString: Untagged @@ -574,3 +575,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::SoundSettingManager audioMixer: {fileID: 24100000, guid: 3490106d3e6edc143b9179d3107780dd, type: 2} +--- !u!114 &4848130177960439240 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8685480739473632986} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f2dcea982e135f3448df561481c5fea7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::ItemInstantiationManager diff --git a/Assets/Resources/ItemSprites/dynamite.png b/Assets/Resources/ItemSprites/dynamite.png new file mode 100644 index 0000000..ba8a1ba --- /dev/null +++ b/Assets/Resources/ItemSprites/dynamite.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ab4373005759dcc288acc7e9895849485520fda35bfb8978ea2fff179f83578 +size 7898 diff --git a/Assets/Resources/ItemSprites/dynamite.png.meta b/Assets/Resources/ItemSprites/dynamite.png.meta new file mode 100644 index 0000000..0429bd6 --- /dev/null +++ b/Assets/Resources/ItemSprites/dynamite.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 712d8c367ec686148b06ed141781d8e0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/SpawnablePrefabs.meta b/Assets/Resources/SpawnablePrefabs.meta new file mode 100644 index 0000000..a861e33 --- /dev/null +++ b/Assets/Resources/SpawnablePrefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a9d7b358ebaf9a647be2309f7843ae3f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Items/TestTnt.prefab b/Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab similarity index 99% rename from Assets/Items/TestTnt.prefab rename to Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab index 65b6b4d..d505b7b 100644 --- a/Assets/Items/TestTnt.prefab +++ b/Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab @@ -66,7 +66,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 5725a4484043ade4b85468649933fdcc, type: 2} + - {fileID: 2100000, guid: 4d01c458a905b944f8dabc21fb63577e, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5035,7 +5035,7 @@ GameObject: - component: {fileID: 5800804362539127280} - component: {fileID: 5158393299614104066} m_Layer: 0 - m_Name: TestTnt + m_Name: ID_DYNAMITE m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/Assets/Items/TestTnt.prefab.meta b/Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab.meta similarity index 74% rename from Assets/Items/TestTnt.prefab.meta rename to Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab.meta index 30ad633..9b038b8 100644 --- a/Assets/Items/TestTnt.prefab.meta +++ b/Assets/Resources/SpawnablePrefabs/ID_DYNAMITE.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ea8f36f5e928823469cf3d0ebc62afc7 +guid: 1e2171f251519db47821162463991c4d PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Scenes/World_Greaybox.unity b/Assets/Scenes/World_Greaybox.unity index 99f285e..7c418b4 100644 --- a/Assets/Scenes/World_Greaybox.unity +++ b/Assets/Scenes/World_Greaybox.unity @@ -929,7 +929,7 @@ Transform: m_GameObject: {fileID: 872867677} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 4.16614, y: 2.051, z: 0.82164} + m_LocalPosition: {x: 14.454, y: 35.412, z: 4.411} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1140,7 +1140,7 @@ Transform: m_GameObject: {fileID: 1235880153} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -22.93, y: -16.57, z: -49.807} + m_LocalPosition: {x: -69.6, y: 5.947, z: -49.807} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -1177,6 +1177,30 @@ PrefabInstance: propertyPath: rotationSpeed value: 40 objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2119885955527004040, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5056434560497563343, guid: 0fd9b22e9158e474a96c42de5ee0d85f, type: 3} propertyPath: m_LocalScale.y value: 2.41278 diff --git a/Assets/Scripts/Inventory/Inventory.cs b/Assets/Scripts/Inventory/Inventory.cs index 3c7e957..6c7c02f 100644 --- a/Assets/Scripts/Inventory/Inventory.cs +++ b/Assets/Scripts/Inventory/Inventory.cs @@ -35,18 +35,26 @@ private void Update() } } - // we'll set this up to only try to add one item to the inventory at a time for now - // there won't be stacked items in the wild for right now public bool AddItem(Item item, int quantity) { + int curQuantity = quantity; + // first try to stack for (int i = 0; i < itemSlots.Length; i++) { - if (itemSlots[i].item == item.id && itemSlots[i].quantity < item.maxStack) + if (itemSlots[i].item == item.id && itemSlots[i].quantity + quantity < item.maxStack) { itemSlots[i].quantity += 1; return true; } + else if (itemSlots[i].item == item.id) + { + curQuantity = quantity - (item.maxStack - itemSlots[i].quantity); + itemSlots[i].quantity = item.maxStack; + + if (curQuantity <= 0) + return true; + } } // no stack to add to, try to find an empty slot @@ -56,7 +64,7 @@ public bool AddItem(Item item, int quantity) { itemSlots[i] = new ItemSlot(); - itemSlots[i].quantity = 1; + itemSlots[i].quantity = curQuantity; itemSlots[i].item = item.id; return true; } @@ -88,6 +96,7 @@ public bool RemoveItemQuantity(ItemIdEnum itemId, int quantity) // we have exactly enough in the current slot, so nullify it and // exit itemSlots[i].item = ItemIdEnum.NONE; + itemSlots[i].quantity = 0; break; } else diff --git a/Assets/Scripts/Management/GameManager.cs b/Assets/Scripts/Management/GameManager.cs index 8e87dad..7765ba0 100644 --- a/Assets/Scripts/Management/GameManager.cs +++ b/Assets/Scripts/Management/GameManager.cs @@ -17,6 +17,7 @@ public class GameManager : MonoBehaviour public MenuController MenuController { get; private set; } public SoundSettingManager SoundSettingManager { get; private set; } public PlayerController PlayerController { get; private set; } + public ItemInstantiationManager ItemInstantiationManager { get; private set; } public Image BlackScreen { get; private set; } // Are we currently in a scene transition? @@ -59,6 +60,7 @@ private void ReloadReferences() Instance.Inventory = GetComponent(); Instance.TimeManager = GetComponent(); Instance.PlayerManager = GetComponent(); + Instance.ItemInstantiationManager = GetComponent(); Instance.SoundSettingManager = GetComponent(); Instance.SoundSettingManager.ReloadReferences(); diff --git a/Assets/Scripts/Management/ItemInstantiationManager.cs b/Assets/Scripts/Management/ItemInstantiationManager.cs new file mode 100644 index 0000000..b7f8dab --- /dev/null +++ b/Assets/Scripts/Management/ItemInstantiationManager.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +public class ItemInstantiationManager : MonoBehaviour +{ + private Dictionary spawnablePrefabs = new Dictionary(); + + private void Awake() + { + LoadSpawnablePrefabs(); + } + + private void LoadSpawnablePrefabs() + { + foreach (ItemIdEnum itemId in Enum.GetValues(typeof(ItemIdEnum))) + { + Item item = ItemUtilities.GetItemFromId(itemId); + + if (item.throwable) + { + GameObject prefab = Resources.Load($"SpawnablePrefabs/ID_{itemId.ToString()}"); + if (prefab != null) + { + spawnablePrefabs.Add(itemId, prefab); + } + } + } + } + + public GameObject GetThrowablePrefab(ItemIdEnum itemId) + { + return spawnablePrefabs[itemId]; + } +} diff --git a/Assets/Scripts/Management/ItemInstantiationManager.cs.meta b/Assets/Scripts/Management/ItemInstantiationManager.cs.meta new file mode 100644 index 0000000..3d0ed01 --- /dev/null +++ b/Assets/Scripts/Management/ItemInstantiationManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f2dcea982e135f3448df561481c5fea7 \ No newline at end of file diff --git a/Assets/Scripts/Management/PlayerController.cs b/Assets/Scripts/Management/PlayerController.cs index 082dc28..b9aec73 100644 --- a/Assets/Scripts/Management/PlayerController.cs +++ b/Assets/Scripts/Management/PlayerController.cs @@ -255,14 +255,14 @@ void RotatePlayerTowardMouse() Vector3 targetPoint; - // 1. Try real world hit first (most stable) - if (Physics.Raycast(ray, out RaycastHit hit, 1000f)) + // Try real world hit first (most stable), ignoring Dither layer + if (Physics.Raycast(ray, out RaycastHit hit, 1000f, ~LayerMask.GetMask("Dither"))) { targetPoint = hit.point; } else { - // 2. Fallback to plane at player height + // Fallback to plane at player height Plane plane = new Plane(Vector3.up, DougBody.transform.position); if (!plane.Raycast(ray, out float enter)) diff --git a/Assets/Scripts/Tools/ThrowableHand.cs b/Assets/Scripts/Tools/ThrowableHand.cs index 77436c2..cbd9f85 100644 --- a/Assets/Scripts/Tools/ThrowableHand.cs +++ b/Assets/Scripts/Tools/ThrowableHand.cs @@ -8,7 +8,8 @@ public class ThrowableHand : Tool public float range; public float forceModifier; public float loft; - public GameObject testBomb; + public ItemIdEnum activeThrowable; + private int activeThrowableIndex; // Mathematical plane used to catch the raycast from camera to get direction for // looking at the mouse @@ -89,20 +90,64 @@ private void DrawTargetProjection() targetProjection.transform.position = finalPosition; } + private ItemIdEnum GetNextThrowable() + { + // Use active throwable index to let us continue to search for throwables + if (activeThrowableIndex >= GameManager.Instance.Inventory.itemSlots.Length) + activeThrowableIndex = 0; + + // Search starting at throwable index + for (int i = activeThrowableIndex; i < GameManager.Instance.Inventory.itemSlots.Length; i++) + { + if (ItemUtilities.GetItemFromId(GameManager.Instance.Inventory.itemSlots[i].item).throwable) + { + activeThrowableIndex = i; + return GameManager.Instance.Inventory.itemSlots[i].item; + } + } + + // Wrap back around to 0 if we didn't find anything + for (int i = 0; i < activeThrowableIndex; i++) + { + if (ItemUtilities.GetItemFromId(GameManager.Instance.Inventory.itemSlots[i].item).throwable) + { + activeThrowableIndex = i; + return GameManager.Instance.Inventory.itemSlots[i].item; + } + } + + // We have no throwable items... + activeThrowableIndex = 0; + return ItemIdEnum.NONE; + } + public override void Use() { - GameObject newBomb = Instantiate(testBomb); - newBomb.transform.position = transform.position; + if (activeThrowable == ItemIdEnum.NONE) + { + activeThrowable = GetNextThrowable(); + } - Vector3 direction = transform.forward * throwForce * forceModifier; - direction += GameManager.Instance.PlayerController.GetVelocity(); - direction.y = loft; + if (activeThrowable != ItemIdEnum.NONE && GameManager.Instance.Inventory.GetItemQuantity(activeThrowable) > 0) + { + GameObject throwable = Instantiate(GameManager.Instance.ItemInstantiationManager.GetThrowablePrefab(activeThrowable)); - newBomb.GetComponent().AddForce(direction, ForceMode.Impulse); + if (throwable != null) + { + throwable.transform.position = transform.position; + + Vector3 direction = transform.forward * throwForce * forceModifier; + direction += GameManager.Instance.PlayerController.GetVelocity(); + direction.y = loft; + + throwable.GetComponent().AddForce(direction, ForceMode.Impulse); + GameManager.Instance.Inventory.RemoveItemQuantity(activeThrowable, 1); + } + } } public override void UseAlt() { - throw new System.NotImplementedException(); + activeThrowable = GetNextThrowable(); } } diff --git a/Assets/Scripts/WorldInteraction/Item.cs b/Assets/Scripts/WorldInteraction/Item.cs index bc142c3..f512ea7 100644 --- a/Assets/Scripts/WorldInteraction/Item.cs +++ b/Assets/Scripts/WorldInteraction/Item.cs @@ -9,14 +9,16 @@ public class Item public int maxStack = 10; public string description = ""; public string itemImagePath = ""; + public bool throwable = false; - public Item(string itemName, ItemIdEnum id, int maxStack, string description, string itemImagePath) + public Item(string itemName, ItemIdEnum id, int maxStack, string description, string itemImagePath, bool throwable = false) { this.itemName = itemName; this.id = id; this.maxStack = maxStack; this.description = description; this.itemImagePath = itemImagePath; + this.throwable = throwable; } public Item(ItemIdEnum id) @@ -28,15 +30,18 @@ public Item(ItemIdEnum id) this.maxStack = newItem.maxStack; this.description = newItem.description; this.itemImagePath= newItem.itemImagePath; + this.throwable = newItem.throwable; } } public enum ItemIdEnum { NONE = 0, - STAR_SHARD = 1 + STAR_SHARD = 1, + DYNAMITE = 2 } +[System.Serializable] public static class ItemUtilities { // THIS IS WHERE ALL THE ITEMS ARE DEFINED @@ -50,9 +55,19 @@ public static Item GetItemFromId(ItemIdEnum itemId) id: itemId, maxStack: 10, description: "A rare material that can only be found here in the valley.", - itemImagePath: "ItemSprites/starShard"); + itemImagePath: "ItemSprites/starShard", + false); + + case ItemIdEnum.DYNAMITE: + return new Item( + itemName: "Dynamite", + id: itemId, + maxStack: 10, + description: "A throwable red stick that goes BOOM (after a short time).", + itemImagePath: "ItemSprites/dynamite", + true); } - return new Item("", itemId, 0, "", "ItemSprites/noneItem"); ; + return new Item("", itemId, 0, "", "ItemSprites/noneItem"); } } \ No newline at end of file diff --git a/Assets/tnt.mat b/Assets/tnt.mat index 7816bda..51b46e2 100644 --- a/Assets/tnt.mat +++ b/Assets/tnt.mat @@ -116,8 +116,8 @@ Material: - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _BaseColor: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/tntFuse.mat b/Assets/tntFuse.mat new file mode 100644 index 0000000..ac03846 --- /dev/null +++ b/Assets/tntFuse.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: tntFuse + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.2264151, g: 0.2264151, b: 0.2264151, a: 1} + - _Color: {r: 0.22641507, g: 0.22641507, b: 0.22641507, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &5902119946383194518 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion + version: 10 diff --git a/Assets/tntFuse.mat.meta b/Assets/tntFuse.mat.meta new file mode 100644 index 0000000..82d111a --- /dev/null +++ b/Assets/tntFuse.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d01c458a905b944f8dabc21fb63577e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: