From 08646b8e21a0081d59e91cf0c8cf62e182387ffc Mon Sep 17 00:00:00 2001 From: yauwailam Date: Fri, 7 Feb 2025 11:26:41 +0800 Subject: [PATCH] starting scene wip --- Game/Assets/Followplayercam.cs | 114 ++++++++++++------- Game/Assets/Starting skybox.mat | 159 +++++++++++++++++++++++++++ Game/Assets/Starting skybox.mat.meta | 8 ++ Game/Assets/dark blue.jpg | 3 + Game/Assets/dark blue.jpg.meta | 114 +++++++++++++++++++ Game/Assets/starting floor.mat | 133 ++++++++++++++++++++++ Game/Assets/starting floor.mat.meta | 8 ++ 7 files changed, 498 insertions(+), 41 deletions(-) create mode 100644 Game/Assets/Starting skybox.mat create mode 100644 Game/Assets/Starting skybox.mat.meta create mode 100644 Game/Assets/dark blue.jpg create mode 100644 Game/Assets/dark blue.jpg.meta create mode 100644 Game/Assets/starting floor.mat create mode 100644 Game/Assets/starting floor.mat.meta diff --git a/Game/Assets/Followplayercam.cs b/Game/Assets/Followplayercam.cs index 1b333e5..fae4c6a 100644 --- a/Game/Assets/Followplayercam.cs +++ b/Game/Assets/Followplayercam.cs @@ -4,51 +4,83 @@ using UnityEngine; public class Followplayercam : MonoBehaviour { - public Transform playerCamera; - public float distanceFromPlayer = 2.0f; - public float heightOffset = 0.0f; - public float positionSmoothFactor = 0.2f; // Adjust for responsiveness - public float rotationSmoothFactor = 0.2f; + // public Transform playerCamera; + // public float distanceFromPlayer = 2.0f; + // public float heightOffset = 0.0f; + // public float positionSmoothTime = 0.3f; // Controls delay for position + // public float rotationSmoothTime = 0.15f; // Controls delay for rotation + // + // private Vector3 smoothedPosition; + // private Vector3 velocity = Vector3.zero; + // + // void Start() + // { + // if (playerCamera == null) + // { + // Debug.LogError("Player Camera is not assigned!"); + // return; + // } + // + // smoothedPosition = GetTargetPosition(); + // transform.position = smoothedPosition; + // transform.rotation = GetTargetRotation(); + // } + // + // void LateUpdate() + // { + // if (playerCamera != null) + // { + // Vector3 targetPosition = GetTargetPosition(); + // + // // Apply smooth damping for slight delay + // smoothedPosition = Vector3.SmoothDamp( + // smoothedPosition, + // targetPosition, + // ref velocity, + // positionSmoothTime + // ); + // transform.position = smoothedPosition; + // + // // Apply smooth rotation with slight delay + // transform.rotation = Quaternion.Slerp( + // transform.rotation, + // GetTargetRotation(), + // Time.deltaTime / rotationSmoothTime + // ); + // } + // } + // + // private Vector3 GetTargetPosition() + // { + // return playerCamera.position + playerCamera.forward * distanceFromPlayer + Vector3.up * heightOffset; + // } + // + // private Quaternion GetTargetRotation() + // { + // Vector3 lookAtPoint = new Vector3(playerCamera.position.x, transform.position.y, playerCamera.position.z); + // return Quaternion.LookRotation(lookAtPoint - transform.position); + // } + [Header("Target to Follow")] + public Transform target; // Usually the Main Camera (XR Rig's Head) - private Vector3 smoothedPosition; - private Vector3 velocity = Vector3.zero; + [Header("Follow Settings")] + public float followSpeed = 5f; // How quickly it follows the target + public Vector3 offset = new Vector3(0, -0.2f, 1.5f); // Position offset + public bool followRotation = true; // Toggle for rotating with the head - void Start() + private void LateUpdate() { - if (playerCamera == null) + if (target == null) return; + + // Smooth Position Follow + Vector3 desiredPosition = target.position + target.TransformDirection(offset); + transform.position = Vector3.Lerp(transform.position, desiredPosition, Time.deltaTime * followSpeed); + + // Smooth Rotation Follow + if (followRotation) { - Debug.LogError("Player Camera is not assigned!"); - return; + Quaternion desiredRotation = Quaternion.Euler(0, target.eulerAngles.y, 0); + transform.rotation = Quaternion.Slerp(transform.rotation, desiredRotation, Time.deltaTime * followSpeed); } - - smoothedPosition = GetTargetPosition(); - transform.position = smoothedPosition; - transform.rotation = GetTargetRotation(); - } - - void LateUpdate() - { - if (playerCamera != null) - { - Vector3 targetPosition = GetTargetPosition(); - - // SmoothDamp for a natural feel - smoothedPosition = Vector3.SmoothDamp(smoothedPosition, targetPosition, ref velocity, positionSmoothFactor); - transform.position = smoothedPosition; - - // Exponential smoothing for rotation - transform.rotation = Quaternion.Slerp(transform.rotation, GetTargetRotation(), 1 - Mathf.Exp(-rotationSmoothFactor * Time.deltaTime * 10)); - } - } - - private Vector3 GetTargetPosition() - { - return playerCamera.position + playerCamera.forward * distanceFromPlayer + Vector3.up * heightOffset; - } - - private Quaternion GetTargetRotation() - { - Vector3 lookAtPoint = new Vector3(playerCamera.position.x, transform.position.y, playerCamera.position.z); - return Quaternion.LookRotation(lookAtPoint - transform.position); } } diff --git a/Game/Assets/Starting skybox.mat b/Game/Assets/Starting skybox.mat new file mode 100644 index 0000000..2453911 --- /dev/null +++ b/Game/Assets/Starting skybox.mat @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Starting skybox + m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FrontTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 2800000, guid: 9624eedbdfbb09c41b478a46b97f9dfe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _Exposure: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Rotation: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] +--- !u!114 &4471689181233775431 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Game/Assets/Starting skybox.mat.meta b/Game/Assets/Starting skybox.mat.meta new file mode 100644 index 0000000..5d664f8 --- /dev/null +++ b/Game/Assets/Starting skybox.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af25b9c4c913c174abfa8c095f700ebc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/dark blue.jpg b/Game/Assets/dark blue.jpg new file mode 100644 index 0000000..aafad5a --- /dev/null +++ b/Game/Assets/dark blue.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bac5e0300095e6e20928ec17983b0bf8a131964005d77ccab8e7fa1f4300fb30 +size 1820 diff --git a/Game/Assets/dark blue.jpg.meta b/Game/Assets/dark blue.jpg.meta new file mode 100644 index 0000000..b931a80 --- /dev/null +++ b/Game/Assets/dark blue.jpg.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 9624eedbdfbb09c41b478a46b97f9dfe +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + 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 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/Assets/starting floor.mat b/Game/Assets/starting floor.mat new file mode 100644 index 0000000..53e76e4 --- /dev/null +++ b/Game/Assets/starting floor.mat @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7104173483176227936 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: starting floor + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Game/Assets/starting floor.mat.meta b/Game/Assets/starting floor.mat.meta new file mode 100644 index 0000000..ec3ab1b --- /dev/null +++ b/Game/Assets/starting floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67533cc5c85ae164985305dceeb3dbf9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: