작업 조건 분석 기능 개발
8
Assets/Plugins/RenderHeads/AVProMovieCapture.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15dfaaef31058bf4db2a67395455bd28
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Assets/Plugins/RenderHeads/AVProMovieCapture/Demos.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94f9e072b7bf8b4419ce9835aa43a5c5
|
||||
folderAsset: yes
|
||||
timeCreated: 1563637382
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "RenderHeads.AVProMovieCapture.Demos",
|
||||
"references": [ "RenderHeads.AVProMovieCapture.Runtime" ],
|
||||
"includePlatforms": [ ]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8426b3d3473738a489355e04a0882d0b
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76c2bb32661761d40b39ce23b8dbb860
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,22 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 764908f8332f02340b72e3010f4a3a2e
|
||||
timeCreated: 1606868176
|
||||
licenseType: Store
|
||||
AudioImporter:
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 0
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 0
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bec3644980842774db12d11690b0d916
|
||||
AudioImporter:
|
||||
serializedVersion: 4
|
||||
format: -1
|
||||
quality: .5
|
||||
stream: 1
|
||||
3D: 0
|
||||
forceToMono: 0
|
||||
useHardware: 0
|
||||
loopable: 0
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 1
|
||||
guid: 1ed2bddd186bb264eb42d8ac765accd4
|
||||
AudioImporter:
|
||||
importerVersion: 4
|
||||
format: -1
|
||||
quality: -1
|
||||
3d: 0
|
||||
forceToMono: 0
|
||||
stream: 1
|
||||
useHardware: 0
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc925b9c371f92e40bf7355ee0dc2536
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 1
|
||||
guid: eb821627fb1a0c044a6fd7a6dabe3147
|
||||
@@ -0,0 +1,13 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1102003ee10456942bffb2b369d6a7b8
|
||||
TrueTypeFontImporter:
|
||||
serializedVersion: 2
|
||||
fontSize: 16
|
||||
fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
forceTextureCase: -2
|
||||
renderMode: 0
|
||||
style: 0
|
||||
includeFontData: 1
|
||||
use2xBehaviour: 0
|
||||
fontNames: []
|
||||
customCharacters:
|
||||
BIN
Assets/Plugins/RenderHeads/AVProMovieCapture/Demos/GUI/black.png
Normal file
|
After Width: | Height: | Size: 167 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 41dc463a61e06694b85593cb70e17848
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
BIN
Assets/Plugins/RenderHeads/AVProMovieCapture/Demos/GUI/gray.png
Normal file
|
After Width: | Height: | Size: 163 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89756d2e84d7799499b64043123ddf38
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
After Width: | Height: | Size: 163 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5fa7bcd58e1876e41952c9349da60879
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
After Width: | Height: | Size: 163 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6b9f1741e3bb6241aab55422ae1f133
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
After Width: | Height: | Size: 163 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ccce2d09cdddb2d4da068267090c1548
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
After Width: | Height: | Size: 167 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7fbbedb31432e4d408b2e3fbd0dbd862
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
After Width: | Height: | Size: 168 B |
@@ -0,0 +1,47 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e8b5fb4ca0fdd2c4eadc7cbe065543a4
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
linearTexture: 1
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: .25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 32
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: .5, y: .5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 1
|
||||
textureType: 2
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
sprites: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 206f513b60f950c4793035333d2f95d5
|
||||
folderAsset: yes
|
||||
timeCreated: 1583523317
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,76 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: DefaultDemo
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
|
||||
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}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 1
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 0
|
||||
- _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}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f663b5cc3e742024b902055797e3957c
|
||||
timeCreated: 1583523326
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e35a0c5b2541b24983f361278c74f91
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,111 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &102934
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 402934}
|
||||
- component: {fileID: 3302934}
|
||||
- component: {fileID: 6502934}
|
||||
- component: {fileID: 2302934}
|
||||
- component: {fileID: 5492826}
|
||||
m_Layer: 0
|
||||
m_Name: Cube
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &402934
|
||||
Transform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 102934}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
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!23 &2302934
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 102934}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: f663b5cc3e742024b902055797e3957c, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!33 &3302934
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 102934}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!54 &5492826
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 102934}
|
||||
serializedVersion: 2
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 1
|
||||
--- !u!65 &6502934
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 102934}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &100100000
|
||||
Prefab:
|
||||
m_ObjectHideFlags: 1
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications: []
|
||||
m_RemovedComponents: []
|
||||
m_ParentPrefab: {fileID: 0}
|
||||
m_RootGameObject: {fileID: 102934}
|
||||
m_IsPrefabParent: 1
|
||||
@@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08f87e0910df635498ae10bedcb85aab
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2efc957cf89b49b41a927320a690604b
|
||||
folderAsset: yes
|
||||
timeCreated: 1563636592
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 1
|
||||
guid: aac421df044c8404b9bd40c84487a589
|
||||
@@ -0,0 +1,364 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 8
|
||||
m_Fog: 1
|
||||
m_FogColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_FogMode: 1
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 30
|
||||
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 3
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_TemporalCoherenceThreshold: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 8
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 1
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 1
|
||||
m_BakeBackend: 0
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 500
|
||||
m_PVRBounces: 2
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringMode: 0
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_ShadowMaskMode: 2
|
||||
--- !u!1 &11
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 18}
|
||||
- component: {fileID: 20}
|
||||
- component: {fileID: 37}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &18
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||
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!20 &20
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.01
|
||||
far clip plane: 300
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 100
|
||||
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: 0
|
||||
m_AllowMSAA: 1
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 0
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
m_StereoMirrorMode: 0
|
||||
--- !u!81 &37
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_Enabled: 1
|
||||
--- !u!196 &44
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666666
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &1130807521
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 1130807525}
|
||||
- component: {fileID: 1130807524}
|
||||
- component: {fileID: 1130807523}
|
||||
- component: {fileID: 1130807522}
|
||||
m_Layer: 0
|
||||
m_Name: TextureCapture
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1130807522
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1130807521}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: de5a7a2f274da2340a2de24a1fffee45, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_encoderHintsWindows:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsMacOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsIOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_captureKey: 0
|
||||
_isRealTime: 0
|
||||
_persistAcrossSceneLoads: 0
|
||||
_startTrigger: 0
|
||||
_startDelay: 0
|
||||
_startDelaySeconds: 0
|
||||
_stopMode: 0
|
||||
_stopFrames: 0
|
||||
_stopSeconds: 0
|
||||
_videoCodecPriorityWindows:
|
||||
- H264
|
||||
- HEVC
|
||||
- Lagarith Lossless Codec
|
||||
- Uncompressed
|
||||
- x264vfw - H.264/MPEG-4 AVC codec
|
||||
- Xvid MPEG-4 Codec
|
||||
_videoCodecPriorityMacOS:
|
||||
- H264
|
||||
- HEVC
|
||||
- Apple ProRes 422
|
||||
- Apple ProRes 4444
|
||||
_audioCodecPriorityWindows:
|
||||
- AAC
|
||||
- Uncompressed
|
||||
_audioCodecPriorityMacOS:
|
||||
- AAC
|
||||
- FLAC
|
||||
- Apple Lossless
|
||||
- Linear PCM
|
||||
- Uncompresssed
|
||||
_frameRate: 30
|
||||
_timelapseScale: 1
|
||||
_downScale: 1
|
||||
_maxVideoSize: {x: 0, y: 0}
|
||||
_forceVideoCodecIndexWindows: -1
|
||||
_forceVideoCodecIndexMacOS: 0
|
||||
_forceVideoCodecIndexIOS: 0
|
||||
_forceAudioCodecIndexWindows: -1
|
||||
_forceAudioCodecIndexMacOS: 0
|
||||
_forceAudioCodecIndexIOS: 0
|
||||
_flipVertically: 0
|
||||
_forceGpuFlush: 0
|
||||
_useWaitForEndOfFrame: 1
|
||||
_logCaptureStartStop: 1
|
||||
_audioCaptureSource: 1
|
||||
_unityAudioCapture: {fileID: 0}
|
||||
_forceAudioInputDeviceIndex: 0
|
||||
_outputTarget: 0
|
||||
_outputFolderType: 0
|
||||
_outputFolderPath: Captures
|
||||
_filenamePrefix: TextureCapture
|
||||
_appendFilenameTimestamp: 1
|
||||
_allowManualFileExtension: 0
|
||||
_filenameExtension: mp4
|
||||
_namedPipePath: \\.\pipe\test_pipe
|
||||
_imageSequenceStartFrame: 0
|
||||
_imageSequenceZeroDigits: 6
|
||||
_imageSequenceFormatWindows: 0
|
||||
_imageSequenceFormatMacOS: 0
|
||||
_imageSequenceFormatIOS: 0
|
||||
_renderResolution: 14
|
||||
_renderSize: {x: 1, y: 1}
|
||||
_renderAntiAliasing: -1
|
||||
_useMotionBlur: 0
|
||||
_motionBlurSamples: 0
|
||||
_motionBlurCameras: []
|
||||
_motionBlur: {fileID: 0}
|
||||
_allowVSyncDisable: 1
|
||||
_supportTextureRecreate: 0
|
||||
_minimumDiskSpaceMB: -1
|
||||
_manualUpdate: 0
|
||||
--- !u!114 &1130807523
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1130807521}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1f519d13df72fce439c800f34395deb7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_shader: {fileID: 4800000, guid: f3d2361de25fd894da4e336b857ff62d, type: 3}
|
||||
_textureWidth: 1024
|
||||
_textureHeight: 1024
|
||||
_movieCapture: {fileID: 1130807522}
|
||||
--- !u!114 &1130807524
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1130807521}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7ca3e27221be35d41a4ff608f4ef327e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_movieCapture: {fileID: 1130807522}
|
||||
_showUI: 1
|
||||
_whenRecordingAutoHideUI: 0
|
||||
_guiSkin: {fileID: 11400000, guid: eb821627fb1a0c044a6fd7a6dabe3147, type: 2}
|
||||
--- !u!4 &1130807525
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1130807521}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c41bfde9dbb0a3449f96fdffb67a8e2
|
||||
@@ -0,0 +1,368 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 8
|
||||
m_Fog: 1
|
||||
m_FogColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_FogMode: 1
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 30
|
||||
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 3
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_TemporalCoherenceThreshold: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 8
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 1
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 1
|
||||
m_BakeBackend: 0
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 500
|
||||
m_PVRBounces: 2
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringMode: 0
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_ShadowMaskMode: 2
|
||||
--- !u!1 &11
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 18}
|
||||
- component: {fileID: 20}
|
||||
- component: {fileID: 37}
|
||||
- component: {fileID: 12}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &12
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 98a052fe19e52c048865e758e854f078, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_skin: {fileID: 11400000, guid: eb821627fb1a0c044a6fd7a6dabe3147, type: 2}
|
||||
_prefab: {fileID: 1774798094}
|
||||
_webcamResolutionWidth: 640
|
||||
_webcamResolutionHeight: 480
|
||||
_webcamFrameRate: 30
|
||||
--- !u!4 &18
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||
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!20 &20
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.08088237, g: 0.08088237, b: 0.08088237, a: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.01
|
||||
far clip plane: 300
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 100
|
||||
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: 0
|
||||
m_AllowMSAA: 1
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 0
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
m_StereoMirrorMode: 0
|
||||
--- !u!81 &37
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 11}
|
||||
m_Enabled: 1
|
||||
--- !u!196 &44
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666666
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &1774798094
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 1774798102}
|
||||
- component: {fileID: 1774798097}
|
||||
- component: {fileID: 1774798095}
|
||||
m_Layer: 0
|
||||
m_Name: WebcamCapturePrefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1774798095
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1774798094}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea41b0330d3eea243b45fd4355c3080c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_encoderHintsWindows:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsMacOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsIOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_captureKey: 0
|
||||
_isRealTime: 1
|
||||
_persistAcrossSceneLoads: 0
|
||||
_startTrigger: 0
|
||||
_startDelay: 0
|
||||
_startDelaySeconds: 0
|
||||
_stopMode: 0
|
||||
_stopFrames: 0
|
||||
_stopSeconds: 0
|
||||
_videoCodecPriorityWindows:
|
||||
- H264
|
||||
- HEVC
|
||||
- Lagarith Lossless Codec
|
||||
- Uncompressed
|
||||
- x264vfw - H.264/MPEG-4 AVC codec
|
||||
- Xvid MPEG-4 Codec
|
||||
_videoCodecPriorityMacOS:
|
||||
- H264
|
||||
- HEVC
|
||||
- Apple ProRes 422
|
||||
- Apple ProRes 4444
|
||||
_audioCodecPriorityWindows:
|
||||
- AAC
|
||||
- Uncompressed
|
||||
_audioCodecPriorityMacOS:
|
||||
- AAC
|
||||
- FLAC
|
||||
- Apple Lossless
|
||||
- Linear PCM
|
||||
- Uncompresssed
|
||||
_frameRate: 30
|
||||
_timelapseScale: 1
|
||||
_frameUpdateMode: 0
|
||||
_downScale: 1
|
||||
_maxVideoSize: {x: 0, y: 0}
|
||||
_forceVideoCodecIndexWindows: -1
|
||||
_forceVideoCodecIndexMacOS: 0
|
||||
_forceVideoCodecIndexIOS: 0
|
||||
_forceAudioCodecIndexWindows: -1
|
||||
_forceAudioCodecIndexMacOS: 0
|
||||
_forceAudioCodecIndexIOS: 0
|
||||
_flipVertically: 0
|
||||
_forceGpuFlush: 0
|
||||
_useWaitForEndOfFrame: 1
|
||||
_logCaptureStartStop: 1
|
||||
_audioCaptureSource: 0
|
||||
_unityAudioCapture: {fileID: 0}
|
||||
_forceAudioInputDeviceIndex: 0
|
||||
_manualAudioSampleRate: 48000
|
||||
_manualAudioChannelCount: 2
|
||||
_outputTarget: 0
|
||||
_outputFolderType: 0
|
||||
_outputFolderPath: Captures
|
||||
_filenamePrefix: Webcam
|
||||
_appendFilenameTimestamp: 1
|
||||
_allowManualFileExtension: 0
|
||||
_filenameExtension: mp4
|
||||
_namedPipePath: \\.\pipe\test_pipe
|
||||
_imageSequenceStartFrame: 0
|
||||
_imageSequenceZeroDigits: 6
|
||||
_imageSequenceFormatWindows: 0
|
||||
_imageSequenceFormatMacOS: 0
|
||||
_imageSequenceFormatIOS: 0
|
||||
_renderResolution: 18
|
||||
_renderSize: {x: 1, y: 1}
|
||||
_renderAntiAliasing: -1
|
||||
_useMotionBlur: 0
|
||||
_motionBlurSamples: 16
|
||||
_motionBlurCameras: []
|
||||
_motionBlur: {fileID: 0}
|
||||
_allowVSyncDisable: 1
|
||||
_supportTextureRecreate: 0
|
||||
_minimumDiskSpaceMB: -1
|
||||
_manualUpdate: 0
|
||||
--- !u!114 &1774798097
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1774798094}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7ca3e27221be35d41a4ff608f4ef327e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_movieCapture: {fileID: 1774798095}
|
||||
_showUI: 0
|
||||
_whenRecordingAutoHideUI: 0
|
||||
_guiSkin: {fileID: 11400000, guid: eb821627fb1a0c044a6fd7a6dabe3147, type: 2}
|
||||
--- !u!4 &1774798102
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1774798094}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ba0f3c85855c684db1ca2bfaa26058a
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 092608d1cce5b7a4c961385358838689
|
||||
@@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12b616342e078604a85b24def8314313
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a59b6804fb7f20947abe5bbece9bb4f1
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9796adb67791004f8de331385c2ebe5
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,798 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 8
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_GIWorkflowMode: 0
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_TemporalCoherenceThreshold: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 1
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 8
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 3
|
||||
m_BakeBackend: 0
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 500
|
||||
m_PVRBounces: 2
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_ShadowMaskMode: 2
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &177080796
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 177080798}
|
||||
- component: {fileID: 177080797}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &177080797
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 177080796}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 8
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 4
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!4 &177080798
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 177080796}
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1 &648885771
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 648885772}
|
||||
- component: {fileID: 648885775}
|
||||
- component: {fileID: 648885774}
|
||||
- component: {fileID: 648885773}
|
||||
m_Layer: 0
|
||||
m_Name: Capsule
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &648885772
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 648885771}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 791625166}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &648885773
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 648885771}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_PreserveUVs: 1
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!136 &648885774
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 648885771}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
m_Radius: 0.5
|
||||
m_Height: 2
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &648885775
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 648885771}
|
||||
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &791625161
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 791625166}
|
||||
- component: {fileID: 791625165}
|
||||
- component: {fileID: 791625162}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &791625162
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 791625161}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &791625165
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 791625161}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.1
|
||||
far clip plane: 100
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
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: 0
|
||||
m_AllowMSAA: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 0
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
m_StereoMirrorMode: 0
|
||||
--- !u!4 &791625166
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 791625161}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 648885772}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &935719015
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 935719017}
|
||||
- component: {fileID: 935719016}
|
||||
m_Layer: 0
|
||||
m_Name: Demo
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &935719016
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 935719015}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d8148657fef7dab4e8414216aaa44cf8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_audioObjects:
|
||||
- {fileID: 1884010177}
|
||||
_audioSources: []
|
||||
--- !u!4 &935719017
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 935719015}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &993218520
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 993218522}
|
||||
- component: {fileID: 993218521}
|
||||
m_Layer: 0
|
||||
m_Name: Camera-PIP
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!20 &993218521
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 993218520}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0.2
|
||||
height: 0.2
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: 5
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 0
|
||||
m_AllowMSAA: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 0
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
m_StereoMirrorMode: 0
|
||||
--- !u!4 &993218522
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 993218520}
|
||||
m_LocalRotation: {x: 0.1993598, y: -0, z: -0, w: 0.9799264}
|
||||
m_LocalPosition: {x: 0, y: 1.28, z: -2.92}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 22.999, y: 0, z: 0}
|
||||
--- !u!1 &1140585883
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 1140585885}
|
||||
- component: {fileID: 1140585884}
|
||||
- component: {fileID: 1140585887}
|
||||
- component: {fileID: 1140585886}
|
||||
m_Layer: 0
|
||||
m_Name: Capture
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1140585884
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1140585883}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2f452da2383e6e24991a212542347f4b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_encoderHintsWindows:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 0
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsMacOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_encoderHintsIOS:
|
||||
videoHints:
|
||||
averageBitrate: 0
|
||||
maximumBitrate: 0
|
||||
quality: 1
|
||||
keyframeInterval: 0
|
||||
allowFastStartStreamingPostProcess: 1
|
||||
supportTransparency: 0
|
||||
useHardwareEncoding: 1
|
||||
imageHints:
|
||||
quality: 0.85
|
||||
supportTransparency: 0
|
||||
_captureKey: 0
|
||||
_isRealTime: 1
|
||||
_persistAcrossSceneLoads: 0
|
||||
_startTrigger: 1
|
||||
_startDelay: 0
|
||||
_startDelaySeconds: 0
|
||||
_stopMode: 3
|
||||
_stopFrames: 0
|
||||
_stopSeconds: 12
|
||||
_videoCodecPriorityWindows:
|
||||
- HEVC
|
||||
- H264
|
||||
- Lagarith Lossless Codec
|
||||
- Uncompressed
|
||||
- x264vfw - H.264/MPEG-4 AVC codec
|
||||
- Xvid MPEG-4 Codec
|
||||
_videoCodecPriorityMacOS:
|
||||
- H264
|
||||
- HEVC
|
||||
- Apple ProRes 422
|
||||
- Apple ProRes 4444
|
||||
_audioCodecPriorityWindows:
|
||||
- AAC
|
||||
- Uncompressed
|
||||
_audioCodecPriorityMacOS:
|
||||
- AAC
|
||||
- FLAC
|
||||
- Apple Lossless
|
||||
- Linear PCM
|
||||
- Uncompresssed
|
||||
_frameRate: 30
|
||||
_timelapseScale: 1
|
||||
_frameUpdateMode: 0
|
||||
_downScale: 1
|
||||
_maxVideoSize: {x: 0, y: 0}
|
||||
_forceVideoCodecIndexWindows: -1
|
||||
_forceVideoCodecIndexMacOS: 0
|
||||
_forceVideoCodecIndexIOS: 0
|
||||
_forceAudioCodecIndexWindows: -1
|
||||
_forceAudioCodecIndexMacOS: 0
|
||||
_forceAudioCodecIndexIOS: 0
|
||||
_flipVertically: 0
|
||||
_forceGpuFlush: 0
|
||||
_useWaitForEndOfFrame: 1
|
||||
_logCaptureStartStop: 1
|
||||
_audioCaptureSource: 0
|
||||
_unityAudioCapture: {fileID: 0}
|
||||
_forceAudioInputDeviceIndex: 0
|
||||
_manualAudioSampleRate: 48000
|
||||
_manualAudioChannelCount: 4
|
||||
_outputTarget: 0
|
||||
_outputFolderType: 0
|
||||
_outputFolderPath: Captures
|
||||
_filenamePrefix: proxy360
|
||||
_appendFilenameTimestamp: 0
|
||||
_allowManualFileExtension: 0
|
||||
_filenameExtension: mp4
|
||||
_namedPipePath: \\.\pipe\test_pipe
|
||||
_imageSequenceStartFrame: 0
|
||||
_imageSequenceZeroDigits: 6
|
||||
_imageSequenceFormatWindows: 0
|
||||
_imageSequenceFormatMacOS: 0
|
||||
_imageSequenceFormatIOS: 0
|
||||
_renderResolution: 15
|
||||
_renderSize: {x: 1, y: 1}
|
||||
_renderAntiAliasing: -1
|
||||
_useMotionBlur: 0
|
||||
_motionBlurSamples: 16
|
||||
_motionBlurCameras: []
|
||||
_motionBlur: {fileID: 0}
|
||||
_allowVSyncDisable: 1
|
||||
_supportTextureRecreate: 0
|
||||
_minimumDiskSpaceMB: -1
|
||||
_cameraSelector: {fileID: 0}
|
||||
_cubemapResolution: 256
|
||||
_cubemapDepth: 24
|
||||
_supportGUI: 0
|
||||
_supportCameraRotation: 0
|
||||
_onlyLeftRightRotation: 0
|
||||
_render180Degrees: 0
|
||||
_stereoRendering: 0
|
||||
_ipd: 0.064
|
||||
_camera: {fileID: 791625165}
|
||||
--- !u!4 &1140585885
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1140585883}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -1.243124, y: -0.125, z: 0.70754045}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1140585886
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1140585883}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d496180929275434c90b945a345cbaa2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_capture: {fileID: 1140585884}
|
||||
_order: 3
|
||||
_format: 1
|
||||
_filename: output.wav
|
||||
_bufferCount: 16
|
||||
--- !u!114 &1140585887
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1140585883}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7ca3e27221be35d41a4ff608f4ef327e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_movieCapture: {fileID: 1140585884}
|
||||
_showUI: 1
|
||||
_whenRecordingAutoHideUI: 0
|
||||
_guiSkin: {fileID: 11400000, guid: eb821627fb1a0c044a6fd7a6dabe3147, type: 2}
|
||||
--- !u!1 &1884010172
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 1884010177}
|
||||
- component: {fileID: 1884010176}
|
||||
- component: {fileID: 1884010175}
|
||||
- component: {fileID: 1884010174}
|
||||
- component: {fileID: 1884010173}
|
||||
m_Layer: 0
|
||||
m_Name: AudioObject-Insect1
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!33 &1884010173
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1884010172}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1884010174
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1884010172}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!114 &1884010175
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1884010172}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7fb5927f10eb767468d3bb55a913ed3b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_sink: {fileID: 1140585886}
|
||||
_listener: {fileID: 791625166}
|
||||
--- !u!82 &1884010176
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1884010172}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 8300000, guid: 764908f8332f02340b72e3010f4a3a2e, type: 3}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 0.398
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 2
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
- serializedVersion: 2
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 0.5
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
--- !u!4 &1884010177
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1884010172}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 2}
|
||||
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 53aebdd36b29c09468b985f749fa0d2f
|
||||
timeCreated: 1606666929
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2693fb63d67b5cd4ba2b8e89fe16bcd1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
userData:
|
||||
@@ -0,0 +1,79 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
public class AmbisonicAudioDemo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] Transform[] _audioObjects = null;
|
||||
[SerializeField] AudioSource[] _audioSources = null;
|
||||
|
||||
struct Instance
|
||||
{
|
||||
float x, y, z;
|
||||
float radius;
|
||||
}
|
||||
|
||||
private int index;
|
||||
//private List<Instance> _instances = new List<Instance>(4);
|
||||
|
||||
/*void Start()
|
||||
{
|
||||
foreach (Transform t in _audioObjects)
|
||||
{
|
||||
Instance instance = new Instance();
|
||||
instance.radius = Random.Range(0.5f, 2f);
|
||||
instance.x = Random.Range(0f, 100f);
|
||||
instance.y = Random.Range(0f, 100f);
|
||||
instance.z = Random.Range(0f, 100f);
|
||||
_instances.Add(instance);
|
||||
}
|
||||
}*/
|
||||
|
||||
void Update()
|
||||
{
|
||||
float[] samples = new float[4];
|
||||
foreach (AudioSource audio in _audioSources)
|
||||
{
|
||||
audio.GetOutputData(samples, 0);
|
||||
float sample = Mathf.Abs(samples[2]);
|
||||
sample = Mathf.Sqrt(sample);
|
||||
float scale = audio.gameObject.transform.localScale.x;
|
||||
//audio.GetSpectrumData(samples, 0, FFTWindow.Hanning);
|
||||
|
||||
scale = 0.15f + Mathf.Lerp(scale, sample, Time.deltaTime * 20f) * 0.85f;
|
||||
audio.gameObject.transform.localScale = Vector3.one * scale;
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
foreach (Transform t in _audioObjects)
|
||||
{
|
||||
//Vector3 v = axes[index % axes.Length];
|
||||
//t.RotateAround(Vector3.zero, Vector3.up, 40 * Time.deltaTime);
|
||||
//Quaternion q = Quaternion.Euler(0f, Time.timeSinceLevelLoad * 50f, 0f);
|
||||
//Matrix4x4.TRS(Vector3)
|
||||
|
||||
float time = Time.timeSinceLevelLoad + index * 1.321f;
|
||||
float tt = Mathf.PingPong(Mathf.Sin(time * 2.23f) + 1f, 2f) / 2f;
|
||||
float r = Mathf.Lerp(0.5f, 3f, tt);
|
||||
float x = Mathf.Sin(time * 1f) * r;
|
||||
float z = Mathf.Cos(time * 1.13f) * r;
|
||||
float y = Mathf.Sin(time * 1.23f) * 1f;
|
||||
|
||||
|
||||
//Vector3 v = t.position.normalized * r;
|
||||
|
||||
t.position = new Vector3(x, y, z);
|
||||
|
||||
//t.position = new Vector3(t.position.x, y, t.position.z);
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8148657fef7dab4e8414216aaa44cf8
|
||||
timeCreated: 1606667340
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,228 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
public class ScreenCaptureDemo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] AudioClip _audioBG = null;
|
||||
[SerializeField] AudioClip _audioHit = null;
|
||||
[SerializeField] float _speed = 1.0f;
|
||||
[SerializeField] CaptureBase _capture = null;
|
||||
[SerializeField] GUISkin _guiSkin = null;
|
||||
[SerializeField] bool _spinCamera = true;
|
||||
|
||||
// State
|
||||
private float _timer;
|
||||
private List<FileWritingHandler> _fileWritingHandlers = new List<FileWritingHandler>(4);
|
||||
|
||||
private IEnumerator Start()
|
||||
{
|
||||
#if UNITY_IOS
|
||||
Application.targetFrameRate = 60;
|
||||
#endif
|
||||
// Play music track
|
||||
if (_audioBG != null)
|
||||
{
|
||||
// AudioSource.PlayClipAtPoint(_audioBG, Vector3.zero);
|
||||
AudioSource source = gameObject.AddComponent<AudioSource>();
|
||||
source.clip = _audioBG;
|
||||
source.loop = true;
|
||||
source.Play();
|
||||
}
|
||||
if (_capture != null)
|
||||
{
|
||||
_capture.BeginFinalFileWritingAction += OnBeginFinalFileWriting;
|
||||
_capture.CompletedFileWritingAction += OnCompleteFinalFileWriting;
|
||||
|
||||
#if (UNITY_STANDALONE_OSX || UNITY_IOS || UNITY_ANDROID) && !UNITY_EDITOR
|
||||
CaptureBase.PhotoLibraryAccessLevel photoLibraryAccessLevel = CaptureBase.PhotoLibraryAccessLevel.AddOnly;
|
||||
|
||||
// If we're trying to write to the photo library, make sure we have permission
|
||||
if (_capture.OutputFolder == CaptureBase.OutputPath.PhotoLibrary ||
|
||||
_capture.OutputFolder == CaptureBase.OutputPath.RelativeToVideos ||
|
||||
_capture.OutputFolder == CaptureBase.OutputPath.RelativeToPictures)
|
||||
{
|
||||
// Album creation (album name is taken from the output folder path) requires read write access.
|
||||
if (_capture.OutputFolderPath != null && _capture.OutputFolderPath.Length > 0)
|
||||
photoLibraryAccessLevel = CaptureBase.PhotoLibraryAccessLevel.ReadWrite;
|
||||
|
||||
switch (CaptureBase.HasUserAuthorisationToAccessPhotos(photoLibraryAccessLevel))
|
||||
{
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.Authorised:
|
||||
// All good, nothing to do
|
||||
break;
|
||||
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.Unavailable:
|
||||
Debug.LogWarning("The photo library is unavailable, will use RelativeToPersistentData instead");
|
||||
_capture.OutputFolder = CaptureBase.OutputPath.RelativeToPersistentData;
|
||||
break;
|
||||
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.Denied:
|
||||
// User has denied access, change output path
|
||||
Debug.LogWarning("User has denied access to the photo library, will use RelativeToPersistentData instead");
|
||||
_capture.OutputFolder = CaptureBase.OutputPath.RelativeToPersistentData;
|
||||
break;
|
||||
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.NotDetermined:
|
||||
// Need to ask permission
|
||||
yield return CaptureBase.RequestUserAuthorisationToAccessPhotos(photoLibraryAccessLevel);
|
||||
// Nested switch, everbodies favourite
|
||||
switch (CaptureBase.HasUserAuthorisationToAccessPhotos(photoLibraryAccessLevel))
|
||||
{
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.Authorised:
|
||||
// All good, nothing to do
|
||||
break;
|
||||
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.Denied:
|
||||
// User has denied access, change output path
|
||||
Debug.LogWarning("User has denied access to the photo library, will use RelativeToPersistentData instead");
|
||||
_capture.OutputFolder = CaptureBase.OutputPath.RelativeToPersistentData;
|
||||
break;
|
||||
|
||||
case CaptureBase.PhotoLibraryAuthorisationStatus.NotDetermined:
|
||||
// We were unable to request access for some reason, check the logs for any error information
|
||||
Debug.LogWarning("Authorisation to access the photo library is still undetermined, will use RelativeToPersistentData instead");
|
||||
_capture.OutputFolder = CaptureBase.OutputPath.RelativeToPersistentData;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if UNITY_EDITOR_OSX || (!UNITY_EDITOR && (UNITY_STANDALONE_OSX || UNITY_IOS || UNITY_ANDROID))
|
||||
// Make sure we're authorised for using the microphone. On iOS the OS will forcibly
|
||||
// close the application if authorisation has not been granted. Make sure the
|
||||
// "Microphone Usage Description" field has been filled in the player settings.
|
||||
// Todo: handle late selection of microphone
|
||||
if (_capture.AudioCaptureSource == AudioCaptureSource.Microphone)
|
||||
{
|
||||
NativePlugin.MicrophoneRecordingOptions options = NativePlugin.MicrophoneRecordingOptions.None;
|
||||
|
||||
Debug.Log("Checking user has authorization to use the Microphone");
|
||||
switch (CaptureBase.HasUserAuthorisationToCaptureAudio())
|
||||
{
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Unavailable:
|
||||
Debug.LogWarning("Audio capture is unavailable, no audio will be captured");
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.NotDetermined:
|
||||
Debug.Log("Audio capture status is not determined, requesting access");
|
||||
yield return CaptureBase.RequestAudioCaptureDeviceUserAuthorisation();
|
||||
switch (CaptureBase.HasUserAuthorisationToCaptureAudio())
|
||||
{
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Unavailable:
|
||||
Debug.LogWarning("Audio capture is unavailable, no audio will be captured");
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.NotDetermined:
|
||||
Debug.LogWarning("Audio capture status is still not determined, no audio will be captured");
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Denied:
|
||||
Debug.LogWarning("Audio capture status denied, no audio will be captured");
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Authorised:
|
||||
Debug.Log("Audio capture is authorised");
|
||||
NativePlugin.SetMicrophoneRecordingHint(true, options);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Denied:
|
||||
Debug.LogWarning("Audio capture status denied, no audio will be captured");
|
||||
break;
|
||||
|
||||
case CaptureBase.AudioCaptureDeviceAuthorisationStatus.Authorised:
|
||||
Debug.Log("Audio capture is authorised");
|
||||
NativePlugin.SetMicrophoneRecordingHint(true, options);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
yield return null;
|
||||
}
|
||||
|
||||
private void OnBeginFinalFileWriting(FileWritingHandler handler)
|
||||
{
|
||||
_fileWritingHandlers.Add(handler);
|
||||
}
|
||||
|
||||
private void OnCompleteFinalFileWriting(FileWritingHandler handler)
|
||||
{
|
||||
Debug.Log("Completed capture '" + handler.Path + "' with status: " + handler.Status.ToString());
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
#if (!ENABLE_INPUT_SYSTEM || ENABLE_LEGACY_INPUT_MANAGER)
|
||||
// Press the S key to trigger audio and background color change - useful for testing A/V sync
|
||||
#if (UNITY_IOS || UNITY_ANDROID) && !UNITY_EDITOR
|
||||
bool bTouch = (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended);
|
||||
if (bTouch)
|
||||
#else
|
||||
if (Input.GetKeyDown(KeyCode.S))
|
||||
#endif
|
||||
{
|
||||
if (_audioHit != null && _capture != null && _capture.IsCapturing())
|
||||
{
|
||||
AudioSource.PlayClipAtPoint(_audioHit, Vector3.zero);
|
||||
Camera.main.backgroundColor = new Color(Random.value, Random.value, Random.value, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// ESC to stop capture and quit
|
||||
if (Input.GetKeyDown(KeyCode.Escape))
|
||||
{
|
||||
if (_capture != null && _capture.IsCapturing())
|
||||
{
|
||||
_capture.StopCapture();
|
||||
}
|
||||
else
|
||||
{
|
||||
Application.Quit();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Spin the camera around
|
||||
if (_spinCamera && Camera.main != null)
|
||||
{
|
||||
Camera.main.transform.RotateAround(Vector3.zero, Vector3.up, 20f * Time.deltaTime * _speed);
|
||||
}
|
||||
|
||||
if (FileWritingHandler.Cleanup(_fileWritingHandlers))
|
||||
{
|
||||
if (_fileWritingHandlers.Count == 0)
|
||||
{
|
||||
Debug.Log("All pending file writes completed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
foreach (FileWritingHandler handler in _fileWritingHandlers)
|
||||
{
|
||||
handler.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
GUI.skin = _guiSkin;
|
||||
Rect r = new Rect(Screen.width - 108, 64, 128, 28);
|
||||
GUI.Label(r, "Frame " + Time.frameCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ba7f85d458d9d041a1180c7018b9d00
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: -100
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,100 @@
|
||||
using UnityEngine;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
/// <summary>
|
||||
/// Demo code to create and write frames manually into a movie using the low-level API via scripting
|
||||
/// </summary>
|
||||
public class ScriptCaptureDemo : MonoBehaviour
|
||||
{
|
||||
private const string X264CodecName = "x264vfw - H.264/MPEG-4 AVC codec";
|
||||
private const string FallbackCodecName = "Uncompressed";
|
||||
|
||||
/*[SerializeField]
|
||||
private int _width = 512;
|
||||
|
||||
[SerializeField]
|
||||
private int _height = 512;
|
||||
|
||||
[SerializeField]
|
||||
private int _frameRate = 30;
|
||||
|
||||
[SerializeField]
|
||||
private string _filePath;*/
|
||||
|
||||
// State
|
||||
private Codec _videoCodec;
|
||||
private int _encoderHandle;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (NativePlugin.Init())
|
||||
{
|
||||
// Find the index for the video codec
|
||||
_videoCodec = CodecManager.FindCodec(CodecType.Video, X264CodecName);
|
||||
if (_videoCodec == null)
|
||||
{
|
||||
_videoCodec = CodecManager.FindCodec(CodecType.Video, FallbackCodecName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
NativePlugin.Deinit();
|
||||
}
|
||||
|
||||
public void CreateVideoFromByteArray(string filePath, int width, int height, int frameRate)
|
||||
{
|
||||
byte[] frameData = new byte[width * height * 4];
|
||||
GCHandle frameHandle = GCHandle.Alloc(frameData, GCHandleType.Pinned);
|
||||
|
||||
// Start the recording session
|
||||
int encoderHandle = NativePlugin.CreateRecorderVideo(filePath, (uint)width, (uint)height, frameRate, (int)NativePlugin.PixelFormat.RGBA32, false, false, _videoCodec.Index, AudioCaptureSource.None, 0, 0, -1, -1, true, null);
|
||||
if (encoderHandle >= 0)
|
||||
{
|
||||
NativePlugin.Start(encoderHandle);
|
||||
|
||||
// Write out 100 frames
|
||||
int numFrames = 100;
|
||||
for (int i = 0; i < numFrames; i++)
|
||||
{
|
||||
// TODO: fill the byte array with your own data :)
|
||||
|
||||
|
||||
// Wait for the encoder to be ready for the next frame
|
||||
int numAttempts = 32;
|
||||
while (numAttempts > 0)
|
||||
{
|
||||
if (NativePlugin.IsNewFrameDue(encoderHandle))
|
||||
{
|
||||
// Encode the new frame
|
||||
NativePlugin.EncodeFrame(encoderHandle, frameHandle.AddrOfPinnedObject());
|
||||
break;
|
||||
}
|
||||
System.Threading.Thread.Sleep(1);
|
||||
numAttempts--;
|
||||
}
|
||||
}
|
||||
|
||||
// End the session
|
||||
NativePlugin.Stop(encoderHandle, false);
|
||||
NativePlugin.FreeRecorder(encoderHandle);
|
||||
}
|
||||
|
||||
if (frameHandle.IsAllocated)
|
||||
{
|
||||
frameHandle.Free();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ebfd325dceeb4842b31e562ca753497
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,81 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
/// <summary>
|
||||
/// Spawns cube prefabs from a transform and removes them once they reach a maximum number
|
||||
/// </summary>
|
||||
public class SurroundCaptureDemo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] Transform _spawnPoint = null;
|
||||
[SerializeField] GameObject _cubePrefab = null;
|
||||
[SerializeField] bool _spawn = true;
|
||||
|
||||
private const int MaxCubes = 48;
|
||||
private const float SpawnTime = 0.25f;
|
||||
|
||||
// State
|
||||
private float _timer = SpawnTime;
|
||||
private List<GameObject> _cubes = new List<GameObject>(32);
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// Spawn cubes at a certain rate
|
||||
_timer -= Time.deltaTime;
|
||||
if (_timer <= 0f)
|
||||
{
|
||||
if (_spawn)
|
||||
{
|
||||
_timer = SpawnTime;
|
||||
SpawnCube();
|
||||
}
|
||||
|
||||
// Remove cubes when there are too many
|
||||
if (_cubes.Count > MaxCubes || !_spawn)
|
||||
{
|
||||
RemoveCube();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnCube()
|
||||
{
|
||||
Quaternion rotation = Quaternion.Euler(Random.Range(-180f, 180f), Random.Range(-180f, 180f), Random.Range(-180f, 180f));
|
||||
float scale = Random.Range(0.1f, 0.6f);
|
||||
|
||||
GameObject go = (GameObject)GameObject.Instantiate(_cubePrefab, _spawnPoint.position, rotation);
|
||||
Transform t = go.GetComponent<Transform>();
|
||||
go.GetComponent<Rigidbody>().AddExplosionForce(10f, _spawnPoint.position, 5f, 0f, ForceMode.Impulse);
|
||||
|
||||
//AddExplosionForce(float explosionForce, Vector3 explosionPosition, float explosionRadius, float upwardsModifier = 0.0F, ForceMode mode = ForceMode.Force);
|
||||
t.localScale = new Vector3(scale * 2f, scale, scale * 2f);
|
||||
t.SetParent(_spawnPoint);
|
||||
_cubes.Add(go);
|
||||
}
|
||||
|
||||
private void RemoveCube()
|
||||
{
|
||||
if (_cubes.Count > 0)
|
||||
{
|
||||
// Remove the oldest cube
|
||||
GameObject go = _cubes[0];
|
||||
|
||||
// Disabling the collider makes it fall through the floor - which is a neat way to hide its removal
|
||||
go.GetComponent<Collider>().enabled = false;
|
||||
_cubes.RemoveAt(0);
|
||||
StartCoroutine("KillCube", go);
|
||||
}
|
||||
}
|
||||
|
||||
private System.Collections.IEnumerator KillCube(GameObject go)
|
||||
{
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
Destroy(go);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 414b748b3f9089641bbcd64644cba905
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,71 @@
|
||||
using UnityEngine;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
/// <summary>
|
||||
/// Animates a procedural texture effect driven by a shader
|
||||
/// </summary>
|
||||
public class TextureCaptureDemo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] Shader _shader = null;
|
||||
[SerializeField] int _textureWidth = 1024;
|
||||
[SerializeField] int _textureHeight = 1024;
|
||||
[SerializeField] CaptureFromTexture _movieCapture = null;
|
||||
|
||||
// State
|
||||
private Material _material;
|
||||
private RenderTexture _texture;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_material = new Material(_shader);
|
||||
|
||||
RenderTextureReadWrite readWrite = QualitySettings.activeColorSpace == ColorSpace.Gamma ? RenderTextureReadWrite.Linear : RenderTextureReadWrite.sRGB;
|
||||
_texture = new RenderTexture(_textureWidth, _textureHeight, 0, RenderTextureFormat.ARGB32, readWrite);
|
||||
_texture.filterMode = FilterMode.Bilinear;
|
||||
_texture.Create();
|
||||
|
||||
if (_movieCapture)
|
||||
{
|
||||
_movieCapture.SetSourceTexture(_texture);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_material != null)
|
||||
{
|
||||
Material.Destroy(_material);
|
||||
_material = null;
|
||||
}
|
||||
if (_texture != null)
|
||||
{
|
||||
RenderTexture.Destroy(_texture);
|
||||
_texture = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
UpdateTexture();
|
||||
}
|
||||
|
||||
private void UpdateTexture()
|
||||
{
|
||||
Graphics.Blit(Texture2D.whiteTexture, _texture, _material);
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (_texture != null)
|
||||
{
|
||||
GUI.depth = 100;
|
||||
GUI.DrawTexture(new Rect(0f, 0f, Screen.width, Screen.height), _texture, ScaleMode.ScaleToFit, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f519d13df72fce439c800f34395deb7
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: -50
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,251 @@
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Demos
|
||||
{
|
||||
/// <summary>
|
||||
/// Allows the user to select from a list of webcams and creates a capture instance for the webcam recording.
|
||||
/// Currently only a single webcam can be captured at once.
|
||||
/// </summary>
|
||||
public class WebcamCaptureDemo : MonoBehaviour
|
||||
{
|
||||
#pragma warning disable 0414 // x is assigned but its value is never used
|
||||
[SerializeField] GUISkin _skin = null;
|
||||
[SerializeField] GameObject _prefab = null;
|
||||
[SerializeField] int _webcamResolutionWidth = 640;
|
||||
[SerializeField] int _webcamResolutionHeight = 480;
|
||||
[SerializeField] int _webcamFrameRate = 30;
|
||||
#pragma warning restore 0414
|
||||
|
||||
#if AVPRO_MOVIECAPTURE_WEBCAMTEXTURE_SUPPORT
|
||||
|
||||
private class Instance
|
||||
{
|
||||
public string name;
|
||||
public WebCamTexture texture;
|
||||
public CaptureFromWebCamTexture capture;
|
||||
public CaptureGUI gui;
|
||||
}
|
||||
|
||||
// State
|
||||
private Instance[] _instances;
|
||||
private int _selectedWebcamIndex = -1;
|
||||
|
||||
private IEnumerator Start()
|
||||
{
|
||||
Application.targetFrameRate = 60;
|
||||
|
||||
// Make sure we're authorised for using the camera. On iOS the OS will forcibly
|
||||
// close the application if authorisation has not been granted. Make sure the
|
||||
// "Camera Usage Description" field has been filled in the player settings.
|
||||
// This needs to be done first otherwise no cameras will be reported.
|
||||
if (!Application.HasUserAuthorization(UserAuthorization.WebCam))
|
||||
{
|
||||
yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
|
||||
}
|
||||
|
||||
// Make sure we're authorised for using the microphone. On iOS the OS will forcibly
|
||||
// close the application if authorisation has not been granted. Make sure the
|
||||
// "Microphone Usage Description" field has been filled in the player settings.
|
||||
// if (_capture.AudioCaptureSource == AudioCaptureSource.Microphone)
|
||||
{
|
||||
if (!Application.HasUserAuthorization(UserAuthorization.Microphone))
|
||||
{
|
||||
yield return Application.RequestUserAuthorization(UserAuthorization.Microphone);
|
||||
}
|
||||
if (Application.HasUserAuthorization(UserAuthorization.Microphone))
|
||||
{
|
||||
// On iOS modified the audio session to allow recording from the microphone.
|
||||
NativePlugin.SetMicrophoneRecordingHint(true);
|
||||
}
|
||||
}
|
||||
|
||||
// Create instance data per webcam
|
||||
int numCams = WebCamTexture.devices.Length;
|
||||
_instances = new Instance[numCams];
|
||||
for (int i = 0; i < numCams; i++)
|
||||
{
|
||||
GameObject go = (GameObject)GameObject.Instantiate(_prefab);
|
||||
|
||||
Instance instance = new Instance();
|
||||
instance.name = WebCamTexture.devices[i].name;
|
||||
instance.capture = go.GetComponent<CaptureFromWebCamTexture>();
|
||||
instance.capture.FilenamePrefix = "Demo4Webcam-" + i;
|
||||
instance.gui = go.GetComponent<CaptureGUI>();
|
||||
instance.gui.ShowUI = false;
|
||||
|
||||
_instances[i] = instance;
|
||||
|
||||
#if false
|
||||
WebCamDevice device = WebCamTexture.devices[i];
|
||||
Resolution[] resolutions = device.availableResolutions;
|
||||
if (resolutions != null)
|
||||
{
|
||||
Debug.Log($"Device '{device.name}' has {resolutions.Length} supported resolutions:");
|
||||
foreach (Resolution resolution in resolutions)
|
||||
{
|
||||
Debug.Log($"{resolution.width}x{resolution.height}@{resolution.refreshRate}");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (numCams > 0)
|
||||
{
|
||||
SelectWebcam(0);
|
||||
}
|
||||
}
|
||||
|
||||
private void StartWebcam(Instance instance)
|
||||
{
|
||||
// NOTE: WebcamTexture can be slow for high resolutions, this can cause issues with audio-video sync.
|
||||
// Our plugins AVPro Live Camera or AVPro DeckLink can be used to capture high resolution devices
|
||||
Debug.LogFormat("_webcamResolutionWidth: {0}, _webcamResolutionHeight: {1}, _webcamFrameRate: {2}", _webcamResolutionWidth, _webcamResolutionHeight, _webcamFrameRate);
|
||||
instance.texture = new WebCamTexture(instance.name);
|
||||
instance.texture.requestedWidth = _webcamResolutionWidth;
|
||||
instance.texture.requestedHeight = _webcamResolutionHeight;
|
||||
instance.texture.requestedFPS = _webcamFrameRate;
|
||||
instance.texture.Play();
|
||||
if (instance.texture.isPlaying)
|
||||
{
|
||||
instance.capture.WebCamTexture = instance.texture;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log(string.Format("Unable to start webcam in mode {0}x{1}@{2}", _webcamResolutionWidth, _webcamResolutionHeight, _webcamFrameRate));
|
||||
StopWebcam(instance);
|
||||
}
|
||||
}
|
||||
|
||||
private void StopWebcam(Instance instance)
|
||||
{
|
||||
if (instance.texture != null)
|
||||
{
|
||||
if (instance.capture != null && instance.capture.IsCapturing())
|
||||
{
|
||||
instance.capture.WebCamTexture = null;
|
||||
instance.capture.StopCapture();
|
||||
}
|
||||
|
||||
instance.texture.Stop();
|
||||
Destroy(instance.texture);
|
||||
instance.texture = null;
|
||||
}
|
||||
|
||||
_selectedWebcamIndex = -1;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
for (int i = 0; i < _instances.Length; i++)
|
||||
{
|
||||
StopWebcam(_instances[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private void SelectWebcam(int index)
|
||||
{
|
||||
// Stop any currently
|
||||
if (_selectedWebcamIndex >= 0)
|
||||
{
|
||||
StopWebcam(_instances[_selectedWebcamIndex]);
|
||||
_selectedWebcamIndex = -1;
|
||||
}
|
||||
|
||||
if (index >= 0)
|
||||
{
|
||||
_selectedWebcamIndex = index;
|
||||
for (int j = 0; j < _instances.Length; j++)
|
||||
{
|
||||
_instances[j].gui.ShowUI = (j == _selectedWebcamIndex);
|
||||
}
|
||||
StartWebcam(_instances[_selectedWebcamIndex]);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
#if (UNITY_IOS || UNITY_ANDROID) && !UNITY_EDITOR
|
||||
float sf = 2.0f;
|
||||
#else
|
||||
float sf = 1.0f;
|
||||
#endif
|
||||
GUI.matrix = Matrix4x4.Scale(new Vector3(sf, sf, 1f));
|
||||
float hw = Screen.width / (2f * sf);
|
||||
|
||||
GUI.skin = _skin;
|
||||
GUILayout.BeginArea(new Rect(hw, 0, hw, Screen.height));
|
||||
GUILayout.BeginVertical();
|
||||
|
||||
GUILayout.Label("Select webcam:");
|
||||
|
||||
for (int i = 0; i < _instances.Length; i++)
|
||||
{
|
||||
Instance webcam = _instances[i];
|
||||
|
||||
GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
|
||||
|
||||
if (webcam.capture.IsCapturing())
|
||||
{
|
||||
float t = Mathf.PingPong(Time.timeSinceLevelLoad, 0.25f) * 4f;
|
||||
GUI.backgroundColor = Color.Lerp(GUI.backgroundColor, Color.white, t);
|
||||
GUI.color = Color.Lerp(Color.red, Color.white, t);
|
||||
}
|
||||
|
||||
if (_selectedWebcamIndex == i)
|
||||
{
|
||||
GUI.backgroundColor = Color.green;
|
||||
}
|
||||
|
||||
if (GUILayout.Button(webcam.name, GUILayout.Width(hw * 0.5f), GUILayout.ExpandWidth(false)))
|
||||
{
|
||||
if (_selectedWebcamIndex != i)
|
||||
{
|
||||
SelectWebcam(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
StopWebcam(webcam);
|
||||
}
|
||||
}
|
||||
|
||||
GUI.backgroundColor = Color.white;
|
||||
GUI.color = Color.white;
|
||||
|
||||
if (webcam.texture != null)
|
||||
{
|
||||
float a = (float)_webcamResolutionHeight / (float)_webcamResolutionWidth;
|
||||
float w = (float)hw * 0.5f;
|
||||
Rect camRect = GUILayoutUtility.GetRect(w, w * a);
|
||||
GUI.DrawTexture(camRect, webcam.texture);
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label(string.Empty, GUILayout.MinWidth(256.0f), GUILayout.MaxWidth(256.0f), GUILayout.ExpandWidth(false));
|
||||
}
|
||||
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
if (_selectedWebcamIndex >= 0 && _selectedWebcamIndex < _instances.Length)
|
||||
{
|
||||
Instance instance = _instances[_selectedWebcamIndex];
|
||||
GUILayout.Label($"WebCam FPS: {instance.capture.WebCamFPS}");
|
||||
}
|
||||
|
||||
GUILayout.EndVertical();
|
||||
GUILayout.EndArea();
|
||||
}
|
||||
#else
|
||||
void Start()
|
||||
{
|
||||
Debug.LogError("[AVProMovieCapture] To use WebCamTexture capture component/demo you must add the string AVPRO_MOVIECAPTURE_WEBCAMTEXTURE_SUPPORT must be added to `Scriping Define Symbols` in `Player Settings > Other Settings > Script Compilation`");
|
||||
}
|
||||
#endif // AVPRO_MOVIECAPTURE_WEBCAMTEXTURE_SUPPORT
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98a052fe19e52c048865e758e854f078
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f4071a2eb4dd7e44953f88be83bd5a4
|
||||
folderAsset: yes
|
||||
timeCreated: 1563640874
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,124 @@
|
||||
Shader "Hidden/AVProMovieCapture/Plasma"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex ("Texture", 2D) = "white" {}
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType"="Opaque" }
|
||||
LOD 100
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
// #pragma exclude_renderers gles
|
||||
#pragma target 2.5
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
|
||||
//dave hoskins hash
|
||||
float2 hash(float2 p)
|
||||
{
|
||||
float3 HASHSCALE3 = float3(0.1031, 0.1030, 0.0973);
|
||||
float3 p3 = frac(float3(p.xyx) * HASHSCALE3);
|
||||
p3 += dot(p3, p3.yzx + 19.19);
|
||||
|
||||
return frac((p3.xx+p3.yz)*p3.zy);
|
||||
}
|
||||
|
||||
float voronoi(float2 p, float gap)
|
||||
{
|
||||
p *= 1.0 / gap;
|
||||
|
||||
float2 n = floor(p);
|
||||
float2 f = frac(p);
|
||||
|
||||
float min_dist = 99999.0;
|
||||
for (int j = -1; j <= 1; j++)
|
||||
for (int i = -1; i <= 1; i++)
|
||||
{
|
||||
float2 pos = float2(float(i), float(j));
|
||||
float2 jitter = (hash(n + pos) - 0.5) * 2.0;
|
||||
jitter = 0.5 + sin(_Time.y + 6.2831 * jitter) * 0.5;
|
||||
float2 r = pos + jitter - f;
|
||||
float d = length(r);
|
||||
|
||||
if (d < min_dist)
|
||||
{
|
||||
min_dist = d;
|
||||
}
|
||||
}
|
||||
|
||||
return pow(min_dist, 3.0) * gap * 10;
|
||||
}
|
||||
|
||||
float3 tonemap(float3 color)
|
||||
{
|
||||
color = max(float3(0, 0, 0), color - float3(0.004, 0.004, 0.004));
|
||||
color = (color * (6.2 * color + .5)) / (color * (6.2 * color + 1.7) + 0.06);
|
||||
return color;
|
||||
}
|
||||
|
||||
float plasma(float2 p)
|
||||
{
|
||||
float gap = 0.5;
|
||||
float norm_factor = 0.0;
|
||||
float total_val = 0.0;
|
||||
|
||||
[unroll(8)]
|
||||
for (int i = 0; i < 8; ++i)
|
||||
{
|
||||
total_val += voronoi(p, gap) / 16.0;
|
||||
norm_factor += gap;
|
||||
gap /= 2.0;
|
||||
}
|
||||
return total_val / norm_factor;
|
||||
}
|
||||
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
i.uv += float2(0, -_Time.y * 0.1);
|
||||
|
||||
float r = abs(frac(i.uv.y) - 0.5) * 2.0;
|
||||
float b = 1 - r;
|
||||
float g = 1.0 - 2 * abs(i.uv.x - 0.5);
|
||||
|
||||
fixed4 col = fixed4(r, g, b, 1) * plasma(i.uv);
|
||||
|
||||
col.rgb = tonemap(col.rgb);
|
||||
col.a = 1;
|
||||
|
||||
return col;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f3d2361de25fd894da4e336b857ff62d
|
||||
timeCreated: 1491491549
|
||||
licenseType: Store
|
||||
ShaderImporter:
|
||||
defaultTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
9
Assets/Plugins/RenderHeads/AVProMovieCapture/Docs.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2afb1484f696a74c8028a9456053886
|
||||
folderAsset: yes
|
||||
timeCreated: 1563637382
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 1
|
||||
guid: 0096b784692acfb4e92e5ce9ab0233d5
|
||||
9
Assets/Plugins/RenderHeads/AVProMovieCapture/Editor.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b7a195eaf70dd7c4db070647dbb48dce
|
||||
folderAsset: yes
|
||||
timeCreated: 1563637382
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "RenderHeads.AVProMovieCapture.Editor",
|
||||
"references": [ "RenderHeads.AVProMovieCapture.Runtime" ],
|
||||
"includePlatforms": [ "Editor" ]
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5692e4d2014af1542a09e0dab1e4a164
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d2a76974faba2d4eaf900faaf2f04b7
|
||||
folderAsset: yes
|
||||
timeCreated: 1563636592
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,90 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9dadcbc01dfb782409ab9f21874995f1
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 1
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -3
|
||||
maxTextureSize: 256
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -1
|
||||
wrapMode: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 0
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 256
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: Standalone
|
||||
maxTextureSize: 256
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: iPhone
|
||||
maxTextureSize: 256
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
- buildTarget: Android
|
||||
maxTextureSize: 256
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a69b148c9c07e443bb5c63956646b4a
|
||||
folderAsset: yes
|
||||
timeCreated: 1563636592
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,102 @@
|
||||
#if UNITY_EDITOR
|
||||
#if !UNITY_2018_3_OR_NEWER
|
||||
#define SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
#endif
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CameraSelector))]
|
||||
public class CameraSelectorEditor : UnityEditor.Editor
|
||||
{
|
||||
private SerializedProperty _propSelectBy;
|
||||
private SerializedProperty _propScanFrequency;
|
||||
private SerializedProperty _propScanHiddenCameras;
|
||||
private SerializedProperty _propTag;
|
||||
private SerializedProperty _propName;
|
||||
private SerializedProperty _propCamera;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
_propSelectBy = serializedObject.AssertFindProperty("_selectBy");
|
||||
_propScanFrequency = serializedObject.AssertFindProperty("_scanFrequency");
|
||||
_propScanHiddenCameras = serializedObject.AssertFindProperty("_scanHiddenCameras");
|
||||
_propTag = serializedObject.AssertFindProperty("_tag");
|
||||
_propName = serializedObject.AssertFindProperty("_name");
|
||||
_propCamera = serializedObject.AssertFindProperty("_camera");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
EditorGUILayout.PropertyField(_propScanFrequency);
|
||||
EditorGUILayout.PropertyField(_propScanHiddenCameras);
|
||||
EditorGUILayout.PropertyField(_propSelectBy);
|
||||
if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Name)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propName);
|
||||
}
|
||||
else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Tag)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propTag);
|
||||
}
|
||||
else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Manual)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCamera);
|
||||
}
|
||||
#if !SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.EditorSceneView)
|
||||
{
|
||||
GUI.color = Color.yellow;
|
||||
GUILayout.TextArea("Warning: Scene View capture only currently supports gizmo capture up to Unity 2018.2.x");
|
||||
GUI.color = Color.white;
|
||||
}
|
||||
#endif
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
EditorGUILayout.Separator();
|
||||
|
||||
GUILayout.Label("Cameras:");
|
||||
|
||||
CameraSelector selector = (this.target) as CameraSelector;
|
||||
|
||||
// Display buttons for all possible cameras
|
||||
for (int i = 0; i < selector.CameraCacheCount; i++)
|
||||
{
|
||||
if (selector.Camera != selector.CameraCache[i])
|
||||
{
|
||||
if (GUILayout.Button(selector.CameraCache[i].name))
|
||||
{
|
||||
selector.Camera = selector.CameraCache[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GUI.color = Color.green;
|
||||
GUILayout.Button(selector.Camera.name);
|
||||
GUI.color = Color.white;
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.Separator();
|
||||
if (_propScanFrequency.enumValueIndex != (int)CameraSelector.ScanFrequencyMode.Frame)
|
||||
{
|
||||
if (GUILayout.Button("Update Camera List"))
|
||||
{
|
||||
selector.UpdateCameraCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a731464844c643e4e8da08697d37df67
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1daa6f19b63e2c418e9046e54cd0888
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b7c7fb5275f597f4ca030385c3259720
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
@@ -0,0 +1,143 @@
|
||||
#if UNITY_EDITOR
|
||||
#if UNITY_2018_1_OR_NEWER
|
||||
// Unity 2018.1 introduces stereo cubemap render methods
|
||||
#define AVPRO_MOVIECAPTURE_UNITY_STEREOCUBEMAP_RENDER
|
||||
#endif
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CaptureFromCamera360))]
|
||||
public class CaptureFromCamera360Editor : CaptureBaseEditor
|
||||
{
|
||||
//private CaptureFromCamera360 _capture;
|
||||
|
||||
private SerializedProperty _propCameraSelector;
|
||||
private SerializedProperty _propCamera;
|
||||
|
||||
private SerializedProperty _propRenderResolution;
|
||||
private SerializedProperty _propRenderSize;
|
||||
private SerializedProperty _propAntiAliasing;
|
||||
|
||||
private SerializedProperty _propCubemapResolution;
|
||||
private SerializedProperty _propCubemapDepth;
|
||||
private SerializedProperty _propSupportGUI;
|
||||
private SerializedProperty _propSupporCameraRotation;
|
||||
private SerializedProperty _propOnlyLeftRightRotation;
|
||||
private SerializedProperty _propStereoRendering;
|
||||
private SerializedProperty _propRender180Degrees;
|
||||
private SerializedProperty _propIPD;
|
||||
|
||||
private SerializedProperty _propBlendOverlapPercent;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
|
||||
//_capture = (this.target) as CaptureFromCamera360;
|
||||
|
||||
_propCameraSelector = serializedObject.AssertFindProperty("_cameraSelector");
|
||||
_propCamera = serializedObject.AssertFindProperty("_camera");
|
||||
|
||||
_propRenderResolution = serializedObject.AssertFindProperty("_renderResolution");
|
||||
_propRenderSize = serializedObject.AssertFindProperty("_renderSize");
|
||||
_propAntiAliasing = serializedObject.AssertFindProperty("_renderAntiAliasing");
|
||||
|
||||
_propCubemapResolution = serializedObject.AssertFindProperty("_cubemapResolution");
|
||||
_propCubemapDepth = serializedObject.AssertFindProperty("_cubemapDepth");
|
||||
_propSupportGUI = serializedObject.AssertFindProperty("_supportGUI");
|
||||
_propSupporCameraRotation = serializedObject.AssertFindProperty("_supportCameraRotation");
|
||||
_propOnlyLeftRightRotation = serializedObject.AssertFindProperty("_onlyLeftRightRotation");
|
||||
_propRender180Degrees = serializedObject.AssertFindProperty("_render180Degrees");
|
||||
_propStereoRendering = serializedObject.AssertFindProperty("_stereoRendering");
|
||||
_propIPD = serializedObject.AssertFindProperty("_ipd");
|
||||
|
||||
_propBlendOverlapPercent = serializedObject.AssertFindProperty("_blendOverlapPercent");
|
||||
}
|
||||
|
||||
protected void GUI_Camera()
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCameraSelector);
|
||||
|
||||
if (null == _propCameraSelector.objectReferenceValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCamera);
|
||||
}
|
||||
|
||||
EditorUtils.EnumAsDropdown("Resolution", _propRenderResolution, CaptureBaseEditor.ResolutionStrings);
|
||||
|
||||
if (_propRenderResolution.enumValueIndex == (int)CaptureBase.Resolution.Custom)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propRenderSize, new GUIContent("Size"));
|
||||
_propRenderSize.vector2Value = new Vector2(Mathf.Clamp((int)_propRenderSize.vector2Value.x, 1, NativePlugin.MaxRenderWidth), Mathf.Clamp((int)_propRenderSize.vector2Value.y, 1, NativePlugin.MaxRenderHeight));
|
||||
}
|
||||
{
|
||||
string currentAA = "None";
|
||||
if (QualitySettings.antiAliasing > 1)
|
||||
{
|
||||
currentAA = QualitySettings.antiAliasing.ToString() + "x";
|
||||
}
|
||||
EditorUtils.IntAsDropdown("Anti-aliasing", _propAntiAliasing, new string[] { "Current (" + currentAA + ")", "None", "2x", "4x", "8x" }, new int[] { -1, 1, 2, 4, 8 });
|
||||
}
|
||||
|
||||
EditorUtils.IntAsDropdown("Cubemap Resolution", _propCubemapResolution, new string[] { "256", "512", "1024", "2048", "4096", "8192" }, new int[] { 256, 512, 1024, 2048, 4096, 8192 });
|
||||
EditorUtils.IntAsDropdown("Cubemap Depth", _propCubemapDepth, new string[] { "0", "16", "24" }, new int[] { 0, 16, 24 });
|
||||
EditorGUILayout.PropertyField(_propSupportGUI, new GUIContent("Capture GUI"));
|
||||
EditorGUILayout.PropertyField(_propSupporCameraRotation, new GUIContent("Camera Rotation"));
|
||||
if (_propSupporCameraRotation.boolValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propOnlyLeftRightRotation);
|
||||
}
|
||||
EditorGUILayout.PropertyField(_propRender180Degrees);
|
||||
EditorGUILayout.PropertyField(_propStereoRendering);
|
||||
if (_propStereoRendering.enumValueIndex != (int)StereoPacking.None)
|
||||
{
|
||||
#if AVPRO_MOVIECAPTURE_UNITY_STEREOCUBEMAP_RENDER
|
||||
if (!PlayerSettings.enable360StereoCapture)
|
||||
{
|
||||
ShowNoticeBox(MessageType.Warning, "360 Stereo Capture needs to be enabled in PlayerSettings");
|
||||
if (GUILayout.Button("Enable 360 Stereo Capture"))
|
||||
{
|
||||
PlayerSettings.enable360StereoCapture = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// TODO: detect HDRP and warn that stereo capture is not supported
|
||||
EditorGUILayout.PropertyField(_propIPD, new GUIContent("Interpupillary distance"));
|
||||
}
|
||||
|
||||
// RJT TODO: Supports stereo via 'CubemapRenderMethod.Manual' but I gather its results are not correct so either:
|
||||
// - 1. Fix up 'Manual' stereo if possible
|
||||
// - 2. Disable/warn here if stereo is selected
|
||||
// if (_propStereoRendering.enumValueIndex == (int)StereoPacking.None)
|
||||
{
|
||||
// RJT TODO: Could technically allow more than 100% as camera perspective visually means 100% != a complete face, but
|
||||
// definitely approaches a point of massively diminishing (but increasingly costly) returns so probably not worthwhile
|
||||
EditorGUILayout.Slider(_propBlendOverlapPercent, 0.0f, 100.0f, new GUIContent("Blend Overlap %"));
|
||||
}
|
||||
}
|
||||
|
||||
protected override void GUI_User()
|
||||
{
|
||||
if (_baseCapture != null && !_baseCapture.IsCapturing())
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
bool boolTrue = true;
|
||||
EditorUtils.DrawSection("Capture From Camera 360+Stereo", ref boolTrue, GUI_Camera);
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties())
|
||||
{
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0c3bf56fa2bee61458e783a9f0feb685
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,119 @@
|
||||
#if UNITY_5_5_OR_NEWER
|
||||
#define AVPRO_MOVIECAPTURE_UNITYPROFILER_55
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CaptureFromCamera360ODS))]
|
||||
public class CaptureFromCamera360ODSEditor : CaptureBaseEditor
|
||||
{
|
||||
//private CaptureFromCamera360ODS _capture;
|
||||
|
||||
private SerializedProperty _propCameraSelector;
|
||||
private SerializedProperty _propCamera;
|
||||
private SerializedProperty _propRenderResolution;
|
||||
private SerializedProperty _propRenderSize;
|
||||
private SerializedProperty _propAntiAliasing;
|
||||
|
||||
private SerializedProperty _propRender180Degrees;
|
||||
private SerializedProperty _propIPD;
|
||||
private SerializedProperty _propPixelSliceSize;
|
||||
private SerializedProperty _propPaddingSize;
|
||||
private SerializedProperty _propCameraClearMode;
|
||||
private SerializedProperty _propCameraClearColor;
|
||||
private SerializedProperty _propCameraImageEffects;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
|
||||
//_capture = (this.target) as CaptureFromCamera360ODS;
|
||||
|
||||
_propCameraSelector = serializedObject.AssertFindProperty("_settings.cameraSelector");
|
||||
_propCamera = serializedObject.AssertFindProperty("_settings.camera");
|
||||
|
||||
_propRenderResolution = serializedObject.AssertFindProperty("_renderResolution");
|
||||
_propRenderSize = serializedObject.AssertFindProperty("_renderSize");
|
||||
_propAntiAliasing = serializedObject.AssertFindProperty("_renderAntiAliasing");
|
||||
|
||||
_propRender180Degrees = serializedObject.AssertFindProperty("_settings.render180Degrees");
|
||||
_propIPD = serializedObject.AssertFindProperty("_settings.ipd");
|
||||
_propPixelSliceSize = serializedObject.AssertFindProperty("_settings.pixelSliceSize");
|
||||
_propPaddingSize = serializedObject.AssertFindProperty("_settings.paddingSize");
|
||||
_propCameraClearMode = serializedObject.AssertFindProperty("_settings.cameraClearMode");
|
||||
_propCameraClearColor = serializedObject.AssertFindProperty("_settings.cameraClearColor");
|
||||
_propCameraImageEffects = serializedObject.AssertFindProperty("_settings.cameraImageEffects");
|
||||
}
|
||||
|
||||
protected void GUI_Camera()
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCameraSelector);
|
||||
|
||||
if (null == _propCameraSelector.objectReferenceValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCamera);
|
||||
}
|
||||
|
||||
EditorUtils.EnumAsDropdown("Resolution", _propRenderResolution, CaptureBaseEditor.ResolutionStrings);
|
||||
|
||||
if (_propRenderResolution.enumValueIndex == (int)CaptureBase.Resolution.Custom)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propRenderSize, new GUIContent("Size"));
|
||||
_propRenderSize.vector2Value = new Vector2(Mathf.Clamp((int)_propRenderSize.vector2Value.x, 1, NativePlugin.MaxRenderWidth), Mathf.Clamp((int)_propRenderSize.vector2Value.y, 1, NativePlugin.MaxRenderHeight));
|
||||
}
|
||||
|
||||
{
|
||||
string currentAA = "None";
|
||||
if (QualitySettings.antiAliasing > 1)
|
||||
{
|
||||
currentAA = QualitySettings.antiAliasing.ToString() + "x";
|
||||
}
|
||||
EditorUtils.IntAsDropdown("Anti-aliasing", _propAntiAliasing, new string[] { "Current (" + currentAA + ")", "None", "2x", "4x", "8x" }, new int[] { -1, 1, 2, 4, 8 });
|
||||
}
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
EditorGUILayout.PropertyField(_propRender180Degrees);
|
||||
EditorGUILayout.PropertyField(_propIPD, new GUIContent("Interpupillary distance"));
|
||||
EditorGUILayout.PropertyField(_propPixelSliceSize);
|
||||
EditorGUILayout.PropertyField(_propPaddingSize);
|
||||
EditorGUILayout.PropertyField(_propCameraClearMode);
|
||||
EditorGUILayout.PropertyField(_propCameraClearColor);
|
||||
EditorGUILayout.PropertyField(_propCameraImageEffects, true);
|
||||
}
|
||||
|
||||
protected override void GUI_User()
|
||||
{
|
||||
if (_baseCapture != null && !_baseCapture.IsCapturing())
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
bool boolTrue = true;
|
||||
EditorUtils.DrawSection("Capture from Camera 360 + ODS", ref boolTrue, GUI_Camera);
|
||||
|
||||
#if AVPRO_MOVIECAPTURE_UNITYPROFILER_55
|
||||
// This component makes the profiler use a TON of memory, so warn the user to disable it
|
||||
if (UnityEngine.Profiling.Profiler.enabled)
|
||||
{
|
||||
ShowNoticeBox(MessageType.Warning, "Having the Unity profiler enabled while using the CaptureFromCamera360ODS component is not recommended.\n\nToo many samples are generated which can make the system run out of memory\n\nDisable the profiler, close the window and remove the tab. A Unity restart may be required after disabling the profiler recording.");
|
||||
}
|
||||
#endif
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties())
|
||||
{
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e864b7158340a1949b733e272c103dba
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,163 @@
|
||||
#if UNITY_EDITOR
|
||||
#if !UNITY_2018_3_OR_NEWER
|
||||
#define SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
#endif
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CaptureFromCamera))]
|
||||
public class CaptureFromCameraEditor : CaptureBaseEditor
|
||||
{
|
||||
//private CaptureFromCamera _capture;
|
||||
|
||||
private SerializedProperty _propCameraSelector;
|
||||
private SerializedProperty _propLastCamera;
|
||||
private SerializedProperty _propContribCameras;
|
||||
private SerializedProperty _propUseContribCameras;
|
||||
#if SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
private SerializedProperty _propIncludeSceneViewGizmos;
|
||||
#endif
|
||||
|
||||
private SerializedProperty _propRenderResolution;
|
||||
private SerializedProperty _propRenderSize;
|
||||
private SerializedProperty _propAntiAliasing;
|
||||
|
||||
private static readonly GUIContent _guiItemCamera = new GUIContent("Camera", "The top level camera you want to capture");
|
||||
private static readonly GUIContent _guiItemContribCamera = new GUIContent("Contributing Cameras", "Cameras in render order from first to last that contribute to the rendering of the main camera above");
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
|
||||
//_capture = (this.target) as CaptureFromCamera;
|
||||
|
||||
_propCameraSelector = serializedObject.AssertFindProperty("_cameraSelector");
|
||||
_propLastCamera = serializedObject.AssertFindProperty("_lastCamera");
|
||||
_propContribCameras = serializedObject.AssertFindProperty("_contribCameras");
|
||||
_propContribCameras.isExpanded = true;
|
||||
_propUseContribCameras = serializedObject.AssertFindProperty("_useContributingCameras");
|
||||
#if SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
_propIncludeSceneViewGizmos = serializedObject.AssertFindProperty("_includeSceneViewGizmos");
|
||||
#endif
|
||||
|
||||
_propRenderResolution = serializedObject.AssertFindProperty("_renderResolution");
|
||||
_propRenderSize = serializedObject.AssertFindProperty("_renderSize");
|
||||
_propAntiAliasing = serializedObject.AssertFindProperty("_renderAntiAliasing");
|
||||
}
|
||||
|
||||
protected void GUI_Camera()
|
||||
{
|
||||
Camera prevLastCamera = null, lastCamera = null;
|
||||
|
||||
EditorGUILayout.PropertyField(_propCameraSelector);
|
||||
|
||||
if (null == _propCameraSelector.objectReferenceValue)
|
||||
{
|
||||
prevLastCamera = (Camera)_propLastCamera.objectReferenceValue;
|
||||
|
||||
EditorGUILayout.PropertyField(_propLastCamera, _guiItemCamera);
|
||||
|
||||
lastCamera = (Camera)_propLastCamera.objectReferenceValue;
|
||||
}
|
||||
|
||||
// If the user has changed the camera, reset the contributing cameras
|
||||
if (lastCamera != prevLastCamera)
|
||||
{
|
||||
_propContribCameras.arraySize = 0;
|
||||
if (lastCamera == null)
|
||||
{
|
||||
_propUseContribCameras.boolValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
_propUseContribCameras.boolValue = EditorGUILayout.ToggleLeft("Use Contributing Cameras", _propUseContribCameras.boolValue);
|
||||
|
||||
if (lastCamera != null)
|
||||
{
|
||||
if (_propUseContribCameras.boolValue)
|
||||
{
|
||||
if (GUILayout.Button("Find Contributing Cameras", EditorStyles.miniButtonRight, GUILayout.ExpandWidth(false)))
|
||||
{
|
||||
bool hasContribCameras = false;
|
||||
if (Utils.HasContributingCameras(lastCamera))
|
||||
{
|
||||
Camera[] cameras = Utils.FindContributingCameras(lastCamera);
|
||||
if (cameras != null && cameras.Length > 0)
|
||||
{
|
||||
hasContribCameras = true;
|
||||
_propContribCameras.arraySize = cameras.Length;
|
||||
for (int slotIndex = 0; slotIndex < cameras.Length; slotIndex++)
|
||||
{
|
||||
_propContribCameras.GetArrayElementAtIndex(slotIndex).objectReferenceValue = cameras[slotIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasContribCameras)
|
||||
{
|
||||
_propContribCameras.arraySize = 0;
|
||||
_propUseContribCameras.boolValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(_propContribCameras, _guiItemContribCamera, true);
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
}
|
||||
|
||||
EditorUtils.EnumAsDropdown("Resolution", _propRenderResolution, CaptureBaseEditor.ResolutionStrings);
|
||||
|
||||
if (_propRenderResolution.enumValueIndex == (int)CaptureBase.Resolution.Custom)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propRenderSize, new GUIContent("Size"));
|
||||
_propRenderSize.vector2Value = new Vector2(Mathf.Clamp((int)_propRenderSize.vector2Value.x, 1, NativePlugin.MaxRenderWidth), Mathf.Clamp((int)_propRenderSize.vector2Value.y, 1, NativePlugin.MaxRenderHeight));
|
||||
}
|
||||
{
|
||||
string currentAA = "None";
|
||||
if (QualitySettings.antiAliasing > 1)
|
||||
{
|
||||
currentAA = QualitySettings.antiAliasing.ToString() + "x";
|
||||
}
|
||||
EditorUtils.IntAsDropdown("Anti-aliasing", _propAntiAliasing, new string[] { "Current (" + currentAA + ")", "None", "2x", "4x", "8x" }, new int[] { -1, 1, 2, 4, 8 });
|
||||
}
|
||||
|
||||
#if SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
|
||||
EditorGUILayout.PropertyField(_propIncludeSceneViewGizmos);
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void GUI_User()
|
||||
{
|
||||
if (_baseCapture != null && !_baseCapture.IsCapturing())
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
bool boolTrue = true;
|
||||
EditorUtils.DrawSection("Capture From Camera", ref boolTrue, GUI_Camera);
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties())
|
||||
{
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
GUI_Header();
|
||||
|
||||
|
||||
|
||||
GUI_BaseOptions();
|
||||
}*/
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00cfbd397f486bc47af3c7358fef2c74
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
@@ -0,0 +1,41 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CaptureFromScreen))]
|
||||
public class CaptureFromScreenEditor : CaptureBaseEditor
|
||||
{
|
||||
private SerializedProperty _propCaptureMouseCursor;
|
||||
private SerializedProperty _propMouseCursor;
|
||||
|
||||
protected override void GUI_Misc()
|
||||
{
|
||||
GUI_MouseCursor();
|
||||
base.GUI_Misc();
|
||||
}
|
||||
|
||||
protected void GUI_MouseCursor()
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propCaptureMouseCursor);
|
||||
if (_propCaptureMouseCursor.boolValue)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propMouseCursor);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
_propCaptureMouseCursor = serializedObject.AssertFindProperty("_captureMouseCursor");
|
||||
_propMouseCursor = serializedObject.AssertFindProperty("_mouseCursor");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48a8b5e7b8c7ff147bd561367991de49
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
@@ -0,0 +1,46 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(CaptureFromTexture))]
|
||||
public class CaptureFromTextureEditor : CaptureBaseEditor
|
||||
{
|
||||
private SerializedProperty _propManualUpdate;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
|
||||
_propManualUpdate = serializedObject.AssertFindProperty("_manualUpdate");
|
||||
}
|
||||
|
||||
protected void GUI_Camera()
|
||||
{
|
||||
EditorGUILayout.PropertyField(_propManualUpdate);
|
||||
}
|
||||
|
||||
protected override void GUI_User()
|
||||
{
|
||||
if (_baseCapture != null && !_baseCapture.IsCapturing())
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
bool boolTrue = true;
|
||||
EditorUtils.DrawSection("Capture From Texture", ref boolTrue, GUI_Camera);
|
||||
|
||||
if (serializedObject.ApplyModifiedProperties())
|
||||
{
|
||||
EditorUtility.SetDirty(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9575e652d155954c9cca03aad0c6655
|
||||
timeCreated: 1526301386
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,363 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
public class EditorScreenshot : MonoBehaviour
|
||||
{
|
||||
internal enum ImageFormat
|
||||
{
|
||||
PNG,
|
||||
JPG,
|
||||
TGA,
|
||||
EXR,
|
||||
}
|
||||
|
||||
internal enum ExrPrecision
|
||||
{
|
||||
Half,
|
||||
Float,
|
||||
}
|
||||
|
||||
internal enum ExrCompression
|
||||
{
|
||||
None,
|
||||
ZIP,
|
||||
RLE,
|
||||
PIZ,
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
internal class Options
|
||||
{
|
||||
[SerializeField, Range(1, 100)]
|
||||
internal int jpgQuality = 75;
|
||||
|
||||
[SerializeField]
|
||||
internal ExrPrecision exrPrecision;
|
||||
|
||||
[SerializeField]
|
||||
internal ExrCompression exrCompression;
|
||||
|
||||
internal Texture2D.EXRFlags GetExrFlags()
|
||||
{
|
||||
Texture2D.EXRFlags result = Texture2D.EXRFlags.None;
|
||||
if (exrPrecision == ExrPrecision.Float) result |= Texture2D.EXRFlags.OutputAsFloat;
|
||||
if (exrCompression == ExrCompression.ZIP) result |= Texture2D.EXRFlags.CompressZIP;
|
||||
else if (exrCompression == ExrCompression.RLE) result |= Texture2D.EXRFlags.CompressRLE;
|
||||
else if (exrCompression == ExrCompression.PIZ) result |= Texture2D.EXRFlags.CompressPIZ;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private const string SceneCameraName = "SceneCamera";
|
||||
|
||||
internal static RenderTexture GetSceneViewTexture()
|
||||
{
|
||||
RenderTexture result = null;
|
||||
Camera[] cameras = FindAllCameras();
|
||||
if (cameras != null)
|
||||
{
|
||||
Camera camera = FindCameraByName(cameras.Length, cameras, SceneCameraName);
|
||||
if (camera != null)
|
||||
{
|
||||
if (camera.targetTexture != null)
|
||||
{
|
||||
// Note we have to force a render
|
||||
camera.Render();
|
||||
result = camera.targetTexture;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static RenderTexture GetSceneViewTexture2()
|
||||
{
|
||||
RenderTexture result = null;
|
||||
RenderTexture[] rts = Resources.FindObjectsOfTypeAll<RenderTexture>();
|
||||
foreach (RenderTexture rt in rts)
|
||||
{
|
||||
if (rt.name == "SceneView RT")
|
||||
{
|
||||
result = rt;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static void SceneViewToFile(string fileNamePrefix, string folderPath, ImageFormat format, Options options)
|
||||
{
|
||||
RenderTexture cameraTexture = GetSceneViewTexture();
|
||||
if (cameraTexture != null)
|
||||
{
|
||||
Texture2D texture = GetReadableTexture(cameraTexture, format == ImageFormat.EXR);
|
||||
if (texture != null)
|
||||
{
|
||||
string filePath = EditorScreenshot.GenerateFilename(fileNamePrefix, format, texture.width, texture.height);
|
||||
filePath = GenerateFilePath(folderPath, filePath);
|
||||
TextureToFile(texture, filePath, format, options);
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(texture);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(texture);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("SceneView texture isn't available, make sure the view is visible");
|
||||
}
|
||||
}
|
||||
|
||||
internal static Texture2D GetReadableTexture(RenderTexture texture, bool supportHDR)
|
||||
{
|
||||
var oldRT = RenderTexture.active;
|
||||
TextureFormat format = TextureFormat.RGBA32;
|
||||
if (supportHDR)
|
||||
{
|
||||
format = TextureFormat.RGBAFloat;
|
||||
}
|
||||
Texture2D destTex = new Texture2D(texture.width, texture.height, format, false, supportHDR);
|
||||
RenderTexture.active = texture;
|
||||
destTex.ReadPixels(new Rect(0, 0, texture.width, texture.height), 0, 0);
|
||||
destTex.Apply();
|
||||
RenderTexture.active = oldRT;
|
||||
return destTex;
|
||||
}
|
||||
|
||||
internal static bool SupportsTGA()
|
||||
{
|
||||
#if UNITY_2018_3_OR_NEWER
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
internal static bool SupportsGameViewJPGTGAEXR()
|
||||
{
|
||||
#if UNITY_2017_3_OR_NEWER
|
||||
return Application.isPlaying;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
internal static bool SupportsGameViewEXR()
|
||||
{
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
return Application.isPlaying;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
internal static void TextureToFile(Texture2D texture, string filePath, ImageFormat format, Options options)
|
||||
{
|
||||
byte[] data = null;
|
||||
#if UNITY_2017_1_OR_NEWER
|
||||
switch (format)
|
||||
{
|
||||
case ImageFormat.PNG:
|
||||
data = ImageConversion.EncodeToPNG(texture);
|
||||
break;
|
||||
case ImageFormat.JPG:
|
||||
data = ImageConversion.EncodeToJPG(texture, options.jpgQuality);
|
||||
break;
|
||||
case ImageFormat.TGA:
|
||||
#if UNITY_2018_3_OR_NEWER
|
||||
data = ImageConversion.EncodeToTGA(texture);
|
||||
#endif
|
||||
break;
|
||||
case ImageFormat.EXR:
|
||||
data = ImageConversion.EncodeToEXR(texture, options.GetExrFlags());
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (format)
|
||||
{
|
||||
case ImageFormat.PNG:
|
||||
data = texture.EncodeToPNG();
|
||||
break;
|
||||
case ImageFormat.JPG:
|
||||
data = texture.EncodeToJPG(options.jpgQuality);
|
||||
break;
|
||||
case ImageFormat.EXR:
|
||||
data = texture.EncodeToEXR(options.GetExrFlags());
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if (data != null)
|
||||
{
|
||||
System.IO.File.WriteAllBytes(filePath, data);
|
||||
OnFileWritten(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void GameViewToPNG(string filePath, int superSize = 1)
|
||||
{
|
||||
#if UNITY_2017_1_OR_NEWER
|
||||
ScreenCapture.CaptureScreenshot(filePath, superSize);
|
||||
#else
|
||||
Application.CaptureScreenshot(filePath, superSize);
|
||||
#endif
|
||||
|
||||
// The screenshot will not be generated until the frame has finished (at least in Application.CaptureScreenshot())
|
||||
if (!Application.isPlaying)
|
||||
{
|
||||
UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
|
||||
}
|
||||
|
||||
OnFileWritten(filePath);
|
||||
}
|
||||
|
||||
internal static void OnFileWritten(string filePath)
|
||||
{
|
||||
Debug.Log("[AVProMovieCapture] File written: " + filePath);
|
||||
CaptureBase.LastFileSaved = filePath;
|
||||
}
|
||||
|
||||
|
||||
internal static void RenderTextureToFile(string filePath, ImageFormat format, Options options, RenderTexture rt)
|
||||
{
|
||||
Texture2D texture = GetReadableTexture(rt, format == ImageFormat.EXR);
|
||||
if (texture != null)
|
||||
{
|
||||
TextureToFile(texture, filePath, format, options);
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(texture);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(texture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal static void GameViewToFile(string filePath, ImageFormat format, Options options, int superSize = 1)
|
||||
{
|
||||
// Coroutines aren't supported in editor mode, so we fake it using a GameObject with EditorCoroutine component
|
||||
GameObject go = new GameObject("temp-screenshot");
|
||||
go.hideFlags = HideFlags.HideAndDontSave;
|
||||
EditorCoroutine co = go.AddComponent<EditorCoroutine>();
|
||||
co.RunCoroutine(EditorScreenshot.GameViewToFileCoroutine(filePath, format, options, go, superSize));
|
||||
}
|
||||
|
||||
internal static IEnumerator GameViewToFileCoroutine(string filePath, ImageFormat format, Options options, GameObject go, int superSize = 1)
|
||||
{
|
||||
yield return new WaitForEndOfFrame();
|
||||
Texture2D texture = null;
|
||||
#if UNITY_2017_3_OR_NEWER
|
||||
if (format != ImageFormat.EXR)
|
||||
{
|
||||
texture = ScreenCapture.CaptureScreenshotAsTexture(superSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
// For EXR we want floating point textures which CaptureScreenshotAsTexture() doesn't provide
|
||||
RenderTextureFormat rtFormat = (options.exrPrecision == ExrPrecision.Float) ? RenderTextureFormat.ARGBFloat : RenderTextureFormat.ARGBHalf;
|
||||
RenderTexture rt = new RenderTexture(Screen.width * superSize, Screen.height * superSize, 24, rtFormat);
|
||||
rt.Create();
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
ScreenCapture.CaptureScreenshotIntoRenderTexture(rt);
|
||||
#endif
|
||||
texture = GetReadableTexture(rt, true);
|
||||
Destroy(rt);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (texture != null)
|
||||
{
|
||||
TextureToFile(texture, filePath, format, options);
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(texture);
|
||||
Destroy(go);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(texture);
|
||||
DestroyImmediate(go);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal static Camera[] FindAllCameras()
|
||||
{
|
||||
return Resources.FindObjectsOfTypeAll<Camera>();
|
||||
}
|
||||
|
||||
static Camera FindCameraByName(int cameraCount, Camera[] cameras, string name)
|
||||
{
|
||||
Camera result = null;
|
||||
for (int i = 0; i < cameraCount; i++)
|
||||
{
|
||||
Camera c = cameras[i];
|
||||
if (c.name == name)
|
||||
{
|
||||
result = c;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static string GetExtension(ImageFormat format)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case ImageFormat.PNG:
|
||||
return "png";
|
||||
case ImageFormat.JPG:
|
||||
return "jpg";
|
||||
case ImageFormat.TGA:
|
||||
return "tga";
|
||||
case ImageFormat.EXR:
|
||||
return "exr";
|
||||
}
|
||||
throw new Exception("Unknown image format");
|
||||
}
|
||||
|
||||
internal static Vector2 GetGameViewSize()
|
||||
{
|
||||
Vector2 result = Vector2.zero;
|
||||
string[] res = UnityStats.screenRes.Split('x');
|
||||
if (res.Length == 2)
|
||||
{
|
||||
result.x = int.Parse(res[0]);
|
||||
result.y = int.Parse(res[1]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static string GenerateFilename(string filenamePrefix, ImageFormat format, int width, int height)
|
||||
{
|
||||
string filenameExtension = GetExtension(format);
|
||||
string dateTime = DateTime.Now.ToString("yyyyMMdd-HHmmss");
|
||||
string filename = string.Format("{0}-{1}-{2}x{3}.{4}", filenamePrefix, dateTime, width, height, filenameExtension);
|
||||
return filename;
|
||||
}
|
||||
|
||||
internal static string GenerateFilePath(string folderPath, string fileName)
|
||||
{
|
||||
if (!System.IO.Directory.Exists(folderPath))
|
||||
{
|
||||
System.IO.Directory.CreateDirectory(folderPath);
|
||||
}
|
||||
return System.IO.Path.Combine(folderPath, fileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 53e4ed1851d9d49438b8d2c269ba57a2
|
||||
timeCreated: 1643542876
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,279 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Reflection;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
/*public static class Utils
|
||||
{
|
||||
public static T GetCopyOf<T>(this Component comp, T other) where T : Component
|
||||
{
|
||||
System.Type type = comp.GetType();
|
||||
if (type != other.GetType())
|
||||
{
|
||||
return null; // type mis-match
|
||||
}
|
||||
BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Default | BindingFlags.DeclaredOnly;
|
||||
PropertyInfo[] pinfos = type.GetProperties(flags);
|
||||
for (int i = 0; i < pinfos.Length; i++)
|
||||
{
|
||||
PropertyInfo pinfo = pinfos[i];
|
||||
if (pinfo.CanWrite)
|
||||
{
|
||||
try
|
||||
{
|
||||
pinfo.SetValue(comp, pinfo.GetValue(other, null), null);
|
||||
}
|
||||
catch { } // In case of NotImplementedException being thrown. For some reason specifying that exception didn't seem to catch it, so I didn't catch anything specific.
|
||||
}
|
||||
}
|
||||
FieldInfo[] finfos = type.GetFields(flags);
|
||||
foreach (var finfo in finfos)
|
||||
{
|
||||
finfo.SetValue(comp, finfo.GetValue(other));
|
||||
}
|
||||
return comp as T;
|
||||
}
|
||||
}*/
|
||||
|
||||
internal enum BitrateUnits
|
||||
{
|
||||
BitsPerSecond,
|
||||
KBitsPerSecond,
|
||||
MBitsPerSecond,
|
||||
}
|
||||
|
||||
public static class EditorUtils
|
||||
{
|
||||
public static string[] AudioCaptureSourceNames = { "None", "Unity", "Microphone", "Manual", "Wwise", "Unity Audio Mixer" };
|
||||
public static string[] CommonFrameRateNames = { "1", "10", "15", "23.98", "24 - CINEMA", "25 - PAL", "29.97 - NTSC", "30 - PC", "50 - PAL", "59.94 - NTSC", "60 - PC", "75", "90", "120" };
|
||||
public static float[] CommonFrameRateValues = { 1f, 10f, 15f, 23.976f, 24f, 25f, 29.97f, 30f, 50f, 59.94f, 60f, 75f, 90f, 120f };
|
||||
|
||||
public static string[] CommonAudioSampleRateNames = { "8kHz", "22.5kHz", "44.1kHz", "48kHz", "96kHz" };
|
||||
public static int[] CommonAudioSampleRateValues = { 8000, 22050, 44100, 48000, 96000 };
|
||||
|
||||
internal static string[] OutputTargetNames = new string[] { "Video File", "Image Sequence", "Named Pipe" };
|
||||
|
||||
public static string[] CommonVideoBitRateNames = { "YouTube/360p30 H.264 - 1 Mbps",
|
||||
"YouTube/360p60 H.264 - 1.5 Mbps",
|
||||
"YouTube/480p30 H.264 - 2.5 Mbps",
|
||||
};
|
||||
public static float[] CommonVideoBitRateValues = { 1f, 1.5f, 2.5f };
|
||||
|
||||
public static SerializedProperty AssertFindProperty(this SerializedObject so, string propertyName)
|
||||
{
|
||||
SerializedProperty result = so.FindProperty(propertyName);
|
||||
Debug.Assert(result != null, "Missing property: " + propertyName);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void CentreLabel(string text, GUIStyle style = null)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
GUILayout.FlexibleSpace();
|
||||
if (style == null)
|
||||
{
|
||||
GUILayout.Label(text);
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label(text, style);
|
||||
}
|
||||
GUILayout.FlexibleSpace();
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
public static void BoolAsDropdown(string name, SerializedProperty prop, string trueOption, string falseOption)
|
||||
{
|
||||
string[] popupNames = { trueOption, falseOption };
|
||||
int popupIndex = 0;
|
||||
if (!prop.boolValue)
|
||||
{
|
||||
popupIndex = 1;
|
||||
}
|
||||
popupIndex = EditorGUILayout.Popup(name, popupIndex, popupNames);
|
||||
prop.boolValue = (popupIndex == 0);
|
||||
}
|
||||
|
||||
public static void EnumAsDropdown(string name, SerializedProperty prop, string[] options)
|
||||
{
|
||||
prop.enumValueIndex = EditorGUILayout.Popup(name, prop.enumValueIndex, options);
|
||||
}
|
||||
|
||||
public static void IntAsDropdown(string name, SerializedProperty prop, string[] options, int[] values)
|
||||
{
|
||||
int index = 0;
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
{
|
||||
if (values[i] == prop.intValue)
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
index = EditorGUILayout.Popup(name, index, options);
|
||||
prop.intValue = values[index];
|
||||
}
|
||||
|
||||
public static void FloatAsDropdown(string name, SerializedProperty prop, string[] options, float[] values, bool customAtEnd)
|
||||
{
|
||||
bool isFound = false;
|
||||
int index = 0;
|
||||
for (int i = 0; i < values.Length; i++)
|
||||
{
|
||||
if (values[i] == prop.floatValue)
|
||||
{
|
||||
isFound = true;
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isFound && customAtEnd)
|
||||
{
|
||||
index = options.Length - 1;
|
||||
}
|
||||
EditorGUI.BeginChangeCheck();
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
index = EditorGUILayout.Popup(index, options);
|
||||
}
|
||||
else
|
||||
{
|
||||
index = EditorGUILayout.Popup(name, index, options);
|
||||
}
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
prop.floatValue = values[index];
|
||||
}
|
||||
}
|
||||
|
||||
private struct FloatPopupData
|
||||
{
|
||||
public FloatPopupData(SerializedObject obj, SerializedProperty prop, float value, Object target)
|
||||
{
|
||||
_obj = obj;
|
||||
_prop = prop;
|
||||
_value = value;
|
||||
_target = target;
|
||||
}
|
||||
|
||||
public void Apply()
|
||||
{
|
||||
_prop.floatValue = _value;
|
||||
if (_obj.ApplyModifiedProperties())
|
||||
{
|
||||
EditorUtility.SetDirty(_target);
|
||||
}
|
||||
}
|
||||
|
||||
private Object _target;
|
||||
private SerializedObject _obj;
|
||||
private SerializedProperty _prop;
|
||||
private float _value;
|
||||
}
|
||||
|
||||
private static void FloatAsPopupCallback_Select(object obj)
|
||||
{
|
||||
((FloatPopupData)obj).Apply();
|
||||
}
|
||||
|
||||
public static void FloatAsPopup(string buttonText, string popupText, SerializedObject obj, SerializedProperty prop, string[] options, float[] values)
|
||||
{
|
||||
if (GUILayout.Button(buttonText, GUILayout.ExpandWidth(false)))
|
||||
{
|
||||
// Remove focus to clear the selection, otherwise the property field will not update
|
||||
GUI.FocusControl(null);
|
||||
|
||||
GenericMenu toolsMenu = new GenericMenu();
|
||||
toolsMenu.AddDisabledItem(new GUIContent(popupText));
|
||||
toolsMenu.AddSeparator("");
|
||||
for (int i = 0; i < options.Length; i++)
|
||||
{
|
||||
bool isSelected = (values[i] == prop.floatValue);
|
||||
toolsMenu.AddItem(new GUIContent(options[i]), isSelected, FloatAsPopupCallback_Select, new FloatPopupData(obj, prop, values[i], obj.targetObject));
|
||||
}
|
||||
|
||||
toolsMenu.ShowAsContext();
|
||||
}
|
||||
}
|
||||
|
||||
internal static BitrateUnits BitrateUnitsDisplay = BitrateUnits.MBitsPerSecond;
|
||||
|
||||
internal static void BitrateField(string name, SerializedProperty prop)
|
||||
{
|
||||
GUILayout.BeginHorizontal();
|
||||
|
||||
{
|
||||
double factor = 1.0;
|
||||
switch (BitrateUnitsDisplay)
|
||||
{
|
||||
case BitrateUnits.BitsPerSecond:
|
||||
factor = 1.0;
|
||||
break;
|
||||
case BitrateUnits.KBitsPerSecond:
|
||||
factor = 1000;
|
||||
break;
|
||||
case BitrateUnits.MBitsPerSecond:
|
||||
factor = 1000000;
|
||||
break;
|
||||
}
|
||||
|
||||
double bitrate = (uint)prop.intValue / factor;
|
||||
bitrate = EditorGUILayout.DelayedDoubleField(name, bitrate);
|
||||
prop.intValue = (int)(bitrate * factor);
|
||||
}
|
||||
|
||||
BitrateUnitsDisplay = (BitrateUnits)EditorGUILayout.Popup((int)BitrateUnitsDisplay, new string[] { "bps", "Kbps", "Mbps" }, GUILayout.Width(64f), GUILayout.MaxWidth(64f), GUILayout.ExpandWidth(false));
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
public static void DrawSection(string name, ref bool isExpanded, System.Action action)
|
||||
{
|
||||
Color boxbgColor = new Color(0.8f, 0.8f, 0.8f, 0.1f);
|
||||
if (EditorGUIUtility.isProSkin)
|
||||
{
|
||||
boxbgColor = Color.black;
|
||||
}
|
||||
DrawSectionColored(name, ref isExpanded, action, boxbgColor, Color.white, Color.white);
|
||||
}
|
||||
|
||||
public static void DrawSectionColored(string name, ref bool isExpanded, System.Action action, Color boxbgcolor, Color bgcolor, Color color)
|
||||
{
|
||||
GUI.color = Color.white;
|
||||
GUI.backgroundColor = Color.clear;
|
||||
//GUI.backgroundColor = bgcolor;
|
||||
if (isExpanded)
|
||||
{
|
||||
GUI.color = Color.white;
|
||||
GUI.backgroundColor = boxbgcolor;
|
||||
}
|
||||
|
||||
GUILayout.BeginVertical("box");
|
||||
GUI.color = color;
|
||||
GUI.backgroundColor = bgcolor;
|
||||
|
||||
if (GUILayout.Button(name, EditorStyles.toolbarButton))
|
||||
{
|
||||
isExpanded = !isExpanded;
|
||||
}
|
||||
//GUI.backgroundColor = Color.white;
|
||||
//GUI.color = Color.white;
|
||||
|
||||
if (isExpanded)
|
||||
{
|
||||
action.Invoke();
|
||||
}
|
||||
|
||||
GUI.backgroundColor = Color.white;
|
||||
GUI.color = Color.white;
|
||||
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f7411c9d2a49082438fc100e6d5418c2
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
@@ -0,0 +1,212 @@
|
||||
#if UNITY_2018_1_OR_NEWER || (UNITY_2017_4_OR_NEWER && !UNITY_2017_4_0 && !UNITY_2017_4_1 && !UNITY_2017_4_2 && !UNITY_2017_4_3 && !UNITY_2017_4_4 && !UNITY_2017_4_5 && !UNITY_2017_4_6 && !UNITY_2017_4_7 && !UNITY_2017_4_8 && !UNITY_2017_4_9 && !UNITY_2017_4_10 && !UNITY_2017_4_11 && !UNITY_2017_4_12 && !UNITY_2017_4_13 && !UNITY_2017_4_14 && !UNITY_2017_4_15 && !UNITY_2017_4_15)
|
||||
// Unity added Android ARM64 support in 2018.1, and backported to 2017.4.16
|
||||
#define AVPROMC_UNITY_ANDROID_ARM64_SUPPORT
|
||||
#endif
|
||||
#if !UNITY_2019_3_OR_NEWER || UNITY_2021_2_OR_NEWER || (UNITY_2020_3_OR_NEWER && !UNITY_2020_3_0 && !UNITY_2020_3_1 && !UNITY_2020_3_2 && !UNITY_2020_3_3 && !UNITY_2020_3_4 && !UNITY_2020_3_5 && !UNITY_2020_3_6 && !UNITY_2020_3_7 && !UNITY_2020_3_8 && !UNITY_2020_3_9 && !UNITY_2020_3_10 && !UNITY_2020_3_11 && !UNITY_2020_3_12 && !UNITY_2020_3_13 && !UNITY_2020_3_14 && !UNITY_2020_3_15 && !UNITY_2020_3_16) || (UNITY_2019_4_OR_NEWER && !UNITY_2019_4_0 && !UNITY_2019_4_1 && !UNITY_2019_4_2 && !UNITY_2019_4_3 && !UNITY_2019_4_4 && !UNITY_2019_4_5 && !UNITY_2019_4_6 && !UNITY_2019_4_7 && !UNITY_2019_4_8 && !UNITY_2019_4_9 && !UNITY_2019_4_10 && !UNITY_2019_4_11 && !UNITY_2019_4_12 && !UNITY_2019_4_13 && !UNITY_2019_4_14 && !UNITY_2019_4_15 && !UNITY_2019_4_16 && !UNITY_2019_4_17 && !UNITY_2019_4_18 && !UNITY_2019_4_19 && !UNITY_2019_4_20 && !UNITY_2019_4_21 && !UNITY_2019_4_22 && !UNITY_2019_4_23 && !UNITY_2019_4_24 && !UNITY_2019_4_25 && !UNITY_2019_4_26 && !UNITY_2019_4_27 && !UNITY_2019_4_28 && !UNITY_2019_4_29 && !UNITY_2019_4_30)
|
||||
// Unity dropped Android x86 support in 2019, but then added it back in 2021.2.0 and backported to 2020.3.17 and 2019.4.31
|
||||
#define AVPROMC_UNITY_ANDROID_X86_SUPPORT
|
||||
#endif
|
||||
#if UNITY_2021_2_OR_NEWER || (UNITY_2020_3_OR_NEWER && !UNITY_2020_3_0 && !UNITY_2020_3_1 && !UNITY_2020_3_2 && !UNITY_2020_3_3 && !UNITY_2020_3_4 && !UNITY_2020_3_5 && !UNITY_2020_3_6 && !UNITY_2020_3_7 && !UNITY_2020_3_8 && !UNITY_2020_3_9 && !UNITY_2020_3_10 && !UNITY_2020_3_11 && !UNITY_2020_3_12 && !UNITY_2020_3_13 && !UNITY_2020_3_14 && !UNITY_2020_3_15 && !UNITY_2020_3_16) || (UNITY_2019_4_OR_NEWER && !UNITY_2019_4_0 && !UNITY_2019_4_1 && !UNITY_2019_4_2 && !UNITY_2019_4_3 && !UNITY_2019_4_4 && !UNITY_2019_4_5 && !UNITY_2019_4_6 && !UNITY_2019_4_7 && !UNITY_2019_4_8 && !UNITY_2019_4_9 && !UNITY_2019_4_10 && !UNITY_2019_4_11 && !UNITY_2019_4_12 && !UNITY_2019_4_13 && !UNITY_2019_4_14 && !UNITY_2019_4_15 && !UNITY_2019_4_16 && !UNITY_2019_4_17 && !UNITY_2019_4_18 && !UNITY_2019_4_19 && !UNITY_2019_4_20 && !UNITY_2019_4_21 && !UNITY_2019_4_22 && !UNITY_2019_4_23 && !UNITY_2019_4_24 && !UNITY_2019_4_25 && !UNITY_2019_4_26 && !UNITY_2019_4_27 && !UNITY_2019_4_28 && !UNITY_2019_4_29 && !UNITY_2019_4_30)
|
||||
// Unity added Android x86_64 support in 2021.2.0 and backported to 2020.3.17 and 2019.4.31
|
||||
#define AVPROMC_UNITY_ANDROID_X8664_SUPPORT
|
||||
#endif
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
#define AVPROMC_UNITY_UWP_ARM64_SUPPORT
|
||||
#endif
|
||||
#if UNITY_2018_1_OR_NEWER
|
||||
#define AVPROMC_UNITY_BUILDWITHREPORT_SUPPORT
|
||||
#endif
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
#if AVPROMC_UNITY_BUILDWITHREPORT_SUPPORT
|
||||
using UnityEditor.Build.Reporting;
|
||||
#endif
|
||||
using System.Collections.Generic;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright 2015-2021 RenderHeads Ltd. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace RenderHeads.Media.AVProMovieCapture.Editor
|
||||
{
|
||||
/// <summary>
|
||||
/// Some versions of Unity do not support specific CPU architectures for plugin files
|
||||
/// so this Build Preprocessor checks the plugin files for those and either disables
|
||||
/// them if their arch is not supported, or assigns the correct arch and enables them
|
||||
/// </summary>
|
||||
public class PluginProcessor :
|
||||
#if AVPROMC_UNITY_BUILDWITHREPORT_SUPPORT
|
||||
IPreprocessBuildWithReport
|
||||
#else
|
||||
IPreprocessBuild
|
||||
#endif
|
||||
{
|
||||
internal class CpuArchitecture
|
||||
{
|
||||
internal CpuArchitecture(string code, bool isSupportedByThisUnityVersion)
|
||||
{
|
||||
_code = code;
|
||||
_isSupportedByThisUnityVersion = isSupportedByThisUnityVersion;
|
||||
}
|
||||
private string _code;
|
||||
private bool _isSupportedByThisUnityVersion;
|
||||
|
||||
internal string Code()
|
||||
{
|
||||
return _code;
|
||||
}
|
||||
|
||||
internal bool IsSupportedByThisUnityVersion()
|
||||
{
|
||||
return _isSupportedByThisUnityVersion;
|
||||
}
|
||||
}
|
||||
|
||||
internal class PluginFile
|
||||
{
|
||||
internal PluginFile(BuildTarget buildTarget, string relativeFilePath, bool supportsEditor, CpuArchitecture cpuArchitecture)
|
||||
{
|
||||
_buildTarget = buildTarget;
|
||||
_relativeFilePath = relativeFilePath;
|
||||
_cpuArchitecture = cpuArchitecture;
|
||||
_supportsEditor = supportsEditor;
|
||||
}
|
||||
|
||||
internal bool IsBuildTarget(BuildTarget buildTarget)
|
||||
{
|
||||
return (_buildTarget == buildTarget);
|
||||
}
|
||||
|
||||
internal BuildTarget BuildTarget()
|
||||
{
|
||||
return _buildTarget;
|
||||
}
|
||||
|
||||
internal bool IsForFile(string path)
|
||||
{
|
||||
return path.Replace("\\", "/").Contains(_relativeFilePath);
|
||||
}
|
||||
|
||||
internal bool IsSupportedByThisUnityVersion()
|
||||
{
|
||||
return _cpuArchitecture.IsSupportedByThisUnityVersion();
|
||||
}
|
||||
|
||||
internal string CpuArchitectureCode()
|
||||
{
|
||||
return _cpuArchitecture.Code();
|
||||
}
|
||||
|
||||
internal bool SupportsEditor()
|
||||
{
|
||||
return _supportsEditor;
|
||||
}
|
||||
|
||||
private BuildTarget _buildTarget;
|
||||
private string _relativeFilePath;
|
||||
private CpuArchitecture _cpuArchitecture;
|
||||
private bool _supportsEditor;
|
||||
}
|
||||
|
||||
private static List<PluginFile> _pluginFiles = new List<PluginFile>(32);
|
||||
|
||||
internal static void AddPluginFiles(BuildTarget buildTarget, string[] filenames, string folderPrefix, bool supportsEditor, CpuArchitecture cpuArchitecture)
|
||||
{
|
||||
foreach (string filename in filenames)
|
||||
{
|
||||
_pluginFiles.Add(new PluginFile(buildTarget, folderPrefix + filename, supportsEditor, cpuArchitecture));
|
||||
}
|
||||
}
|
||||
|
||||
internal static void AddPlugins_Android()
|
||||
{
|
||||
#if AVPROMC_UNITY_ANDROID_ARM64_SUPPORT
|
||||
const bool IsAndroidArm64Supported = true;
|
||||
#else
|
||||
const bool IsAndroidArm64Supported = false;
|
||||
#endif
|
||||
#if AVPROMC_UNITY_ANDROID_X86_SUPPORT
|
||||
const bool IsAndroidX86Supported = true;
|
||||
#else
|
||||
const bool IsAndroidX86Supported = false;
|
||||
#endif
|
||||
#if AVPROMC_UNITY_ANDROID_X8664_SUPPORT
|
||||
const bool IsAndroidX8664Supported = true;
|
||||
#else
|
||||
const bool IsAndroidX8664Supported = false;
|
||||
#endif
|
||||
string[] filenames = {
|
||||
"libAVProMovieCaptureNative.so",
|
||||
};
|
||||
BuildTarget target = BuildTarget.Android;
|
||||
AddPluginFiles(target, filenames, "Android/libs/armeabi-v7a/", false, new CpuArchitecture("ARMv7", true));
|
||||
AddPluginFiles(target, filenames, "Android/libs/arm64-v8a/", false, new CpuArchitecture("ARM64", IsAndroidArm64Supported));
|
||||
AddPluginFiles(target, filenames, "Android/libs/x86/", false, new CpuArchitecture("X86", IsAndroidX86Supported));
|
||||
AddPluginFiles(target, filenames, "Android/libs/x86_64/", false, new CpuArchitecture("X86_64", IsAndroidX8664Supported));
|
||||
}
|
||||
|
||||
private static void BuildPluginFileList()
|
||||
{
|
||||
_pluginFiles.Clear();
|
||||
AddPlugins_Android();
|
||||
}
|
||||
|
||||
public int callbackOrder { get { return 0; } }
|
||||
|
||||
#if AVPROMC_UNITY_BUILDWITHREPORT_SUPPORT
|
||||
public void OnPreprocessBuild(BuildReport report)
|
||||
{
|
||||
BuildPluginFileList();
|
||||
CheckNativePlugins(report.summary.platform);
|
||||
}
|
||||
#else
|
||||
public void OnPreprocessBuild(BuildTarget target, string path)
|
||||
{
|
||||
BuildPluginFileList();
|
||||
CheckNativePlugins(target);
|
||||
}
|
||||
#endif
|
||||
|
||||
internal static void CheckNativePlugins(BuildTarget target)
|
||||
{
|
||||
PluginImporter[] importers = PluginImporter.GetAllImporters();
|
||||
foreach (PluginImporter pi in importers)
|
||||
{
|
||||
// Currently we're only interested in native plugins
|
||||
if (!pi.isNativePlugin) continue;
|
||||
|
||||
// Skip plugins that aren't in the AVProMovieCapture path
|
||||
// NOTE: This is commented out for now to allow the case where users have moved the plugin files to another folder.
|
||||
// Eventually might need a more robust method, perhaps using GUIDS
|
||||
//if (!pi.assetPath.Contains("AVProMovieCapture")) continue;
|
||||
|
||||
foreach (PluginFile pluginFile in _pluginFiles)
|
||||
{
|
||||
if (pluginFile.IsBuildTarget(target) &&
|
||||
pluginFile.IsForFile(pi.assetPath))
|
||||
{
|
||||
pi.SetCompatibleWithAnyPlatform(false);
|
||||
if (pluginFile.IsSupportedByThisUnityVersion())
|
||||
{
|
||||
Debug.Log("[AVProMovieCapture] Enabling " + pluginFile.CpuArchitectureCode() + " " + pi.assetPath);
|
||||
pi.SetCompatibleWithEditor(pluginFile.SupportsEditor());
|
||||
pi.SetCompatibleWithPlatform(pluginFile.BuildTarget(), true);
|
||||
pi.SetPlatformData(pluginFile.BuildTarget(), "CPU", pluginFile.CpuArchitectureCode());
|
||||
}
|
||||
else
|
||||
{
|
||||
pi.SetCompatibleWithEditor(false);
|
||||
pi.SetCompatibleWithPlatform(pluginFile.BuildTarget(), false);
|
||||
pi.SetPlatformData(pluginFile.BuildTarget(), "CPU", "");
|
||||
Debug.Log("[AVProMovieCapture] Disabling " + pluginFile.CpuArchitectureCode() + " " + pi.assetPath);
|
||||
}
|
||||
pi.SaveAndReimport();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||