diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls.png b/Assets/Textures/walls.png new file mode 100644 index 0000000..d6e7333 --- /dev/null +++ b/Assets/Textures/walls.png Binary files differ diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls.png b/Assets/Textures/walls.png new file mode 100644 index 0000000..d6e7333 --- /dev/null +++ b/Assets/Textures/walls.png Binary files differ diff --git a/Assets/Textures/walls.png.meta b/Assets/Textures/walls.png.meta new file mode 100644 index 0000000..fbcf72b --- /dev/null +++ b/Assets/Textures/walls.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 3d3c7c276388380438aae17093b99ef0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls.png b/Assets/Textures/walls.png new file mode 100644 index 0000000..d6e7333 --- /dev/null +++ b/Assets/Textures/walls.png Binary files differ diff --git a/Assets/Textures/walls.png.meta b/Assets/Textures/walls.png.meta new file mode 100644 index 0000000..fbcf72b --- /dev/null +++ b/Assets/Textures/walls.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 3d3c7c276388380438aae17093b99ef0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls_tiled.png b/Assets/Textures/walls_tiled.png new file mode 100644 index 0000000..fc4c5eb --- /dev/null +++ b/Assets/Textures/walls_tiled.png Binary files differ diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls.png b/Assets/Textures/walls.png new file mode 100644 index 0000000..d6e7333 --- /dev/null +++ b/Assets/Textures/walls.png Binary files differ diff --git a/Assets/Textures/walls.png.meta b/Assets/Textures/walls.png.meta new file mode 100644 index 0000000..fbcf72b --- /dev/null +++ b/Assets/Textures/walls.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 3d3c7c276388380438aae17093b99ef0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls_tiled.png b/Assets/Textures/walls_tiled.png new file mode 100644 index 0000000..fc4c5eb --- /dev/null +++ b/Assets/Textures/walls_tiled.png Binary files differ diff --git a/Assets/Textures/walls_tiled.png.meta b/Assets/Textures/walls_tiled.png.meta new file mode 100644 index 0000000..a4bf748 --- /dev/null +++ b/Assets/Textures/walls_tiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: f8a0159cc20fa3a4687f0c607c2dd262 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials.meta b/Assets/Materials.meta new file mode 100644 index 0000000..9693900 --- /dev/null +++ b/Assets/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72df8618f9329584eb268c213d62bb0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls.mat b/Assets/Materials/walls.mat new file mode 100644 index 0000000..5defbe7 --- /dev/null +++ b/Assets/Materials/walls.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 3d3c7c276388380438aae17093b99ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.48 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Materials/walls.mat.meta b/Assets/Materials/walls.mat.meta new file mode 100644 index 0000000..bd56543 --- /dev/null +++ b/Assets/Materials/walls.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cbf759e48a385704fa8a31a5b081f90b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled 1.mat b/Assets/Materials/walls_tiled 1.mat new file mode 100644 index 0000000..0a1dd97 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled 1 + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: f8a0159cc20fa3a4687f0c607c2dd262, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 8.31 + m_Colors: + - _Color: {r: 0.3584906, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled 1.mat.meta b/Assets/Materials/walls_tiled 1.mat.meta new file mode 100644 index 0000000..2571bf4 --- /dev/null +++ b/Assets/Materials/walls_tiled 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ecc50a0e9383d44cb9181479d10e0c0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/walls_tiled.mat b/Assets/Materials/walls_tiled.mat new file mode 100644 index 0000000..109902d --- /dev/null +++ b/Assets/Materials/walls_tiled.mat @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: walls_tiled + m_Shader: {fileID: 4800000, guid: 5071897c603ff28409ffa0aae4370de2, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Tiling: 18.44 + m_Colors: + - _Color: {r: 1, g: 0, b: 0, a: 1} diff --git a/Assets/Materials/walls_tiled.mat.meta b/Assets/Materials/walls_tiled.mat.meta new file mode 100644 index 0000000..a436cd2 --- /dev/null +++ b/Assets/Materials/walls_tiled.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8cfce34263e0ed46a9618f17d839929 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs index 95b9a09..57a0991 100644 --- a/Assets/Player/Player.cs +++ b/Assets/Player/Player.cs @@ -20,6 +20,7 @@ private CharacterController charControl; private PlayerFade playerFade; + private Vector3 fadeSpot; private Camera playerFadeCam; // Start is called before the first frame update void Awake() @@ -35,6 +36,8 @@ } } + public GameObject PlayerMesh; + private GameObject castLight; private float bottomOffset; void StartLocal() @@ -46,7 +49,36 @@ bottomOffset = -charControl.center.y + charControl.height * 0.5f; playerFade = FindObjectOfType(); - playerFadeCam = playerFade.GetComponent(); + if (playerFade != null) + { + playerFadeCam = playerFade.GetComponent(); + + fadeSpot = transform.position; + + if (playerFadeCam != null) + { + // shift instantly in the XZ plane + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, 1); + } + } + } + + void StartRemote() + { + if (PlayerMesh != null) + { + foreach (MeshRenderer mr in PlayerMesh.GetComponentsInChildren()) + { + if (mr.sharedMaterial.name == "Player") + { + Material m = mr.material; + + m.DisableKeyword("_EMISSION"); + m.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack; + m.SetColor("_EmissionColor", Color.black); + } + } + } } public float Speed; @@ -58,6 +90,25 @@ private float viewRadius = 4; + public float CamFollowAmount = 0.9f; + public float SpotFollowAmount = 0.95f; + + private Vector3 SlowFollowXZ(Vector3 target, Vector3 current, float factor) + { + Vector2 currentXZ = new Vector2(current.x, current.z); + + Vector2 targetXZ = new Vector2(target.x, target.z); + + float followThisFrame = 1 - Mathf.Pow(1 - factor, Time.deltaTime); + + Vector2 newCurrentXZ = targetXZ * followThisFrame + currentXZ * (1 - followThisFrame); + + current.x = newCurrentXZ.x; + current.z = newCurrentXZ.y; + + return current; + } + // Update is called once per frame void Update() { @@ -116,7 +167,34 @@ } } - + if (playerFade != null && playerFadeCam != null) + { + Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot); + Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(fadeSpot + playerFadeCam.transform.right * viewRadius); + + Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); + Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); + + float radius = (edgeScreen2 - playerScreen2).magnitude; + + playerFade.SetFadeParams(radius, playerScreen2); + + Vector3 camPos = playerFadeCam.transform.position; + Vector2 camXZ = new Vector2(camPos.x, camPos.z); + + Vector2 playerXZ = new Vector2(transform.position.x, transform.position.z); + + float followThisFrame = 1 - Mathf.Pow(1 - CamFollowAmount, Time.deltaTime); + + Vector2 newCamXZ = playerXZ * followThisFrame + camXZ * (1 - followThisFrame); + + camPos.x = newCamXZ.x; + camPos.z = newCamXZ.y; + + playerFadeCam.transform.position = SlowFollowXZ(transform.position, playerFadeCam.transform.position, SpotFollowAmount); + fadeSpot = SlowFollowXZ(transform.position, fadeSpot, CamFollowAmount); + } + if (wantMove.sqrMagnitude > 0) { @@ -125,19 +203,7 @@ CollisionFlags flags = charControl.Move(wantMove); } - if (playerFade != null && playerFadeCam != null) - { - Vector3 playerScreen3 = playerFadeCam.WorldToScreenPoint(transform.position); - Vector3 edgeScreen3 = playerFadeCam.WorldToScreenPoint(transform.position + playerFadeCam.transform.right * viewRadius); - - Vector2 playerScreen2 = new Vector2(playerScreen3.x / playerFadeCam.pixelWidth, playerScreen3.y / playerFadeCam.pixelHeight); - Vector2 edgeScreen2 = new Vector2(edgeScreen3.x / playerFadeCam.pixelWidth, edgeScreen3.y / playerFadeCam.pixelHeight); - - float radius = (edgeScreen2 - playerScreen2).magnitude; - - playerFade.PlayerFadeMat.SetVector("_MainCameraPos", new Vector4(playerScreen2.x, playerScreen2.y, 0, 0)); - playerFade.PlayerFadeMat.SetFloat("_Radius", radius); - } + } } } diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index f7e2e0c..4cc399a 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -77,9 +77,12 @@ m_Name: m_EditorClassIdentifier: ForceLocal: 0 + PlayerMesh: {fileID: 1845617020995435925} Speed: 8 MoveTouchFullZone: 0.6 MoveTouchRadiusSize: 1.45 + CamFollowAmount: 0.9 + SpotFollowAmount: 0.96 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 @@ -208,6 +211,26 @@ propertyPath: m_Shadows.m_Resolution value: 0 objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.r + value: 0.8396226 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.g + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Color.b + value: 0.43169275 + objectReference: {fileID: 0} + - target: {fileID: 7996748539668531132, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 0.99 + objectReference: {fileID: 0} - target: {fileID: 7996748540272408192, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Name @@ -276,27 +299,72 @@ - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.r - value: 0.8113208 + value: 0.9716981 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.g - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Color.b - value: 0.41714135 + value: 0.8387771 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Type - value: 2 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} propertyPath: m_Shadows.m_Resolution - value: 2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018130, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_Intensity + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.75363714 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.6572907 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.x + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.y + value: 7.85 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.41 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 97.81299 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000015258789 + objectReference: {fileID: 0} + - target: {fileID: 7996748540495018133, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000015258789 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6150feaa57b82fc41b4cf5adc7a7dd91, type: 3} diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 990115f..82e0711 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -171,7 +171,7 @@ m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 7ec8e6f585b513f45aee310f88fac2ce, type: 2} + - {fileID: 2100000, guid: 3ecc50a0e9383d44cb9181479d10e0c0, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -214,6 +214,99 @@ m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &67357423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67357427} + - component: {fileID: 67357426} + - component: {fileID: 67357425} + - component: {fileID: 67357424} + m_Layer: 8 + m_Name: FloorSpotShadows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &67357424 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &67357425 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Enabled: 1 + m_CastShadows: 3 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &67357426 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &67357427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 67357423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 51.072174, y: 1, z: 44.20829} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &153359794 GameObject: m_ObjectHideFlags: 0 @@ -774,7 +867,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &731784984 GameObject: @@ -1003,7 +1096,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1088763451 GameObject: @@ -1134,7 +1227,7 @@ - {fileID: 1088763452} - {fileID: 228536900} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1668528467 GameObject: @@ -1227,7 +1320,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1698856408 GameObject: @@ -1440,7 +1533,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1917456049 GameObject: @@ -1500,7 +1593,7 @@ m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: @@ -1593,7 +1686,7 @@ m_LocalScale: {x: 1, y: 2.6614, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2078452654 GameObject: @@ -1687,7 +1780,7 @@ m_Children: - {fileID: 1731919963} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 7709698..23ae478 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -90,9 +90,12 @@ UpdateItem(item); } - Item player = SpawnItemLocal("player"); + Item player = SpawnItemLocal("player", p => + { + p.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + }); - player.transform.position = new Vector3(UnityEngine.Random.Range(-4f, 4f), 1, UnityEngine.Random.Range(-4f, 4f)); + break; } @@ -150,7 +153,7 @@ return ItemsByType.FirstOrDefault(n => n.Type == type).Item; } - private Item SpawnItemLocal(string type) + private Item SpawnItemLocal(string type, Action setupBeforeInitializing = null) { Item prefab = GetItemByType(type); if (prefab == null) return null; @@ -160,6 +163,8 @@ item.PlayerID = LocalPlayerID; item.ItemID = nextLocalItemId++; + if (setupBeforeInitializing != null) setupBeforeInitializing(item); + item.gameObject.SendMessage("StartLocal", null, SendMessageOptions.DontRequireReceiver); SendItemUpdate(item); diff --git a/Assets/Shaders/Player.mat b/Assets/Shaders/Player.mat index 843ec76..6d6ce27 100644 --- a/Assets/Shaders/Player.mat +++ b/Assets/Shaders/Player.mat @@ -9,8 +9,8 @@ m_PrefabAsset: {fileID: 0} m_Name: Player m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0 + - _Glossiness: 0.522 - _GlossyReflections: 1 - - _Metallic: 0.658 + - _Metallic: 0.313 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 @@ -73,5 +73,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0.9811321, g: 0.6803133, b: 0.6803133, a: 1} + - _EmissionColor: {r: 0.9339623, g: 0.4273318, b: 0.4273318, a: 1} diff --git a/Assets/Shaders/PlayerFade.cs b/Assets/Shaders/PlayerFade.cs index 9ad52b9..a597ff3 100644 --- a/Assets/Shaders/PlayerFade.cs +++ b/Assets/Shaders/PlayerFade.cs @@ -6,10 +6,18 @@ { public Material PlayerFadeMat; + private Material fadeMatCopy; + // Start is called before the first frame update void Start() { - + fadeMatCopy = GameObject.Instantiate(PlayerFadeMat); + } + + public void SetFadeParams(float radius, Vector2 fadeLoc) + { + fadeMatCopy.SetVector("_MainCameraPos", new Vector4(fadeLoc.x, fadeLoc.y, 0, 0)); + fadeMatCopy.SetFloat("_Radius", radius); } // Update is called once per frame @@ -23,7 +31,7 @@ RenderTexture old = RenderTexture.active; RenderTexture.active = destination; - Graphics.Blit(source, PlayerFadeMat); + Graphics.Blit(source, fadeMatCopy); RenderTexture.active = old; } diff --git a/Assets/Shaders/PlayerFade.mat b/Assets/Shaders/PlayerFade.mat index c184b7a..83588e5 100644 --- a/Assets/Shaders/PlayerFade.mat +++ b/Assets/Shaders/PlayerFade.mat @@ -68,7 +68,7 @@ - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Radius: 0.13964117 + - _Radius: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 @@ -77,4 +77,4 @@ m_Colors: - _Color: {r: 0, g: 0, b: 0, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _MainCameraPos: {r: 0.5594894, g: 0.47476926, b: 0, a: 0} + - _MainCameraPos: {r: 0.5, g: 0.5000001, b: 0, a: 0} diff --git a/Assets/Shaders/ShadowOnly.mat b/Assets/Shaders/ShadowOnly.mat index 2925532..0e1d3af 100644 --- a/Assets/Shaders/ShadowOnly.mat +++ b/Assets/Shaders/ShadowOnly.mat @@ -76,5 +76,5 @@ - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 0, b: 0, a: 1} + - _Color: {r: 0.41509432, g: 0.03328587, b: 0.03328587, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Shaders/Standard.mat b/Assets/Shaders/Standard.mat index 6c99964..989e8c1 100644 --- a/Assets/Shaders/Standard.mat +++ b/Assets/Shaders/Standard.mat @@ -61,9 +61,9 @@ - _DetailNormalMapScale: 1 - _DstBlend: 0 - _GlossMapScale: 1 - - _Glossiness: 0.117 + - _Glossiness: 0 - _GlossyReflections: 1 - - _Metallic: 0.404 + - _Metallic: 0.619 - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 diff --git a/Assets/Shaders/UnlitFullShadows.shader b/Assets/Shaders/UnlitFullShadows.shader index 14f532f..21fbb9a 100644 --- a/Assets/Shaders/UnlitFullShadows.shader +++ b/Assets/Shaders/UnlitFullShadows.shader @@ -7,6 +7,7 @@ { [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) + _Tiling("Tiling", Float) = 1 } SubShader { @@ -51,11 +52,12 @@ sampler2D _MainTex; + uniform float _Tiling; fixed4 frag(v2f i) : SV_Target { - fixed4 col = tex2D(_MainTex, i.uv) * _Color; + fixed4 col = tex2D(_MainTex, i.uv * _Tiling) * _Color; // compute shadow attenuation (1.0 = fully lit, 0.0 = fully shadowed) //fixed shadow = SHADOW_ATTENUATION(i); //// darken light's illumination with shadow, keep ambient intact @@ -72,7 +74,7 @@ { Name "FORWARD" Tags { "LightMode" = "ForwardAdd" } - ZWrite Off Blend One Zero + ZWrite Off BlendOp Min CGPROGRAM #pragma vertex vert @@ -104,7 +106,7 @@ fixed4 frag(v2f IN) : SV_Target { fixed4 atten = SHADOW_ATTENUATION(IN); // atten, IN, IN.worldPos) - fixed4 c = atten; + fixed4 c = atten;// step(0.1, atten); // might want to take light color into account? c.rgb *= /*_LightColor0.rgb **/ _Color.rgb; return c; diff --git a/Assets/Textures.meta b/Assets/Textures.meta new file mode 100644 index 0000000..eb1f0b1 --- /dev/null +++ b/Assets/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 164a00c077fbce842b85dfd69f244b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/untiled.png b/Assets/Textures/untiled.png new file mode 100644 index 0000000..a68382e --- /dev/null +++ b/Assets/Textures/untiled.png Binary files differ diff --git a/Assets/Textures/untiled.png.meta b/Assets/Textures/untiled.png.meta new file mode 100644 index 0000000..984743a --- /dev/null +++ b/Assets/Textures/untiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 2ec49c961a6287246a3e8e5347f92c7b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls.png b/Assets/Textures/walls.png new file mode 100644 index 0000000..d6e7333 --- /dev/null +++ b/Assets/Textures/walls.png Binary files differ diff --git a/Assets/Textures/walls.png.meta b/Assets/Textures/walls.png.meta new file mode 100644 index 0000000..fbcf72b --- /dev/null +++ b/Assets/Textures/walls.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: 3d3c7c276388380438aae17093b99ef0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Textures/walls_tiled.png b/Assets/Textures/walls_tiled.png new file mode 100644 index 0000000..fc4c5eb --- /dev/null +++ b/Assets/Textures/walls_tiled.png Binary files differ diff --git a/Assets/Textures/walls_tiled.png.meta b/Assets/Textures/walls_tiled.png.meta new file mode 100644 index 0000000..a4bf748 --- /dev/null +++ b/Assets/Textures/walls_tiled.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: f8a0159cc20fa3a4687f0c607c2dd262 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 71c9e0f..4654e13 100755 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -34,7 +34,6 @@ - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} - - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}