#98 New Ocean Material and Wave System

This commit is contained in:
IDMhan 2023-12-19 11:31:29 +09:00
parent 3c4d7e5509
commit a6819b1640
1578 changed files with 327342 additions and 47 deletions

File diff suppressed because it is too large Load Diff

View File

@ -170,6 +170,15 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""BuildMode"",
""type"": ""Button"",
""id"": ""c66de4c8-5638-4085-9856-105d2d2af71b"",
""expectedControlType"": ""Button"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
}
],
""bindings"": [
@ -403,6 +412,17 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""action"": ""Mouse1"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""3d467a6e-a464-4bbb-b64f-e3317989fb87"",
""path"": ""<Keyboard>/r"",
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""BuildMode"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
},
@ -582,6 +602,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
m_Player_UseSkill = m_Player.FindAction("UseSkill", throwIfNotFound: true);
m_Player_Mouse0 = m_Player.FindAction("Mouse0", throwIfNotFound: true);
m_Player_Mouse1 = m_Player.FindAction("Mouse1", throwIfNotFound: true);
m_Player_BuildMode = m_Player.FindAction("BuildMode", throwIfNotFound: true);
// Camera
m_Camera = asset.FindActionMap("Camera", throwIfNotFound: true);
m_Camera_Zoom = m_Camera.FindAction("Zoom", throwIfNotFound: true);
@ -668,6 +689,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
private readonly InputAction m_Player_UseSkill;
private readonly InputAction m_Player_Mouse0;
private readonly InputAction m_Player_Mouse1;
private readonly InputAction m_Player_BuildMode;
public struct PlayerActions
{
private @BlueWater m_Wrapper;
@ -688,6 +710,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
public InputAction @UseSkill => m_Wrapper.m_Player_UseSkill;
public InputAction @Mouse0 => m_Wrapper.m_Player_Mouse0;
public InputAction @Mouse1 => m_Wrapper.m_Player_Mouse1;
public InputAction @BuildMode => m_Wrapper.m_Player_BuildMode;
public InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
@ -745,6 +768,9 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@Mouse1.started += instance.OnMouse1;
@Mouse1.performed += instance.OnMouse1;
@Mouse1.canceled += instance.OnMouse1;
@BuildMode.started += instance.OnBuildMode;
@BuildMode.performed += instance.OnBuildMode;
@BuildMode.canceled += instance.OnBuildMode;
}
private void UnregisterCallbacks(IPlayerActions instance)
@ -797,6 +823,9 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@Mouse1.started -= instance.OnMouse1;
@Mouse1.performed -= instance.OnMouse1;
@Mouse1.canceled -= instance.OnMouse1;
@BuildMode.started -= instance.OnBuildMode;
@BuildMode.performed -= instance.OnBuildMode;
@BuildMode.canceled -= instance.OnBuildMode;
}
public void RemoveCallbacks(IPlayerActions instance)
@ -966,6 +995,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnUseSkill(InputAction.CallbackContext context);
void OnMouse0(InputAction.CallbackContext context);
void OnMouse1(InputAction.CallbackContext context);
void OnBuildMode(InputAction.CallbackContext context);
}
public interface ICameraActions
{

View File

@ -148,6 +148,15 @@
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "BuildMode",
"type": "Button",
"id": "c66de4c8-5638-4085-9856-105d2d2af71b",
"expectedControlType": "Button",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
@ -381,6 +390,17 @@
"action": "Mouse1",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "3d467a6e-a464-4bbb-b64f-e3317989fb87",
"path": "<Keyboard>/r",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "BuildMode",
"isComposite": false,
"isPartOfComposite": false
}
]
},

View File

@ -1,6 +1,7 @@
using System.Collections;
using BlueWaterProject.Type;
using PixelCrushers.DialogueSystem;
using SoulGames.EasyGridBuilderPro;
using UnityEngine;
using UnityEngine.InputSystem;
using DialogueSystemTrigger = PixelCrushers.DialogueSystem.Wrappers.DialogueSystemTrigger;
@ -15,16 +16,17 @@ namespace BlueWaterProject
private Transform interactionTarget;
private Transform visualLook;
private Rigidbody rb;
//test character ani TODO : 나중에 스파인으로 바꾸고 삭제
//TODO : 나중에 스파인으로 바꾸고 삭제
public SpriteRenderer spriteRenderer;
public Sprite sideSprite;
public Sprite backSprite;
public Sprite frontSprite;
//test character ani
protected PlayerInput playerInput;
protected Vector2 movementInput;
private MultiGridUIManager multiGridUIManager;
private void Init()
{
characterSpeed = 10;
@ -32,6 +34,7 @@ namespace BlueWaterProject
rb = GetComponent<Rigidbody>();
spriteRenderer = visualLook.GetComponent<SpriteRenderer>();
playerInput = GetComponent<PlayerInput>();
multiGridUIManager = GameObject.Find("EGB Pro UI").GetComponent<MultiGridUIManager>();
}
private void Awake()

View File

@ -9,6 +9,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: StylizedWater2_DynamicEffectsDemo 1
m_Shader: {fileID: 482279110045391116, guid: d7b0192b9bf19c949900035fa781fdc4, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _ADVANCED_SHADING
- _CAUSTICS
@ -20,7 +22,6 @@ Material:
- _WAVES
m_InvalidKeywords:
- _DEPTHEXP_ON
- _VERTEXCOLORWAVEFLATTENING_ON
- _ZCLIP_ON
- _ZWRITE_ON
m_LightmapFlags: 4
@ -29,6 +30,7 @@ Material:
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties: _Cull
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -268,13 +270,13 @@ Material:
- _UnderwaterSurfaceSmoothness: 0.8
- _VertexColorDepth: 0
- _VertexColorFoam: 0
- _VertexColorWaveFlattening: 1
- _VertexColorWaveFlattening: 0
- _WaveCount: 2
- _WaveDistance: 0.952
- _WaveHeight: 0.2
- _WaveHeight: 1.08
- _WaveNormalStr: 1
- _WaveSpeed: 2
- _WaveSteepness: 0
- _WaveSteepness: 0.64
- _WaveTint: 0
- _WavesOn: 1
- _WorkflowMode: 1
@ -289,8 +291,10 @@ Material:
- _DistanceNormalsFadeDist: {r: 0, g: 100, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FoamColor: {r: 1, g: 1, b: 1, a: 1}
- _FoamTiling: {r: 0.1, g: 0.1, b: 0, a: 0}
- _HorizonColor: {r: 0.68, g: 1, b: 0.99, a: 0}
- _IntersectionColor: {r: 1, g: 1, b: 1, a: 1}
- _NormalTiling: {r: 0.5, g: 0.5, b: 0, a: 0}
- _RimColor: {r: 1, g: 1, b: 1, a: 1}
- _ShallowColor: {r: 0, g: 1, b: 0.9803922, a: 0}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}

View File

@ -22,6 +22,7 @@ Material:
- _REFRACTION
- _SHARP_INERSECTION
- _TRANSLUCENCY
- _WAVES
m_InvalidKeywords:
- _DEPTHEXP_ON
- _ZCLIP_ON
@ -235,7 +236,7 @@ Material:
- _WaveSpeed: 2
- _WaveSteepness: 0.1
- _WaveTint: 0
- _WavesOn: 0
- _WavesOn: 1
- _WorkflowMode: 1
- _WorldSpaceUV: 1
- _ZClip: 1
@ -255,8 +256,10 @@ Material:
- _DistanceNormalsFadeDist: {r: 100, g: 300, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FoamColor: {r: 1, g: 1, b: 1, a: 1}
- _FoamTiling: {r: 0.1, g: 0.1, b: 0, a: 0}
- _HorizonColor: {r: 0.84, g: 1, b: 1, a: 0.15}
- _IntersectionColor: {r: 1, g: 1, b: 1, a: 1}
- _NormalTiling: {r: 0.5, g: 0.5, b: 0, a: 0}
- _ShallowColor: {r: 0.1, g: 0.9, b: 0.89, a: 0.02}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _WaveDirection: {r: 1, g: 1, b: 1, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 184a573d69cdaf04aa5365c51c6ce5a9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 31c1af136bd1e0b4dad8ee6a9cba821d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fa86061205ccbbe4ba22d76076c240e1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c29951a1c9d83f944becafef9c1d2725
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6403896494d134e45bbdf7f4b50c5720
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 26b8c499356132e49a2d9d436440505b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,129 @@
fileFormatVersion: 2
guid: 6fde4d0f34470624fbed94f695585e63
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 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
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
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: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Editor/Resources/NWH/Editor/CenterOfMassIcon.png
uploadId: 628762

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 0f529537840cdb34e9b744ffe2fec59b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
vTOnly: 0
ignoreMasterTextureLimit: 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
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: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Editor/Resources/NWH/Editor/MassAffectorIcon.png
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0e0a2112cd160ef4cac4391fd7d9c862
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,78 @@
%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: CheckerMaterial
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 55, y: 55}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: f5173661e77e7e644be9514b9e6f10b5, type: 3}
m_Scale: {x: 55, y: 55}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.9339623, g: 0.9339623, b: 0.9339623, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 2dd2af3b8ee824749bd488d6f8f4aafb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/CheckerMaterial.mat
uploadId: 628762

View File

@ -0,0 +1,80 @@
%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: GridMaterial
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.8207547, g: 0.8207547, b: 0.8207547, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: fb048d7002a3d7f408ce6dd620dd9ae5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterial.mat
uploadId: 628762

View File

@ -0,0 +1,80 @@
%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: GridMaterialBlue
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.40251565, g: 0.644824, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: afc2cc210610d1e45a6e655d67860882
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterialBlue.mat
uploadId: 628762

View File

@ -0,0 +1,80 @@
%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: GridMaterialGreen
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.57412595, g: 0.9245283, b: 0.5291325, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: c4ea2a35572c8504f9564a9e37b9aa8b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterialGreen.mat
uploadId: 628762

View File

@ -0,0 +1,78 @@
%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: GridMaterialGrey
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.5566038, g: 0.5566038, b: 0.5566038, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: d4a34326858306348b54e0446b57a89f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterialGrey.mat
uploadId: 628762

View File

@ -0,0 +1,78 @@
%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: GridMaterialOrange
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 0.57071334, b: 0.21383637, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: df6c654030311b344ba9f51e5021065a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterialOrange.mat
uploadId: 628762

View File

@ -0,0 +1,80 @@
%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: GridMaterialRed
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4936be8cba5b87f43be1ce666537f2fb, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.990566, g: 0.505634, b: 0.49216792, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: e8f299494faf15547a804f58da50af3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/GridMaterialRed.mat
uploadId: 628762

View File

@ -0,0 +1,84 @@
%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: TerrainMaterial
m_Shader: {fileID: 10623, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 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}
- _TerrainHolesTexture:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Shininess: 0.039
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.509434, g: 0.509434, b: 0.509434, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 1e7fd05a4f92bf7458e985197cac2b97
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Materials/TerrainMaterial.mat
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 09d6837d493b38e4ca1ec48f5f8042cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d57c7f7e28e30c74198786f4d9008747
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 37c3ab07e7ccbe046ad2301535a80b59
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Character DWP2.prefab
uploadId: 628762

View File

@ -0,0 +1,914 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!54 &4366774029683384662
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1669568421398330451}
serializedVersion: 2
m_Mass: 3.75
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &5381886166345111008
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1669568421398330451}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.00055727334
m_Height: 0.0022290933
m_Direction: 1
m_Center: {x: 0, y: 0.0011145467, z: 0}
--- !u!144 &5598778059773915000
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1669568421398330451}
m_ConnectedBody: {fileID: 6508073823361918273}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0.0015824317, y: 0.0019057774, z: 0.00012682987}
serializedVersion: 2
m_SwingAxis: {x: 1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -70
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 10
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 50
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &6667498013135617387
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2237649966740137612}
serializedVersion: 2
m_Mass: 5.625
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &7534720338710063341
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2237649966740137612}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0012485316
m_Height: 0.004161772
m_Direction: 1
m_Center: {x: 0, y: 0.002080886, z: 0}
--- !u!144 &1787496426013301619
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2237649966740137612}
m_ConnectedBody: {fileID: 5685765070671233833}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: -0.0008917618, y: -0.00040676718, z: -0.00025815802}
serializedVersion: 2
m_SwingAxis: {x: 1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -20
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 70
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 30
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &6435937337478214138
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2344393171001254540}
serializedVersion: 2
m_Mass: 3.75
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!135 &1553456009745475743
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2344393171001254540}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.002
m_Center: {x: 0, y: 0.002, z: 0}
--- !u!144 &3423697467721312266
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2344393171001254540}
m_ConnectedBody: {fileID: 6508073823361918273}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 1, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 7.565025e-12, y: 0.003143527, z: 0.0000014987891}
serializedVersion: 2
m_SwingAxis: {x: 0, y: 0, z: 1}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -40
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 25
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 25
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &1667505594472378099
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2535799742129119524}
serializedVersion: 2
m_Mass: 3.75
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &2798907072842450426
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2535799742129119524}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0010326925
m_Height: 0.0051634624
m_Direction: 1
m_Center: {x: 0, y: 0.0025817312, z: 0}
--- !u!144 &4644711138102017098
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2535799742129119524}
m_ConnectedBody: {fileID: 4366774029683384662}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: -0.0000000062864283, y: 0.0022290933, z: -0.0000000042782635}
serializedVersion: 2
m_SwingAxis: {x: -1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -90
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 0
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &4760133491206691705
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3288051379793716276}
serializedVersion: 2
m_Mass: 5.625
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &4290024855928272360
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3288051379793716276}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.001248532
m_Height: 0.0041617732
m_Direction: 1
m_Center: {x: 0, y: 0.0020808866, z: 0}
--- !u!144 &5835798672725792827
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3288051379793716276}
m_ConnectedBody: {fileID: 5685765070671233833}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0.0008917617, y: -0.00040676718, z: -0.00025815843}
serializedVersion: 2
m_SwingAxis: {x: 1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -20
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 70
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 30
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &2065542864099188324
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3790759326974649518}
serializedVersion: 2
m_Mass: 5.625
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &942260023105347063
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3790759326974649518}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0013108474
m_Height: 0.0052433894
m_Direction: 1
m_Center: {x: 0, y: 0.0026216947, z: 0}
--- !u!144 &1970416271574234321
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3790759326974649518}
m_ConnectedBody: {fileID: 4760133491206691705}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0.000000009895423, y: 0.0041617732, z: 0.000000007974723}
serializedVersion: 2
m_SwingAxis: {x: 1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -80
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 0
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &5685765070671233833
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4518048983303369900}
serializedVersion: 2
m_Mass: 9.375
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &5243378588056031682
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4518048983303369900}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.0031648634, y: 0.0033704657, z: 0.0026366564}
m_Center: {x: 0, y: 0.0012784656, z: -0.00012907921}
--- !u!54 &4821391469390928656
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5812924873496384626}
serializedVersion: 2
m_Mass: 3.75
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &4916143079356571465
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5812924873496384626}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0005572733
m_Height: 0.002229093
m_Direction: 1
m_Center: {x: 0, y: 0.0011145466, z: 0}
--- !u!144 &2964802382530788149
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5812924873496384626}
m_ConnectedBody: {fileID: 6508073823361918273}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 1, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: -0.0015824317, y: 0.0019057773, z: 0.00012683004}
serializedVersion: 2
m_SwingAxis: {x: 0, y: 0, z: 1}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -70
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 10
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 50
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &6508073823361918273
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6235931897094386517}
serializedVersion: 2
m_Mass: 9.375
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!65 &8668211533486933180
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6235931897094386517}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.0031648634, y: 0.0019057761, z: 0.0025987695}
m_Center: {x: 0, y: 0.0009528892, z: -0.00032096345}
--- !u!144 &1732855181518449154
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6235931897094386517}
m_ConnectedBody: {fileID: 5685765070671233833}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 1, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 7.563072e-12, y: 0.0029636985, z: -0.000000007683411}
serializedVersion: 2
m_SwingAxis: {x: 0, y: 0, z: 1}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -20
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 20
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 10
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &299315870735684240
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6825945279372376750}
serializedVersion: 2
m_Mass: 3.75
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &952089967813978085
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6825945279372376750}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0010326923
m_Height: 0.005163461
m_Direction: 1
m_Center: {x: 0, y: 0.0025817305, z: 0}
--- !u!144 &8025335656579958403
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6825945279372376750}
m_ConnectedBody: {fileID: 4821391469390928656}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: -1, y: 0, z: 0}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0.0000000013387761, y: 0.002229093, z: -0.000000007064955}
serializedVersion: 2
m_SwingAxis: {x: 0, y: 0, z: 1}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -90
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 0
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!54 &835376829946187471
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7207172525457819086}
serializedVersion: 2
m_Mass: 5.625
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!136 &296110068645425668
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7207172525457819086}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.0013108483
m_Height: 0.005243393
m_Direction: 1
m_Center: {x: 0, y: 0.0026216966, z: 0}
--- !u!144 &6430181088114366544
CharacterJoint:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7207172525457819086}
m_ConnectedBody: {fileID: 6667498013135617387}
m_Anchor: {x: 0, y: 0, z: 0}
m_Axis: {x: 0, y: 0, z: 1}
m_AutoConfigureConnectedAnchor: 1
m_ConnectedAnchor: {x: 0.000000009575039, y: 0.004161772, z: 8.731449e-10}
serializedVersion: 2
m_SwingAxis: {x: 1, y: 0, z: 0}
m_TwistLimitSpring:
spring: 0
damper: 0
m_LowTwistLimit:
limit: -80
bounciness: 0
contactDistance: 0
m_HighTwistLimit:
limit: 0
bounciness: 0
contactDistance: 0
m_SwingLimitSpring:
spring: 0
damper: 0
m_Swing1Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_Swing2Limit:
limit: 0
bounciness: 0
contactDistance: 0
m_EnableProjection: 0
m_ProjectionDistance: 0.1
m_ProjectionAngle: 180
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 1
m_ConnectedMassScale: 1
--- !u!1001 &4855940517308785001
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -4216859302048453862, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -927199367670048503, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
propertyPath: m_Name
value: character Variant
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0243ae182c1cab5469c3d280cb24b5cb, type: 3}
--- !u!1 &5812924873496384626 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1425508527506797851, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &4518048983303369900 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 9065906238872704453, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2344393171001254540 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7199902334543741925, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &7207172525457819086 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2839168916247520423, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &6235931897094386517 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -7644368708306251204, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &3288051379793716276 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7981017781951497565, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2535799742129119524 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6940957705204908109, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1669568421398330451 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -3150061720295842502, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &3790759326974649518 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 8644870222572897735, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &6825945279372376750 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2150861608667274183, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2237649966740137612 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6660400426168879077, guid: 0243ae182c1cab5469c3d280cb24b5cb,
type: 3}
m_PrefabInstance: {fileID: 4855940517308785001}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: f20c03da7c73d614f8579ded767fffdc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Character Variant.prefab
uploadId: 628762

View File

@ -0,0 +1,113 @@
fileFormatVersion: 2
guid: 0243ae182c1cab5469c3d280cb24b5cb
ModelImporter:
serializedVersion: 19300
internalIDToNameTable: []
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: hair
second: {fileID: 2100000, guid: 508fce232ded8834b856649e134b2796, type: 2}
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: skin_
second: {fileID: 2100000, guid: e1a8272e051d4d24798f2be43e4632f2, type: 2}
materials:
materialImportMode: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 0.25
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 1
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 0.25
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Character.fbx
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6ecac04128d2c834dbbfa2eb60a4a00f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,77 @@
%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: hair
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: d2188fb888083bc4c8a764f5d6379156, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 508fce232ded8834b856649e134b2796
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Materials/hair.mat
uploadId: 628762

View File

@ -0,0 +1,77 @@
%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: skin_
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 359c284f16b1557428f1fc35e8def290, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: e1a8272e051d4d24798f2be43e4632f2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Materials/skin_.mat
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 754ddacc7d4b747408cc12e2fe63a2f9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

View File

@ -0,0 +1,99 @@
fileFormatVersion: 2
guid: 359c284f16b1557428f1fc35e8def290
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
applyGammaDecoding: 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:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Textures/body.png
uploadId: 628762

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -0,0 +1,99 @@
fileFormatVersion: 2
guid: d2188fb888083bc4c8a764f5d6379156
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
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
applyGammaDecoding: 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:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Models/Character/Textures/hair.png
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8ac59a87c9d958b4084fb385bf7c16fe
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 7fa8b21f1255e2d4e9256ac3df296c23
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/PostProcessing/NWHPostProcessProfile Linear.asset
uploadId: 628762

View File

@ -0,0 +1,50 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1262635049037747634
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1262635049037747632}
- component: {fileID: 1262635049037747635}
m_Layer: 16
m_Name: PostProcessing
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1262635049037747632
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1262635049037747634}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.3841262, y: 16.267866, z: 17.338749}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1262635049037747635
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1262635049037747634}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
m_Name:
m_EditorClassIdentifier:
sharedProfile: {fileID: 11400000, guid: 7fa8b21f1255e2d4e9256ac3df296c23, type: 2}
isGlobal: 1
blendDistance: 0
weight: 1
priority: 10

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 4081359a1d200a343a828de20bced24c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/PostProcessing/PostProcessing.prefab
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: df5e6895ce6e4b042858adfc461102ac
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,239 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7466201204112725509
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7466201204112725561}
- component: {fileID: 7466201204112725562}
- component: {fileID: 7466201204112725563}
- component: {fileID: 663341385}
m_Layer: 0
m_Name: RigidBodyFPSController
m_TagString: Player
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &7466201204112725561
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201204112725509}
m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068}
m_LocalPosition: {x: 119.7, y: 4.24, z: 48.1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 7466201205343624413}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0}
--- !u!54 &7466201204112725562
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201204112725509}
serializedVersion: 2
m_Mass: 80
m_Drag: 0.05
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 1
m_Constraints: 112
m_CollisionDetection: 2
--- !u!136 &7466201204112725563
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201204112725509}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 0.3
m_Height: 1.8
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &663341385
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201204112725509}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7bf5130586c2cd149921367e3e97a8be, type: 3}
m_Name:
m_EditorClassIdentifier:
gravity: 10
jumpHeight: 2
maximumY: 60
maxVelocityChange: 8
minimumY: -60
sensitivityX: 6
sensitivityY: 6
speed: 6
--- !u!1 &7466201205343624410
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7466201205343624413}
- component: {fileID: 7466201205343624409}
- component: {fileID: 7466201205343624408}
- component: {fileID: 663341386}
- component: {fileID: 661265185}
m_Layer: 16
m_Name: MainCamera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7466201205343624413
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201205343624410}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.67, y: 0.6, z: 0.53}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 7466201204112725561}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &7466201205343624409
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201205343624410}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.1
far clip plane: 600
field of view: 75
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 0
m_AllowDynamicResolution: 0
m_ForceIntoRT: 1
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!124 &7466201205343624408
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201205343624410}
m_Enabled: 1
--- !u!114 &663341386
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201205343624410}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
m_Name:
m_EditorClassIdentifier:
volumeTrigger: {fileID: 7466201205343624413}
volumeLayer:
serializedVersion: 2
m_Bits: 65536
stopNaNPropagation: 1
finalBlitToCameraTarget: 0
antialiasingMode: 3
temporalAntialiasing:
jitterSpread: 0.75
sharpness: 0.25
stationaryBlending: 0.95
motionBlending: 0.85
subpixelMorphologicalAntialiasing:
quality: 2
fastApproximateAntialiasing:
fastMode: 1
keepAlpha: 0
fog:
enabled: 1
excludeSkybox: 1
debugLayer:
lightMeter:
width: 512
height: 256
showCurves: 1
histogram:
width: 512
height: 256
channel: 3
waveform:
exposure: 0.12
height: 256
vectorscope:
size: 256
exposure: 0.12
overlaySettings:
linearDepth: 0
motionColorIntensity: 4
motionGridSize: 64
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles: []
m_AfterStackBundles: []
--- !u!81 &661265185
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7466201205343624410}
m_Enabled: 1

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: e6a6c76446ee35448a8ca9db50412d21
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Prefabs/RigidBodyFPSController.prefab
uploadId: 628762

View File

@ -0,0 +1,405 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2509382559366185477
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2509382559366185474}
- component: {fileID: 2509382559366185502}
- component: {fileID: 2509382559366185473}
- component: {fileID: 2509382559366185472}
- component: {fileID: 780947697}
m_Layer: 0
m_Name: cm
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2509382559366185474
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2509382559366185477}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 8.72, y: -0.87599945, z: 35.13}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 5297882908838086830}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2509382559366185502
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2509382559366185477}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2509382559366185473
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2509382559366185477}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3}
m_Name:
m_EditorClassIdentifier:
m_BindingMode: 1
m_FollowOffset: {x: 0, y: 2.5, z: -5}
m_XDamping: 1
m_YDamping: 1
m_ZDamping: 1
m_AngularDampingMode: 0
m_PitchDamping: 0
m_YawDamping: 3
m_RollDamping: 0
m_AngularDamping: 0
m_Heading:
m_Definition: 2
m_VelocityFilterStrength: 4
m_Bias: 0
m_RecenterToTargetHeading:
m_enabled: 1
m_WaitTime: 1
m_RecenteringTime: 2
m_LegacyHeadingDefinition: -1
m_LegacyVelocityFilterStrength: -1
m_XAxis:
Value: 0
m_SpeedMode: 0
m_MaxSpeed: 300
m_AccelTime: 0.5
m_DecelTime: 0.5
m_InputAxisName: Mouse X
m_InputAxisValue: 0
m_InvertInput: 1
m_MinValue: -180
m_MaxValue: 180
m_Wrap: 1
m_Recentering:
m_enabled: 0
m_WaitTime: 1
m_RecenteringTime: 2
m_LegacyHeadingDefinition: -1
m_LegacyVelocityFilterStrength: -1
m_LegacyRadius: 3.4028235e+38
m_LegacyHeightOffset: 3.4028235e+38
m_LegacyHeadingBias: 3.4028235e+38
m_HeadingIsSlave: 0
--- !u!114 &2509382559366185472
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2509382559366185477}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
m_Name:
m_EditorClassIdentifier:
m_NoiseProfile: {fileID: 11400000, guid: a3dacaec0287d7444b4bd276816e1666, type: 2}
m_PivotOffset: {x: 0, y: 0, z: 0}
m_AmplitudeGain: 1
m_FrequencyGain: 1
mNoiseOffsets: {x: 0, y: 0, z: 0}
--- !u!114 &780947697
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2509382559366185477}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_TrackedObjectOffset: {x: 0, y: 0.5, z: 0.2}
m_LookaheadTime: 0.4
m_LookaheadSmoothing: 0
m_LookaheadIgnoreY: 0
m_HorizontalDamping: 0.5
m_VerticalDamping: 0.5
m_ScreenX: 0.5
m_ScreenY: 0.5
m_DeadZoneWidth: 0
m_DeadZoneHeight: 0
m_SoftZoneWidth: 0.8
m_SoftZoneHeight: 0.8
m_BiasX: 0
m_BiasY: 0
m_CenterOnActivate: 1
--- !u!1 &9057981065843767138
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5297882908838086830}
- component: {fileID: 2650497083003919204}
- component: {fileID: 7002376605310077866}
- component: {fileID: 2918550591108839734}
- component: {fileID: 7516428983889213360}
- component: {fileID: 2509382558664452867}
- component: {fileID: 2509382558664452864}
- component: {fileID: 2509382558664452865}
m_Layer: 0
m_Name: Vehicle Camera Cinemachine
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5297882908838086830
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_LocalRotation: {x: 0.116399296, y: 0.13424267, z: -0.015880467, w: 0.98396033}
m_LocalPosition: {x: 3.1364284, y: 1.7979659, z: -24.54187}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2509382559366185474}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 18.435, y: 0, z: 0}
--- !u!20 &2650497083003919204
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.1
far clip plane: 5000
field of view: 60
orthographic: 0
orthographic size: 10
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 0
m_AllowDynamicResolution: 0
m_ForceIntoRT: 1
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!124 &7002376605310077866
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
--- !u!81 &2918550591108839734
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
--- !u!114 &7516428983889213360
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
m_Name:
m_EditorClassIdentifier:
volumeTrigger: {fileID: 0}
volumeLayer:
serializedVersion: 2
m_Bits: 65536
stopNaNPropagation: 1
finalBlitToCameraTarget: 0
antialiasingMode: 3
temporalAntialiasing:
jitterSpread: 0.75
sharpness: 0.25
stationaryBlending: 0.95
motionBlending: 0.85
subpixelMorphologicalAntialiasing:
quality: 2
fastApproximateAntialiasing:
fastMode: 1
keepAlpha: 0
fog:
enabled: 1
excludeSkybox: 1
debugLayer:
lightMeter:
width: 512
height: 256
showCurves: 1
histogram:
width: 512
height: 256
channel: 3
waveform:
exposure: 0.12
height: 256
vectorscope:
size: 256
exposure: 0.12
overlaySettings:
linearDepth: 0
motionColorIntensity: 4
motionGridSize: 64
colorBlindnessType: 0
colorBlindnessStrength: 1
m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
m_ShowToolkit: 0
m_ShowCustomSorter: 0
breakBeforeColorGrading: 0
m_BeforeTransparentBundles: []
m_BeforeStackBundles: []
m_AfterStackBundles: []
--- !u!114 &2509382558664452867
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e501d18bb52cf8c40b1853ca4904654f, type: 3}
m_Name:
m_EditorClassIdentifier:
m_CollideAgainst:
serializedVersion: 2
m_Bits: 1025
m_IgnoreTag:
m_TransparentLayers:
serializedVersion: 2
m_Bits: 0
m_MinimumDistanceFromTarget: 3
m_AvoidObstacles: 1
m_DistanceLimit: 0
m_MinimumOcclusionTime: 0
m_CameraRadius: 1
m_Strategy: 2
m_MaximumEffort: 4
m_SmoothingTime: 0.5
m_Damping: 5
m_DampingWhenOccluded: 0
m_OptimalTargetDistance: 0
--- !u!114 &2509382558664452864
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowDebugText: 0
m_ShowCameraFrustum: 1
m_IgnoreTimeScale: 0
m_WorldUpOverride: {fileID: 0}
m_UpdateMethod: 1
m_BlendUpdateMethod: 1
m_DefaultBlend:
m_Style: 1
m_Time: 2
m_CustomCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_CustomBlends: {fileID: 0}
m_CameraCutEvent:
m_PersistentCalls:
m_Calls: []
m_CameraActivatedEvent:
m_PersistentCalls:
m_Calls: []
--- !u!114 &2509382558664452865
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9057981065843767138}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ExcludedPropertiesInInspector:
- m_Script
m_LockStageInInspector:
m_StreamingVersion: 20170927
m_Priority: 10
m_StandbyUpdate: 2
m_LookAt: {fileID: 0}
m_Follow: {fileID: 0}
m_Lens:
FieldOfView: 60
OrthographicSize: 10
NearClipPlane: 0.1
FarClipPlane: 5000
Dutch: 0
ModeOverride: 0
LensShift: {x: 0, y: 0}
GateFit: 2
m_SensorSize: {x: 1, y: 1}
m_Transitions:
m_BlendHint: 0
m_InheritPosition: 0
m_OnCameraLive:
m_PersistentCalls:
m_Calls: []
m_LegacyBlendHint: 0
m_ComponentOwner: {fileID: 2509382559366185474}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 4701ecfae761d464fa3c48783371094c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Prefabs/Vehicle Camera Cinemachine.prefab
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7490b7641662d334d8350584ffc55c95
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8e01e9069d1d2ff46a77baf572e242aa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: e4adbe8be80f8cf4b84c03212e7c60fa
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
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
vTOnly: 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: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 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
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
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: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Resources/Editor/NWHCollageBG.png
uploadId: 628762

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: f2724859a107aeb48a454949c40b81ae
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
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
vTOnly: 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: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 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
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
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: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Resources/Editor/NWHLogoSquare.png
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bce008dc77edff547b9855d433d63f2a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8b997166ccb16ed478d9f80053ab6a95
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dc46d9064443dbc4d8444a35a3b98435
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
fileFormatVersion: 2
guid: eadc6ade17f847c4c8b7c679b18c29c7
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontName: Inconsolata
fontNames:
- Inconsolata
fallbackFontReferences:
- {fileID: 12800000, guid: 6fb4b742be6ff5142829071282a75d1b, type: 3}
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Resources/NWH/Fonts/Inconsolata/Inconsolata-Bold.ttf
uploadId: 628762

View File

@ -0,0 +1,29 @@
fileFormatVersion: 2
guid: 6fb4b742be6ff5142829071282a75d1b
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontName: Inconsolata
fontNames:
- Inconsolata
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Resources/NWH/Fonts/Inconsolata/Inconsolata-Regular.ttf
uploadId: 628762

View File

@ -0,0 +1,93 @@
Copyright 2006 The Inconsolata Project Authors
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 2b71cfaef7517a5409d992f035d87a4b
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Resources/NWH/Fonts/Inconsolata/OFL.txt
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b1eb31ddf2b10534fbe89ca9f4a601f6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 211233c39d6825a468b1bbe3675d9150
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,19 @@
using UnityEngine;
namespace NWH.Common.AssetInfo
{
[CreateAssetMenu(fileName = "AssetInfo", menuName = "NWH/AssetInfo", order = 0)]
public class AssetInfo : ScriptableObject
{
public string assetName = "Asset";
public string version = "1.0";
public string upgradeNotesURL = "";
public string changelogURL = "";
public string quickStartURL = "";
public string documentationURL = "";
public string discordURL = "https://discord.gg/59CQGEJ";
public string forumURL = "";
public string emailURL = "mailto:arescec@gmail.com";
public string assetURL = "https://assetstore.unity.com/packages/tools/physics/nwh-vehicle-physics-2-166252";
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0968c894b2cd49fbb5dacdb1b4b5f4bb
timeCreated: 1593277002
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/AssetInfo/AssetInfo.cs
uploadId: 628762

View File

@ -0,0 +1,57 @@
#if UNITY_EDITOR
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
namespace NWH.Common.AssetInfo
{
public class CommonInitializationMethods
{
public static void AddDefines(string symbol)
{
string currentSymbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
string newSymbols = string.Join(";", new HashSet<string>(currentSymbols.Split(';')) { symbol });
if (currentSymbols != newSymbols)
{
PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, newSymbols);
}
}
public static void ShowWelcomeWindow(string assetName)
{
if (!GetAssetInfo(assetName, out AssetInfo assetInfo)) return;
string key = $"{assetInfo.assetName}_{assetInfo.version}_WW"; // Welcome Window key
if (EditorPrefs.GetBool(key, false) == false)
{
EditorPrefs.SetBool(key, true);
ConstructWelcomeWindow(assetInfo);
}
}
private static void ConstructWelcomeWindow(AssetInfo assetInfo)
{
WelcomeMessageWindow window = (WelcomeMessageWindow)EditorWindow.GetWindow(typeof(WelcomeMessageWindow));
window.assetInfo = assetInfo;
window.titleContent.text = assetInfo.assetName;
window.Show();
}
private static bool GetAssetInfo(string assetName, out AssetInfo assetInfo)
{
string assetInfoPath = $"{assetName}/{assetName} AssetInfo";
assetInfo = Resources.Load(assetInfoPath) as AssetInfo;
if (assetInfo == null)
{
Debug.LogWarning($"Could not load Asset Info at path {assetInfoPath}");
return false;
}
return true;
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5d00f825a64982c45854e762515cc7b7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/AssetInfo/CommonInitializationMethods.cs
uploadId: 628762

View File

@ -0,0 +1,98 @@
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace NWH.Common.AssetInfo
{
public class WelcomeMessageWindow : EditorWindow
{
public AssetInfo assetInfo;
public static void DrawWelcomeMessage(AssetInfo assetInfo, float width = 300f)
{
if (assetInfo == null)
{
Debug.LogWarning("AssetInfo is null");
return;
}
GUIStyle style = new GUIStyle(EditorStyles.helpBox);
style.margin = new RectOffset(10, 10, 10, 12);
style.padding = new RectOffset(10, 10, 10, 12);
GUILayout.BeginVertical(style, GUILayout.Width(width - 35f));
GUILayout.Space(8);
GUILayout.Label($"Welcome to {assetInfo.assetName}", EditorStyles.boldLabel);
GUILayout.Space(15);
GUILayout.Label($"Thank you for purchasing {assetInfo.assetName}.\n" +
"Check out the following links:");
GUILayout.Space(10);
GUILayout.Label("Existing customer?", EditorStyles.centeredGreyMiniLabel);
if (GUILayout.Button("Upgrade Notes"))
{
Application.OpenURL(assetInfo.upgradeNotesURL);
}
if (GUILayout.Button("Changelog"))
{
Application.OpenURL(assetInfo.changelogURL);
}
GUILayout.Space(5);
GUILayout.Label("New to the asset?", EditorStyles.centeredGreyMiniLabel);
if (GUILayout.Button("Quick Start"))
{
Application.OpenURL(assetInfo.quickStartURL);
}
if (GUILayout.Button("Documentation"))
{
Application.OpenURL(assetInfo.documentationURL);
}
GUILayout.Space(15);
GUILayout.Label("Also, don't forget to join us at Discord:", EditorStyles.centeredGreyMiniLabel);
if (GUILayout.Button("Discord Server"))
{
Application.OpenURL(assetInfo.discordURL);
}
GUILayout.Space(15);
GUILayout.Label("Don't have Discord? You can also contact us through:", EditorStyles.centeredGreyMiniLabel);
if (GUILayout.Button("Email"))
{
Application.OpenURL(assetInfo.emailURL);
}
if (GUILayout.Button("Forum"))
{
Application.OpenURL(assetInfo.forumURL);
}
GUILayout.Space(15);
GUILayout.Label("Enjoying the asset? Please consider leaving a review, \n" +
"it means a lot to us developers. Thank you.", EditorStyles.centeredGreyMiniLabel);
if (GUILayout.Button("Leave a Review"))
{
Application.OpenURL(assetInfo.assetURL);
}
GUILayout.EndVertical();
}
private void OnGUI()
{
if (assetInfo == null)
{
return;
}
DrawWelcomeMessage(assetInfo, 280f);
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5c4c1ef694cca1b46a75a5757cf9b7f5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/AssetInfo/WelcomeMessageWindow.cs
uploadId: 628762

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 09ae1b3ddcee82a4bb4716f1fc485721
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,258 @@
using System.Collections.Generic;
using NWH.Common.Input;
using UnityEngine;
using UnityEngine.Serialization;
using NWH.Common.Vehicles;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.Cameras
{
/// <summary>
/// Switches between the camera objects that are children to this object and contain camera tag,
/// in order they appear in the hierarchy or in order they are added to the vehicle cameras list.
/// </summary>
[DefaultExecutionOrder(20)]
public class CameraChanger : MonoBehaviour
{
/// <summary>
/// If true vehicleCameras list will be filled through cameraTag.
/// </summary>
[Tooltip(" If true vehicleCameras list will be filled through cameraTag.")]
public bool autoFindCameras = true;
/// <summary>
/// Index of the camera from vehicle cameras list that will be active first.
/// </summary>
[Tooltip(" Index of the camera from vehicle cameras list that will be active first.")]
public int currentCameraIndex;
/// <summary>
/// List of cameras that the changer will cycle through. Leave empty if you want cameras to be automatically detected.
/// To be detected cameras need to have camera tag and be children of the object this script is attached to.
/// </summary>
[FormerlySerializedAs("vehicleCameras")]
[Tooltip(
"List of cameras that the changer will cycle through. Leave empty if you want cameras to be automatically detected." +
" To be detected cameras need to have camera tag and be children of the object this script is attached to.")]
public List<GameObject> cameras = new List<GameObject>();
private Vehicle _vehicle;
/// <summary>
/// Has to be OnEnable as to run before the VehicleController initialization.
/// </summary>
private void Awake()
{
_vehicle = GetComponentInParent<Vehicle>();
if (_vehicle == null)
{
Debug.LogError("None of the parent objects of CameraChanger contain VehicleController.");
}
_vehicle.onEnable.AddListener(EnableCurrentDisableOthers);
_vehicle.onDisable.AddListener(DisableAllCameras);
_vehicle.onMultiplayerStatusChanged.AddListener(OnMultiplayerInstanceTypeChanged);
if (_vehicle == null)
{
Debug.Log("None of the parents of camera changer contain VehicleController component. " +
"Make sure that the camera changer is amongst the children of VehicleController object.");
}
if (autoFindCameras)
{
cameras = new List<GameObject>();
foreach (Camera cam in GetComponentsInChildren<Camera>(true))
{
cameras.Add(cam.gameObject);
}
}
if (cameras.Count == 0)
{
Debug.LogWarning("No cameras could be found by CameraChanger. Either add cameras manually or " +
"add them as children to the game object this script is attached to.");
}
}
private void Update()
{
if (_vehicle.enabled && !_vehicle.MultiplayerIsRemote && InputProvider.Instances.Count > 0)
{
bool changeCamera = InputProvider.CombinedInput<SceneInputProviderBase>(i => i.ChangeCamera());
if (changeCamera)
{
NextCamera();
CheckIfInside();
}
}
}
private void OnMultiplayerInstanceTypeChanged(bool isRemote)
{
if (isRemote)
{
DisableAllCameras();
}
}
private void EnableCurrentDisableOthers()
{
if (_vehicle.MultiplayerIsRemote)
{
return;
}
int cameraCount = cameras.Count;
for (int i = 0; i < cameraCount; i++)
{
if (cameras[i] == null)
{
continue;
}
if (i == currentCameraIndex)
{
cameras[i].SetActive(true);
AudioListener al = cameras[i].GetComponent<AudioListener>();
if (al != null)
{
al.enabled = true;
}
}
else
{
cameras[i].SetActive(false);
AudioListener al = cameras[i].GetComponent<AudioListener>();
if (al != null)
{
al.enabled = false;
}
}
}
}
private void DisableAllCameras()
{
int cameraCount = cameras.Count;
for (int i = 0; i < cameraCount; i++)
{
cameras[i].SetActive(false);
AudioListener al = cameras[i].GetComponent<AudioListener>();
if (al != null)
{
al.enabled = true;
}
}
}
/// <summary>
/// Activates next camera in order the camera scripts are attached to the camera object.
/// </summary>
public void NextCamera()
{
if (cameras.Count <= 0)
{
return;
}
currentCameraIndex++;
if (currentCameraIndex >= cameras.Count)
{
currentCameraIndex = 0;
}
EnableCurrentDisableOthers();
}
public void PreviousCamera()
{
if (cameras.Count <= 0)
{
return;
}
currentCameraIndex--;
if (currentCameraIndex < 0)
{
currentCameraIndex = cameras.Count - 1;
}
EnableCurrentDisableOthers();
}
private void CheckIfInside()
{
if (cameras.Count == 0 || cameras[currentCameraIndex] == null)
{
return;
}
CameraInsideVehicle civ = cameras[currentCameraIndex]?.GetComponent<CameraInsideVehicle>();
if (civ != null)
{
_vehicle.CameraInsideVehicle = civ.isInsideVehicle;
}
else
{
_vehicle.CameraInsideVehicle = false;
}
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.Cameras
{
[CustomEditor(typeof(CameraChanger))]
[CanEditMultipleObjects]
public class CameraChangerEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
drawer.Field("currentCameraIndex");
if (drawer.Field("autoFindCameras").boolValue)
{
drawer.Info(
"When using autoFindCameras make sure that all the cameras are direct children of the object this script is attached to.");
}
else
{
drawer.ReorderableList("cameras");
}
drawer.EndEditor(this);
return true;
}
public override bool UseDefaultMargins()
{
return false;
}
}
}
#endif

View File

@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: ebbf52df36e2d984489f1a6c789c9e95
timeCreated: 1510062979
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/Camera/CameraChanger.cs
uploadId: 628762

View File

@ -0,0 +1,69 @@
using UnityEngine;
using NWH.Common.Vehicles;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.Cameras
{
/// <summary>
/// Empty component that should be attached to the cameras that are inside the vehicle if interior sound change is to
/// be used.
/// </summary>
public class CameraInsideVehicle : MonoBehaviour
{
/// <summary>
/// Is the camera inside vehicle?
/// </summary>
[Tooltip(" Is the camera inside vehicle?")]
public bool isInsideVehicle = true;
private Vehicle _vehicle;
private void Awake()
{
_vehicle = GetComponentInParent<Vehicle>();
Debug.Assert(_vehicle != null, "CameraInsideVehicle needs to be attached to an object containing a Vehicle script.");
}
private void Update()
{
_vehicle.CameraInsideVehicle = isInsideVehicle;
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.Cameras
{
[CustomEditor(typeof(CameraInsideVehicle))]
[CanEditMultipleObjects]
public class CameraInsideVehicleEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
drawer.Field("isInsideVehicle");
drawer.EndEditor(this);
return true;
}
public override bool UseDefaultMargins()
{
return false;
}
}
}
#endif

View File

@ -0,0 +1,19 @@
fileFormatVersion: 2
guid: b660c5d2e66c601438dc90ebb20d7357
timeCreated: 1516720286
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/Camera/CameraInsideVehicle.cs
uploadId: 628762

View File

@ -0,0 +1,442 @@
using System;
using NWH.Common.Input;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.Cameras
{
/// <summary>
/// Camera that can be dragged with the mouse.
/// </summary>
public class CameraMouseDrag : VehicleCamera
{
public enum POVType { FirstPerson, ThirdPerson }
/// <summary>
/// Camera POV type. First person camera will invert controls.
/// Zoom is not available in 1st person.
/// </summary>
[UnityEngine.Tooltip("Camera POV type. First person camera will invert controls.\r\nZoom is not available in 1st person.")]
public POVType povType = POVType.ThirdPerson;
/// <summary>
/// Can the camera be rotated by the user?
/// </summary>
[UnityEngine.Tooltip(" Can the camera be rotated by the user?")]
public bool allowRotation = true;
/// <summary>
/// Can the camera be panned by the user?
/// </summary>
[UnityEngine.Tooltip(" Can the camera be panned by the user?")]
public bool allowPanning = true;
/// <summary>
/// Distance from target at which camera will be positioned. Might vary depending on smoothing.
/// </summary>
[Range(0, 100f)]
[Tooltip(" Distance from target at which camera will be positioned. Might vary depending on smoothing.")]
public float distance = 5f;
/// <summary>
/// If true the camera will rotate with the vehicle along the X and Y axis.
/// </summary>
[FormerlySerializedAs("followTargetsRotation")]
[UnityEngine.Tooltip(" If true the camera will rotate with the vehicle along the X and Y axis.")]
public bool followTargetPitchAndYaw = true;
/// <summary>
/// If true the camera will rotate with the vehicle along the Z axis.
/// </summary>
[UnityEngine.Tooltip(" If true the camera will rotate with the vehicle along the Z axis.")]
public bool followTargetRoll = false;
/// <summary>
/// Maximum distance that will be reached when zooming out.
/// </summary>
[Range(0, 100f)]
[Tooltip(" Maximum distance that will be reached when zooming out.")]
public float maxDistance = 13.0f;
/// <summary>
/// Minimum distance that will be reached when zooming in.
/// </summary>
[Range(0, 100f)]
[Tooltip(" Minimum distance that will be reached when zooming in.")]
public float minDistance = 3.0f;
/// <summary>
/// Sensitivity of the middle mouse button / wheel.
/// </summary>
[Range(0, 15)]
[Tooltip(" Sensitivity of the middle mouse button / wheel.")]
public float zoomSensitivity = 1f;
/// <summary>
/// Smoothing of the camera rotation.
/// </summary>
[Range(0, 1)]
[Tooltip(" Smoothing of the camera rotation.")]
public float rotationSmoothing = 0.02f;
/// <summary>
/// Maximum vertical angle the camera can achieve.
/// </summary>
[Range(-90, 90)]
[UnityEngine.Tooltip(" Maximum vertical angle the camera can achieve.")]
public float verticalMaxAngle = 80.0f;
/// <summary>
/// Minimum vertical angle the camera can achieve.
/// </summary>
[Range(-90, 90)]
[UnityEngine.Tooltip(" Minimum vertical angle the camera can achieve.")]
public float verticalMinAngle = -40.0f;
/// <summary>
/// Sensitivity of rotation input.
/// </summary>
[UnityEngine.Tooltip(" Sensitivity of rotation input.")]
public Vector2 rotationSensitivity = new Vector2(3f, 3f);
/// <summary>
/// Sensitivity of panning input.
/// </summary>
[UnityEngine.Tooltip(" Sensitivity of panning input.")]
public Vector2 panningSensitivity = new Vector2(0.06f, 0.06f);
/// <summary>
/// Initial rotation around the X axis (up/down)
/// </summary>
[UnityEngine.Tooltip(" Initial rotation around the X axis (up/down)")]
public float initXRotation;
/// <summary>
/// Initial rotation around the Y axis (left/right)
/// </summary>
[UnityEngine.Tooltip(" Initial rotation around the Y axis (left/right)")]
public float initYRotation;
/// <summary>
/// Look position offset from the target center.
/// </summary>
[UnityEngine.Tooltip(" Look position offset from the target center.")]
public Vector3 targetPositionOffset = Vector3.zero;
/// <summary>
/// Should camera movement on acceleration be used?
/// </summary>
[UnityEngine.Tooltip("Should camera movement on acceleration be used?")]
public bool useShake = true;
/// <summary>
/// Maximum head movement from the initial position.
/// </summary>
[Range(0f, 1f)]
[Tooltip(" Maximum head movement from the initial position.")]
public float shakeMaxOffset = 0.2f;
/// <summary>
/// How much will the head move around for the given g-force.
/// </summary>
[Range(0f, 1f)]
[Tooltip(" How much will the head move around for the given g-force.")]
public float shakeIntensity = 0.125f;
/// <summary>
/// Smoothing of the head movement.
/// </summary>
[Range(0f, 1f)]
[Tooltip(" Smoothing of the head movement.")]
public float shakeSmoothing = 0.3f;
/// <summary>
/// Movement intensity per axis. Set to 0 to disable movement on that axis or negative to reverse it.
/// </summary>
[UnityEngine.Tooltip(" Movement intensity per axis. Set to 0 to disable movement on that axis or negative to reverse it.")]
public Vector3 shakeAxisIntensity = new Vector3(1f, 0.5f, 1f);
private Vector3 _lookDir;
private Vector3 _newLookDir;
private Vector3 _lookDirVel;
private Vector3 _lookAtPosition;
private Vector2 _rot;
private Vector3 _pan;
private bool _isFirstFrame;
private bool _rotationModifier;
private bool _panningModifier;
private Vector2 _rotationInput;
private Vector2 _panningInput;
private float _zoomInput;
private Vector3 _acceleration;
private Vector3 _prevAcceleration;
private Vector3 _accelerationChangeVelocity;
private Vector3 _initialPosition;
private Vector3 _localAcceleration;
private Vector3 _newPositionOffset;
private Vector3 _offsetChangeVelocity;
private Vector3 _positionOffset;
private Rigidbody _rigidbody;
private float _rbSpeed;
private Vector3 _rbLocalAcceleration;
private Vector3 _rbLocalVelocity;
private Vector3 _rbPrevLocalVelocity;
private bool PointerOverUI
{
get
{
return EventSystem.current != null &&
EventSystem.current.IsPointerOverGameObject();
}
}
private void Start()
{
_initialPosition = transform.localPosition;
_rigidbody = target?.GetComponent<Rigidbody>();
distance = Mathf.Clamp(distance, minDistance, maxDistance);
_rot.x = initXRotation;
_rot.y = initYRotation;
_isFirstFrame = true;
}
private void FixedUpdate()
{
if (_rigidbody == null)
{
return;
}
_rbPrevLocalVelocity = _rbLocalVelocity;
_rbLocalVelocity = transform.InverseTransformDirection(_rigidbody.velocity);
_rbLocalAcceleration = (_rbLocalVelocity - _rbPrevLocalVelocity) / Time.fixedDeltaTime;
_rbSpeed = _rbLocalVelocity.z < 0 ? -_rbLocalVelocity.z : _rbLocalVelocity.z;
}
private void LateUpdate()
{
if (target == null)
{
return;
}
// Handle input
if (!PointerOverUI)
{
_rotationInput = InputProvider.CombinedInput<SceneInputProviderBase>(i => i.CameraRotation());
_panningInput = InputProvider.CombinedInput<SceneInputProviderBase>(i => i.CameraPanning());
_zoomInput = InputProvider.CombinedInput<SceneInputProviderBase>(i => i.CameraZoom());
_rotationModifier =
InputProvider.CombinedInput<SceneInputProviderBase>(i => i.CameraRotationModifier());
_panningModifier = InputProvider.CombinedInput<SceneInputProviderBase>(i => i.CameraPanningModifier());
if (allowRotation && _rotationModifier)
{
_rot.y += _rotationInput.x * rotationSensitivity.x;
_rot.x -= _rotationInput.y * rotationSensitivity.y;
}
if (allowPanning && _panningModifier)
{
float pX = _panningInput.x * panningSensitivity.x;
float pY = _panningInput.y * panningSensitivity.y;
_pan -= target.InverseTransformDirection(transform.right * pX);
_pan -= target.InverseTransformDirection(transform.up * pY);
}
_rot.x = ClampAngle(_rot.x, verticalMinAngle, verticalMaxAngle);
if (povType == POVType.ThirdPerson && (_zoomInput > 0.0001f || _zoomInput < -0.0001f))
{
distance -= _zoomInput * zoomSensitivity;
}
}
Vector3 forwardVector = followTargetPitchAndYaw ? target.forward : Vector3.forward;
Vector3 rightVector = followTargetPitchAndYaw ? target.right : Vector3.right;
Vector3 upVector = followTargetPitchAndYaw ? target.up : Vector3.up;
_lookAtPosition = target.position +
target.TransformDirection(targetPositionOffset + _pan);
_newLookDir = Quaternion.AngleAxis(_rot.x, rightVector) * forwardVector;
_newLookDir = Quaternion.AngleAxis(_rot.y, upVector) * _newLookDir;
_lookDir = _isFirstFrame ?
_newLookDir :
Vector3.SmoothDamp(_lookDir, _newLookDir, ref _lookDirVel, rotationSmoothing);
_lookDir = Vector3.Normalize(_lookDir);
if (povType == POVType.ThirdPerson)
{
distance = povType == POVType.FirstPerson ? 0 : Mathf.Clamp(distance, minDistance, maxDistance);
Vector3 targetPosition = _lookAtPosition - _lookDir * distance;
transform.position = targetPosition;
transform.forward = _lookDir;
// Check for ground
if (Physics.Raycast(transform.position, -Vector3.up, out RaycastHit hit, 0.5f))
{
transform.position = hit.point + Vector3.up * 0.5f;
}
transform.rotation =
Quaternion.LookRotation(_lookDir, followTargetRoll ? target.up : Vector3.up);
}
else
{
transform.localPosition = _initialPosition + _pan;
transform.rotation =
Quaternion.LookRotation(_lookDir, followTargetRoll ? target.up : Vector3.up);
}
// Movement effect
_prevAcceleration = _acceleration;
_acceleration = _rbLocalAcceleration;
_localAcceleration = Vector3.zero;
if (target != null)
{
_localAcceleration = target.TransformDirection(_acceleration);
}
if (!_isFirstFrame)
{
_newPositionOffset = Vector3.SmoothDamp(_prevAcceleration, _localAcceleration,
ref _accelerationChangeVelocity,
shakeSmoothing) / 100f * shakeIntensity;
_newPositionOffset = Vector3.Scale(_newPositionOffset, shakeAxisIntensity);
_positionOffset = Vector3.SmoothDamp(_positionOffset, _newPositionOffset, ref _offsetChangeVelocity,
shakeSmoothing);
_positionOffset = Vector3.ClampMagnitude(_positionOffset, shakeMaxOffset);
transform.position -= target.TransformDirection(_positionOffset) *
Mathf.Clamp01(_rbSpeed * 0.5f);
}
_isFirstFrame = false;
}
public void OnDrawGizmosSelected()
{
Gizmos.DrawWireSphere(_lookAtPosition, 0.1f);
Gizmos.DrawRay(_lookAtPosition, _lookDir);
}
private void OnEnable()
{
_isFirstFrame = true;
}
public float ClampAngle(float angle, float min, float max)
{
while (angle < -360 || angle > 360)
{
if (angle < -360)
{
angle += 360;
}
if (angle > 360)
{
angle -= 360;
}
}
return Mathf.Clamp(angle, min, max);
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.Cameras
{
[CustomEditor(typeof(CameraMouseDrag))]
[CanEditMultipleObjects]
public class CameraMouseDragEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
CameraMouseDrag.POVType povType = ((CameraMouseDrag)target).povType;
drawer.Field("target");
drawer.BeginSubsection("POV");
drawer.Field("povType");
drawer.EndSubsection();
if (povType == CameraMouseDrag.POVType.ThirdPerson)
{
drawer.BeginSubsection("Distance & Position");
drawer.Field("distance");
drawer.Field("minDistance");
drawer.Field("maxDistance");
drawer.Field("zoomSensitivity");
drawer.Field("targetPositionOffset");
drawer.EndSubsection();
}
drawer.BeginSubsection("Rotation");
drawer.Field("allowRotation");
drawer.Field("followTargetPitchAndYaw");
drawer.Field("followTargetRoll");
drawer.Field("rotationSensitivity");
drawer.Field("verticalMaxAngle");
drawer.Field("verticalMinAngle");
drawer.Field("initXRotation");
drawer.Field("initYRotation");
drawer.Field("rotationSmoothing");
drawer.EndSubsection();
drawer.BeginSubsection("Panning");
if (drawer.Field("allowPanning").boolValue)
{
drawer.Field("panningSensitivity");
}
drawer.EndSubsection();
drawer.BeginSubsection("Camera Shake");
drawer.Info("Movement introduced as a result of acceleration.");
if (drawer.Field("useShake").boolValue)
{
drawer.Field("shakeMaxOffset");
drawer.Field("shakeIntensity");
drawer.Field("shakeSmoothing");
drawer.Field("shakeAxisIntensity");
}
drawer.EndSubsection();
drawer.EndEditor(this);
return true;
}
public override bool UseDefaultMargins()
{
return false;
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: aed8c99d9552ef84689c55f411f2f0a8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/Camera/CameraMouseDrag.cs
uploadId: 628762

View File

@ -0,0 +1,58 @@
using UnityEngine;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.Cameras
{
public class VehicleCamera : MonoBehaviour
{
/// <summary>
/// Transform that this script is targeting. Can be left empty if head movement is not being used.
/// </summary>
[Tooltip(
"Transform that this script is targeting. Can be left empty if head movement is not being used.")]
public Transform target;
public virtual void Awake()
{
if (target == null)
{
target = GetComponentInParent<Rigidbody>()?.transform;
}
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.Cameras
{
[CustomEditor(typeof(VehicleCamera))]
[CanEditMultipleObjects]
public class VehicleCameraEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
drawer.EndEditor(this);
return true;
}
public override bool UseDefaultMargins()
{
return false;
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 96c571c670f315d47a72efdef0393001
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/Camera/VehicleCamera.cs
uploadId: 628762

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a01c2715f1cc472ebdd1fecad54410f3
timeCreated: 1609878006

View File

@ -0,0 +1,26 @@
using UnityEngine;
namespace NWH.Common.CoM
{
/// <summary>
/// Represents object that has mass and is a child of VariableCoM.
/// Affects rigidbody center of mass and inertia.
/// </summary>
public interface IMassAffector
{
/// <summary>
/// Returns mass of the mass affector in kilograms.
/// </summary>
float GetMass();
/// <summary>
/// Returns the center of mass of the affector in world coordinates.
/// </summary>
Vector3 GetWorldCenterOfMass();
/// <summary>
/// Returns transform of the mass affector.
/// </summary>
Transform GetTransform();
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0a3d7462a39d468281892f29f24f478e
timeCreated: 1609878311
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/CoM/IMassAffector.cs
uploadId: 628762

View File

@ -0,0 +1,52 @@
using UnityEngine;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.CoM
{
public class MassAffector : MonoBehaviour, IMassAffector
{
public float mass = 100.0f;
public float GetMass()
{
return mass;
}
public Transform GetTransform()
{
return transform;
}
public Vector3 GetWorldCenterOfMass()
{
return transform.position;
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.CoM
{
[CustomEditor(typeof(MassAffector))]
[CanEditMultipleObjects]
public class MassAffectorEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
drawer.Field("mass", true, "kg");
drawer.EndEditor(this);
return true;
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 2027acb4e3713ee4abb61754e4f34f2a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 0f529537840cdb34e9b744ffe2fec59b, type: 3}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/CoM/MassAffector.cs
uploadId: 628762

View File

@ -0,0 +1,463 @@
using System;
using UnityEngine;
using NWH.Common.Utility;
#if UNITY_EDITOR
using NWH.NUI;
using UnityEditor;
#endif
namespace NWH.Common.CoM
{
/// <summary>
/// Script used for adjusting Rigidbody properties at runtime based on
/// attached IMassAffectors. This allows for vehicle center of mass and inertia changes
/// as the fuel is depleted, cargo is added, etc. without the need of physically parenting Rigidbodies to the object.
/// </summary>
[DisallowMultipleComponent]
[DefaultExecutionOrder(-1000)]
[RequireComponent(typeof(Rigidbody))]
public class VariableCenterOfMass : MonoBehaviour
{
/// <summary>
/// Should the default Rigidbody mass be used?
/// </summary>
public bool useDefaultMass = true;
/// <summary>
/// If true, the script will search for any IMassAffectors attached as a child (recursively)
/// of this script and use them when calculating mass, center of mass and inertia tensor.
/// </summary>
public bool useMassAffectors = false;
/// <summary>
/// Base mass of the object, without IMassAffectors.
/// </summary>
[UnityEngine.Tooltip("Base mass of the object, without IMassAffectors.")]
public float baseMass = 1400f;
/// <summary>
/// Total mass of the object with masses of IMassAffectors counted in.
/// </summary>
[UnityEngine.Tooltip("Total mass of the object with masses of IMassAffectors counted in.")]
public float combinedMass = 1400f;
/// <summary>
/// Object dimensions in [m]. X - width, Y - height, Z - length.
/// It is important to set the correct dimensions or otherwise inertia might be calculated incorrectly.
/// </summary>
[UnityEngine.Tooltip("Object dimensions in [m]. X - width, Y - height, Z - length.\r\nIt is important to set the correct dimensions or otherwise inertia might be calculated incorrectly.")]
public Vector3 dimensions = new Vector3(1.8f, 1.6f, 4.6f);
/// <summary>
/// When enabled the Unity-calculated center of mass will be used.
/// </summary>
[Tooltip(
"When enabled the Unity-calculated center of mass will be used.")]
public bool useDefaultCenterOfMass = true;
/// <summary>
/// Center of mass of the object. Auto calculated. To adjust center of mass use centerOfMassOffset.
/// </summary>
[Tooltip(
"Center of mass of the rigidbody. Needs to be readjusted when new colliders are added.")]
public Vector3 centerOfMass = Vector3.zero;
/// <summary>
/// Combined center of mass, including the Rigidbody and any IMassAffectors.
/// </summary>
public Vector3 combinedCenterOfMass = Vector3.zero;
/// <summary>
/// When true inertia settings will be ignored and default Rigidbody inertia tensor will be used.
/// </summary>
[UnityEngine.Tooltip("When true inertia settings will be ignored and default Rigidbody inertia tensor will be used.")]
public bool useDefaultInertia = true;
/// <summary>
/// Vector by which the inertia tensor of the rigidbody will be scaled on Start().
/// Due to the uniform density of the rigidbodies, versus the very non-uniform density of a vehicle, inertia can feel
/// off.
/// Use this to adjust inertia tensor values.
/// </summary>
[Tooltip(
" Vector by which the inertia tensor of the rigidbody will be scaled on Start().\r\n Due to the unform density of the rigidbodies, versus the very non-uniform density of a vehicle, inertia can feel\r\n off.\r\n Use this to adjust inertia tensor values.")]
public Vector3 inertiaTensor = new Vector3(1000f, 1000f, 1000f);
/// <summary>
/// Total inertia tensor. Includes Rigidbody and IMassAffectors.
/// </summary>
public Vector3 combinedInertiaTensor;
/// <summary>
/// Objects attached or part of the vehicle affecting its center of mass and inertia.
/// </summary>
[NonSerialized] public IMassAffector[] affectors;
private Rigidbody _rigidbody;
private void Awake()
{
Initialize();
}
private void Initialize()
{
_rigidbody = GetComponent<Rigidbody>();
if (useDefaultMass) baseMass = _rigidbody.mass;
if (useDefaultInertia) inertiaTensor = _rigidbody.inertiaTensor;
if (useDefaultCenterOfMass) centerOfMass = _rigidbody.centerOfMass;
affectors = GetMassAffectors();
UpdateAllProperties();
}
private void OnValidate()
{
_rigidbody = GetComponent<Rigidbody>();
affectors = GetMassAffectors();
}
private void FixedUpdate()
{
UpdateAllProperties();
}
public void UpdateAllProperties()
{
if (!useDefaultMass) UpdateMass();
if (!useDefaultCenterOfMass) UpdateCoM();
if (!useDefaultInertia) UpdateInertia();
}
public void UpdateMass()
{
if (useMassAffectors)
{
combinedMass = CalculateMass();
}
else
{
combinedMass = baseMass;
}
_rigidbody.mass = combinedMass;
}
/// <summary>
/// Calculates and applies the CoM to the Rigidbody.
/// </summary>
public void UpdateCoM()
{
if (useMassAffectors)
{
combinedCenterOfMass = centerOfMass + CalculateRelativeCenterOfMassOffset();
}
else
{
combinedCenterOfMass = centerOfMass;
}
_rigidbody.centerOfMass = combinedCenterOfMass;
}
/// <summary>
/// Calculates and applies the inertia tensor to the Rigidbody.
/// </summary>
public void UpdateInertia(bool applyUnchanged = false)
{
if (useMassAffectors)
{
combinedInertiaTensor = inertiaTensor + CalculateInertiaTensorOffset(dimensions);
}
else
{
combinedInertiaTensor = inertiaTensor;
}
// Inertia tensor of constrained rigidbody will be 0 which causes errors when trying to set.
if (combinedInertiaTensor.x > 0 && combinedInertiaTensor.y > 0 && combinedInertiaTensor.z > 0)
{
_rigidbody.inertiaTensor = combinedInertiaTensor;
_rigidbody.inertiaTensorRotation = Quaternion.identity;
}
}
/// <summary>
/// Updates list of IMassAffectors attached to this object.
/// Call after IMassAffector has been added or removed from the object.
/// </summary>
public IMassAffector[] GetMassAffectors()
{
return GetComponentsInChildren<IMassAffector>(true);
}
/// <summary>
/// Calculates the mass of the Rigidbody and attached mass affectors.
/// </summary>
public float CalculateMass()
{
float massSum = baseMass;
foreach (IMassAffector affector in affectors)
{
if (affector.GetTransform().gameObject.activeInHierarchy)
{
massSum += affector.GetMass();
}
}
return massSum;
}
/// <summary>
/// Calculates the center of mass of the Rigidbody and attached mass affectors.
/// </summary>
public Vector3 CalculateRelativeCenterOfMassOffset()
{
Vector3 offset = Vector3.zero;
if (useMassAffectors)
{
float massSum = CalculateMass();
for (int i = 0; i < affectors.Length; i++)
{
offset += transform.InverseTransformPoint(affectors[i].GetWorldCenterOfMass()) * (affectors[i].GetMass() / massSum);
}
}
return offset;
}
/// <summary>
/// Calculates the inertia tensor of the Rigidbody and attached mass affectors.
/// </summary>
public Vector3 CalculateInertiaTensorOffset(Vector3 dimensions)
{
Vector3 affectorInertiaSum = Vector3.zero;
for (int i = 0; i < affectors.Length; i++) // Skip first (this)
{
IMassAffector affector = affectors[i];
if (affector.GetTransform().gameObject.activeInHierarchy)
{
float mass = affector.GetMass();
Vector3 affectorLocalPos = transform.InverseTransformPoint(affector.GetTransform().position);
float x = Vector3.ProjectOnPlane(affectorLocalPos, Vector3.right).magnitude * mass;
float y = Vector3.ProjectOnPlane(affectorLocalPos, Vector3.up).magnitude * mass;
float z = Vector3.ProjectOnPlane(affectorLocalPos, Vector3.forward).magnitude * mass;
affectorInertiaSum.x += x * x;
affectorInertiaSum.y += y * y;
affectorInertiaSum.z += z * z;
}
}
return affectorInertiaSum;
}
public static Vector3 CalculateInertia(Vector3 dimensions, float mass)
{
float c = (1f / 12f) * mass;
float Ix = c * (dimensions.y * dimensions.y + dimensions.z * dimensions.z);
float Iy = c * (dimensions.x * dimensions.x + dimensions.z * dimensions.z);
float Iz = c * (dimensions.y * dimensions.y + dimensions.x * dimensions.x);
return new Vector3(Ix, Iy, Iz);
}
private void OnDrawGizmos()
{
#if UNITY_EDITOR
if (!Application.isPlaying)
{
Initialize();
UpdateAllProperties();
}
// CoM
Gizmos.color = Color.yellow;
Vector3 worldCoM = transform.TransformPoint(centerOfMass);
Gizmos.DrawSphere(worldCoM, 0.03f);
Handles.Label(worldCoM, "CoM");
// Mass Affectors
Gizmos.color = Color.cyan;
if (affectors == null) return;
for (int i = 0; i < affectors.Length; i++)
{
if (affectors[i] == null) continue;
Gizmos.DrawSphere(affectors[i].GetTransform().position, 0.05f);
}
// Dimensions
if (!useDefaultInertia)
{
Transform t = transform;
Vector3 fwdOffset = t.forward * dimensions.z * 0.5f;
Vector3 rightOffset = t.right * dimensions.x * 0.5f;
Vector3 upOffset = t.up * dimensions.y * 0.5f;
Gizmos.color = Color.blue;
Gizmos.DrawLine(worldCoM + fwdOffset, worldCoM - fwdOffset);
Gizmos.color = Color.red;
Gizmos.DrawLine(worldCoM + rightOffset, worldCoM - rightOffset);
Gizmos.color = Color.green;
Gizmos.DrawLine(worldCoM + upOffset, worldCoM - upOffset);
}
#endif
}
private void Reset()
{
_rigidbody = GetComponent<Rigidbody>();
Bounds bounds = gameObject.FindBoundsIncludeChildren();
dimensions = new Vector3(bounds.extents.x * 2f, bounds.extents.y * 2f, bounds.extents.z * 2f);
Debug.Log($"Detected dimensions of {name} as {dimensions} [m]. If incorrect, adjust manually.");
if (dimensions.x < 0.001f) dimensions.x = 0.001f;
if (dimensions.y < 0.001f) dimensions.y = 0.001f;
if (dimensions.z < 0.001f) dimensions.z = 0.001f;
centerOfMass = _rigidbody.centerOfMass;
baseMass = _rigidbody.mass;
combinedMass = baseMass;
inertiaTensor = _rigidbody.inertiaTensor;
}
public Vector3 GetWorldCenterOfMass()
{
return transform.TransformPoint(combinedCenterOfMass);
}
}
}
#if UNITY_EDITOR
namespace NWH.Common.CoM
{
[CustomEditor(typeof(VariableCenterOfMass))]
public class VariableCenterOfMassEditor : NUIEditor
{
public override bool OnInspectorNUI()
{
if (!base.OnInspectorNUI())
{
return false;
}
VariableCenterOfMass vcom = (VariableCenterOfMass)target;
if (vcom == null)
{
drawer.EndEditor();
return false;
}
Rigidbody parentRigidbody = vcom.gameObject.GetComponentInParent<Rigidbody>(true);
if (parentRigidbody == null)
{
drawer.EndEditor();
return false;
}
if (!Application.isPlaying)
{
foreach (var o in targets)
{
var t = (VariableCenterOfMass)o;
t.affectors = t.GetMassAffectors();
t.UpdateAllProperties();
}
}
drawer.BeginSubsection("Mass Affectors");
if (drawer.Field("useMassAffectors").boolValue)
{
if (vcom.affectors != null)
{
if (!Application.isPlaying)
{
vcom.affectors = vcom.GetMassAffectors();
}
for (int i = 0; i < vcom.affectors.Length; i++)
{
IMassAffector affector = vcom.affectors[i];
if (affector == null || affector.GetTransform() == null) continue;
string positionStr = i == 0 ? "(this)" : $"Position = {affector.GetTransform().localPosition}";
drawer.Label($"{affector.GetTransform().name} | Mass = {affector.GetMass()} | {positionStr}");
}
}
}
drawer.EndSubsection();
// MASS
drawer.BeginSubsection("Mass");
if (!drawer.Field("useDefaultMass").boolValue)
{
float newMass = drawer.Field("baseMass", true, "kg").floatValue;
parentRigidbody.mass = newMass;
if (vcom.useMassAffectors)
{
drawer.Field("combinedMass", false, "kg");
}
}
drawer.EndSubsection();
// CENTER OF MASS
drawer.BeginSubsection("Center Of Mass");
if (!drawer.Field("useDefaultCenterOfMass").boolValue)
{
drawer.Field("centerOfMass", true);
if (vcom.useMassAffectors)
{
drawer.Field("combinedCenterOfMass", false);
}
}
drawer.EndSubsection();
// INERTIA
drawer.BeginSubsection("Inertia");
if (!drawer.Field("useDefaultInertia").boolValue)
{
drawer.Field("inertiaTensor", true, "kg m2");
if (vcom.useMassAffectors)
{
drawer.Field("combinedInertiaTensor", false, "kg m2");
}
drawer.BeginSubsection("Calculate Inertia From Dimensions");
{
drawer.Field("dimensions", true, "m");
if (drawer.Button("Calculate"))
{
vcom.inertiaTensor = VariableCenterOfMass.CalculateInertia(vcom.dimensions, parentRigidbody.mass);
EditorUtility.SetDirty(vcom);
}
}
}
drawer.EndSubsection();
drawer.EndEditor(this);
return true;
}
}
}
#endif

View File

@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 818177d2061f4558b66bee63b4cc78f6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 6fde4d0f34470624fbed94f695585e63, type: 3}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 147990
packageName: Dynamic Water Physics 2
packageVersion: 2.21
assetPath: Assets/NWH/Common/Scripts/CoM/VariableCenterOfMass.cs
uploadId: 628762

Some files were not shown because too many files have changed in this diff Show More