Added Unity project files
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: beb036b17b39a8f46b819d7e5208514a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2f0aef2b1a79004195975127d2a7c03
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: db74213609a3d444c8bc111a3e373878
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03440596fa1da9c4f9796a20de292254
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8b3b4a8bdfbaf344686d420abd25de73
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99a3cc965a6419644b54113eb9983bd0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63a46438a8152c74c980a66bfaf7b61c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d082e53096d08f441bc71078ece58e73
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,406 @@
|
||||
/************************************************************************************
|
||||
Filename : ONSPAudioSource.cs
|
||||
Content : Interface into the Oculus Native Spatializer Plugin
|
||||
Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
|
||||
|
||||
Licensed under the Oculus SDK Version 3.5 (the "License");
|
||||
you may not use the Oculus SDK except in compliance with the License,
|
||||
which is provided at the time of installation or download, or which
|
||||
otherwise accompanies this software in either electronic or hard copy form.
|
||||
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://developer.oculus.com/licenses/sdk-3.5/
|
||||
|
||||
Unless required by applicable law or agreed to in writing, the Oculus SDK
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
************************************************************************************/
|
||||
|
||||
// Uncomment below to test access of read-only spatializer parameters
|
||||
//#define TEST_READONLY_PARAMETERS
|
||||
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
public class ONSPAudioSource : MonoBehaviour
|
||||
{
|
||||
#if TEST_READONLY_PARAMETERS
|
||||
// Spatializer read-only system parameters (global)
|
||||
static int readOnly_GlobalRelectionOn = 8;
|
||||
static int readOnly_NumberOfUsedSpatializedVoices = 9;
|
||||
#endif
|
||||
|
||||
#if VRC_CLIENT
|
||||
// don't include in SDK, not compatible with Unity's version of spatializer
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
||||
static void OnBeforeSceneLoadRuntimeMethod()
|
||||
{
|
||||
OSP_SetGlobalVoiceLimit(ONSPSettings.Instance.voiceLimit);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Import functions
|
||||
public const string strONSPS = "AudioPluginOculusSpatializer";
|
||||
|
||||
[DllImport(strONSPS)]
|
||||
private static extern void ONSP_GetGlobalRoomReflectionValues(ref bool reflOn, ref bool reverbOn,
|
||||
ref float width, ref float height, ref float length);
|
||||
|
||||
// Public
|
||||
|
||||
[SerializeField]
|
||||
private bool enableSpatialization = true;
|
||||
public bool EnableSpatialization
|
||||
{
|
||||
get
|
||||
{
|
||||
return enableSpatialization;
|
||||
}
|
||||
set
|
||||
{
|
||||
enableSpatialization = value;
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private float gain = 0.0f;
|
||||
public float Gain
|
||||
{
|
||||
get
|
||||
{
|
||||
return gain;
|
||||
}
|
||||
set
|
||||
{
|
||||
gain = Mathf.Clamp(value, 0.0f, 24.0f);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private bool useInvSqr = false;
|
||||
public bool UseInvSqr
|
||||
{
|
||||
get
|
||||
{
|
||||
return useInvSqr;
|
||||
}
|
||||
set
|
||||
{
|
||||
useInvSqr = value;
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private float near = 0.25f;
|
||||
public float Near
|
||||
{
|
||||
get
|
||||
{
|
||||
return near;
|
||||
}
|
||||
set
|
||||
{
|
||||
near = Mathf.Clamp(value, 0.0f, 1000000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private float far = 250.0f;
|
||||
public float Far
|
||||
{
|
||||
get
|
||||
{
|
||||
return far;
|
||||
}
|
||||
set
|
||||
{
|
||||
far = Mathf.Clamp(value, 0.0f, 1000000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private float volumetricRadius = 0.0f;
|
||||
public float VolumetricRadius
|
||||
{
|
||||
get
|
||||
{
|
||||
return volumetricRadius;
|
||||
}
|
||||
set
|
||||
{
|
||||
volumetricRadius = Mathf.Clamp(value, 0.0f, 1000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
private float reverbSend = 0.0f;
|
||||
public float ReverbSend
|
||||
{
|
||||
get
|
||||
{
|
||||
return reverbSend;
|
||||
}
|
||||
set
|
||||
{
|
||||
reverbSend = Mathf.Clamp(value, -60.0f, 20.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[SerializeField]
|
||||
private bool enableRfl = false;
|
||||
public bool EnableRfl
|
||||
{
|
||||
get
|
||||
{
|
||||
return enableRfl;
|
||||
}
|
||||
set
|
||||
{
|
||||
enableRfl = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// VRCHAT: We need to reset the params after avatar loading and viseme setup
|
||||
public void Reset()
|
||||
{
|
||||
var source = GetComponent<AudioSource>();
|
||||
|
||||
if(source == null)
|
||||
{
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
SetParameters(ref source);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Awake this instance.
|
||||
/// </summary>
|
||||
void Awake()
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Start this instance.
|
||||
/// </summary>
|
||||
void Start()
|
||||
{
|
||||
#if VRC_CLIENT
|
||||
var source = GetComponent<AudioSource>();
|
||||
|
||||
if(source != null && source.outputAudioMixerGroup != VRCAudioManager.GetAvatarGroup())
|
||||
VRCAudioManager.ApplyGameAudioMixerSettings(source);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update this instance.
|
||||
/// </summary>
|
||||
void LateUpdate()
|
||||
{
|
||||
// We might iterate through multiple sources / game object
|
||||
var source = GetComponent<AudioSource>();
|
||||
|
||||
if(source == null)
|
||||
{
|
||||
enabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// READ-ONLY PARAMETER TEST
|
||||
#if TEST_READONLY_PARAMETERS
|
||||
float rfl_enabled = 0.0f;
|
||||
source.GetSpatializerFloat(readOnly_GlobalRelectionOn, out rfl_enabled);
|
||||
float num_voices = 0.0f;
|
||||
source.GetSpatializerFloat(readOnly_NumberOfUsedSpatializedVoices, out num_voices);
|
||||
|
||||
String readOnly = System.String.Format
|
||||
("Read only values: refl enabled: {0:F0} num voices: {1:F0}", rfl_enabled, num_voices);
|
||||
Debug.Log(readOnly);
|
||||
#endif
|
||||
|
||||
// Check to see if we should disable spatializion
|
||||
if ((Application.isPlaying == false) ||
|
||||
(AudioListener.pause == true) ||
|
||||
(source.isPlaying == false) ||
|
||||
(source.isActiveAndEnabled == false)
|
||||
)
|
||||
{
|
||||
source.spatialize = false;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetParameters(ref source);
|
||||
}
|
||||
}
|
||||
|
||||
enum Parameters : int
|
||||
{
|
||||
P_GAIN = 0,
|
||||
P_USEINVSQR,
|
||||
P_NEAR,
|
||||
P_FAR,
|
||||
P_RADIUS,
|
||||
P_DISABLE_RFL,
|
||||
P_VSPEAKERMODE,
|
||||
P_AMBISTAT,
|
||||
P_READONLY_GLOBAL_RFL_ENABLED, // READ-ONLY
|
||||
P_READONLY_NUM_VOICES, // READ-ONLY
|
||||
P_SENDLEVEL,
|
||||
P_NUM
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Sets the parameters.
|
||||
/// </summary>
|
||||
/// <param name="source">Source.</param>
|
||||
public void SetParameters(ref AudioSource source)
|
||||
{
|
||||
// VRCHAT: indentation is weird intentionally, for easier diff
|
||||
// VRC jnuccio: added try here to catch unknown exception reported in analytics
|
||||
try
|
||||
{
|
||||
if (source == null)
|
||||
return;
|
||||
|
||||
// See if we should enable spatialization
|
||||
source.spatialize = enableSpatialization;
|
||||
|
||||
source.SetSpatializerFloat((int)Parameters.P_GAIN, gain);
|
||||
// All inputs are floats; convert bool to 0.0 and 1.0
|
||||
if(useInvSqr == true)
|
||||
source.SetSpatializerFloat((int)Parameters.P_USEINVSQR, 1.0f);
|
||||
else
|
||||
source.SetSpatializerFloat((int)Parameters.P_USEINVSQR, 0.0f);
|
||||
|
||||
source.SetSpatializerFloat((int)Parameters.P_NEAR, near);
|
||||
source.SetSpatializerFloat((int)Parameters.P_FAR, far);
|
||||
|
||||
source.SetSpatializerFloat((int)Parameters.P_RADIUS, volumetricRadius);
|
||||
|
||||
if(enableRfl == true)
|
||||
source.SetSpatializerFloat((int)Parameters.P_DISABLE_RFL, 0.0f);
|
||||
else
|
||||
source.SetSpatializerFloat((int)Parameters.P_DISABLE_RFL, 1.0f);
|
||||
|
||||
source.SetSpatializerFloat((int)Parameters.P_SENDLEVEL, reverbSend);
|
||||
|
||||
// VRCHAT: indentation is weird intentionally, for easier diff
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// not sure why this throws sometimes
|
||||
}
|
||||
}
|
||||
|
||||
private static ONSPAudioSource RoomReflectionGizmoAS = null;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void OnDrawGizmos()
|
||||
{
|
||||
// Are we the first one created? make sure to set our static ONSPAudioSource
|
||||
// for drawing out room parameters once
|
||||
if(RoomReflectionGizmoAS == null)
|
||||
{
|
||||
RoomReflectionGizmoAS = this;
|
||||
}
|
||||
|
||||
Color c;
|
||||
const float colorSolidAlpha = 0.1f;
|
||||
|
||||
// Draw the near/far spheres
|
||||
|
||||
// Near (orange)
|
||||
c.r = 1.0f;
|
||||
c.g = 0.5f;
|
||||
c.b = 0.0f;
|
||||
c.a = 1.0f;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawWireSphere(transform.position, Near);
|
||||
c.a = colorSolidAlpha;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawSphere(transform.position, Near);
|
||||
|
||||
// Far (red)
|
||||
c.r = 1.0f;
|
||||
c.g = 0.0f;
|
||||
c.b = 0.0f;
|
||||
c.a = 1.0f;
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawWireSphere(transform.position, Far);
|
||||
c.a = colorSolidAlpha;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawSphere(transform.position, Far);
|
||||
|
||||
// VolumetricRadius (purple)
|
||||
c.r = 1.0f;
|
||||
c.g = 0.0f;
|
||||
c.b = 1.0f;
|
||||
c.a = 1.0f;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawWireSphere(transform.position, VolumetricRadius);
|
||||
c.a = colorSolidAlpha;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawSphere(transform.position, VolumetricRadius);
|
||||
|
||||
// Draw room parameters ONCE only, provided reflection engine is on
|
||||
if (RoomReflectionGizmoAS == this)
|
||||
{
|
||||
// Get global room parameters (write new C api to get reflection values)
|
||||
bool reflOn = false;
|
||||
bool reverbOn = false;
|
||||
float width = 1.0f;
|
||||
float height = 1.0f;
|
||||
float length = 1.0f;
|
||||
|
||||
ONSP_GetGlobalRoomReflectionValues(ref reflOn, ref reverbOn, ref width, ref height, ref length);
|
||||
|
||||
// TO DO: Get the room reflection values and render those out as well (like we do in the VST)
|
||||
|
||||
if((Camera.main != null) && (reflOn == true))
|
||||
{
|
||||
// Set color of cube (cyan is early reflections only, white is with reverb on)
|
||||
if(reverbOn == true)
|
||||
c = Color.white;
|
||||
else
|
||||
c = Color.cyan;
|
||||
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawWireCube(Camera.main.transform.position, new Vector3(width, height, length));
|
||||
c.a = colorSolidAlpha;
|
||||
Gizmos.color = c;
|
||||
Gizmos.DrawCube(Camera.main.transform.position, new Vector3(width, height, length));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void OnDestroy()
|
||||
{
|
||||
// We will null out single pointer instance
|
||||
// of the room reflection gizmo since we are being destroyed.
|
||||
// Any ONSPAS that is alive or born will re-set this pointer
|
||||
// so that we only draw it once
|
||||
if(RoomReflectionGizmoAS == this)
|
||||
{
|
||||
RoomReflectionGizmoAS = null;
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.InteropServices.DllImport("AudioPluginOculusSpatializer")]
|
||||
private static extern int OSP_SetGlobalVoiceLimit(int VoiceLimit);
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e503ea6418d27594caa33b93cac1b06a
|
||||
timeCreated: 1442244775
|
||||
licenseType: Pro
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,47 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
[UnityEditor.InitializeOnLoad]
|
||||
#endif
|
||||
public sealed class ONSPSettings : ScriptableObject
|
||||
{
|
||||
[SerializeField]
|
||||
public int voiceLimit = 100;
|
||||
|
||||
private static ONSPSettings instance;
|
||||
public static ONSPSettings Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
instance = Resources.Load<ONSPSettings>("ONSPSettings");
|
||||
|
||||
// This can happen if the developer never input their App Id into the Unity Editor
|
||||
// and therefore never created the OculusPlatformSettings.asset file
|
||||
// Use a dummy object with defaults for the getters so we don't have a null pointer exception
|
||||
if (instance == null)
|
||||
{
|
||||
instance = ScriptableObject.CreateInstance<ONSPSettings>();
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// Only in the editor should we save it to disk
|
||||
string properPath = System.IO.Path.Combine(UnityEngine.Application.dataPath, "Resources");
|
||||
if (!System.IO.Directory.Exists(properPath))
|
||||
{
|
||||
UnityEditor.AssetDatabase.CreateFolder("Assets", "Resources");
|
||||
}
|
||||
|
||||
string fullPath = System.IO.Path.Combine(
|
||||
System.IO.Path.Combine("Assets", "Resources"),
|
||||
"ONSPSettings.asset");
|
||||
UnityEditor.AssetDatabase.CreateAsset(instance, fullPath);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad074644ff568a14187a3690cfbd7534
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee473b0718fb35e43819a4fed630907a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3bc7afd8ab8c5374bbe5d4e93adac463
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,138 @@
|
||||
%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: BlueprintCam
|
||||
m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 5
|
||||
m_CustomRenderQueue: 2000
|
||||
stringTagMap: {}
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 8400000, guid: 94b649c2bd1ac4cac95049605dc5333d, type: 2}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _BumpMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _DetailNormalMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _ParallaxMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _OcclusionMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _EmissionMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _DetailMask
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _DetailAlbedoMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
data:
|
||||
first:
|
||||
name: _MetallicGlossMap
|
||||
second:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _SrcBlend
|
||||
second: 1
|
||||
data:
|
||||
first:
|
||||
name: _DstBlend
|
||||
second: 0
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: .5
|
||||
data:
|
||||
first:
|
||||
name: _Parallax
|
||||
second: .0199999996
|
||||
data:
|
||||
first:
|
||||
name: _ZWrite
|
||||
second: 1
|
||||
data:
|
||||
first:
|
||||
name: _Glossiness
|
||||
second: .5
|
||||
data:
|
||||
first:
|
||||
name: _BumpScale
|
||||
second: 1
|
||||
data:
|
||||
first:
|
||||
name: _OcclusionStrength
|
||||
second: 1
|
||||
data:
|
||||
first:
|
||||
name: _DetailNormalMapScale
|
||||
second: 1
|
||||
data:
|
||||
first:
|
||||
name: _UVSec
|
||||
second: 0
|
||||
data:
|
||||
first:
|
||||
name: _Mode
|
||||
second: 0
|
||||
data:
|
||||
first:
|
||||
name: _Metallic
|
||||
second: 0
|
||||
m_Colors:
|
||||
data:
|
||||
first:
|
||||
name: _EmissionColor
|
||||
second: {r: 0, g: 0, b: 0, a: 1}
|
||||
data:
|
||||
first:
|
||||
name: _Color
|
||||
second: {r: 1, g: 1, b: 1, a: 1}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da07ab9b78cb0432e95e11e2cb619ea7
|
||||
timeCreated: 1445225813
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,24 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!84 &8400000
|
||||
RenderTexture:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: BlueprintCam
|
||||
m_ImageContentsHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_Width: 400
|
||||
m_Height: 300
|
||||
m_AntiAliasing: 1
|
||||
m_DepthFormat: 2
|
||||
m_ColorFormat: 0
|
||||
m_MipMap: 0
|
||||
m_GenerateMips: 1
|
||||
m_SRGB: 0
|
||||
m_TextureSettings:
|
||||
m_FilterMode: 1
|
||||
m_Aniso: 0
|
||||
m_MipBias: 0
|
||||
m_WrapMode: 1
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 94b649c2bd1ac4cac95049605dc5333d
|
||||
timeCreated: 1445225748
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,73 @@
|
||||
%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: damageGrey
|
||||
m_Shader: {fileID: 10723, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
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: 2800000, guid: 3a9d01385a8b0af4880d46484c7054ce, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 8d95767408d35544c98f92ef7279b8db, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _Glossiness: 0
|
||||
- _InvFade: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2166f6bbfce69594fad494087eca58e8
|
||||
timeCreated: 1478890084
|
||||
licenseType: Pro
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0fa6989a5986bc84fac94157c0aa6511
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cbcda5ce84b6ad34d9fab76dabff48ad
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
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: lambert2
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
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: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 841c3ce718e8b61408005c1cfce6b7de
|
||||
timeCreated: 1478890084
|
||||
licenseType: Pro
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,77 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e13e96301b7c8214dac6883be5b82bfa
|
||||
timeCreated: 1478890084
|
||||
licenseType: Pro
|
||||
ModelImporter:
|
||||
serializedVersion: 19
|
||||
fileIDToRecycleName:
|
||||
100000: //RootNode
|
||||
400000: //RootNode
|
||||
2300000: //RootNode
|
||||
3300000: //RootNode
|
||||
4300000: damageSphere
|
||||
9500000: //RootNode
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleRotations: 1
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
clipAnimations: []
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
importBlendShapes: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
importAnimation: 1
|
||||
copyAvatar: 0
|
||||
humanDescription:
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b019af4714b4bf4d9e0683084234391
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8cdc6e04f0d11184d8acb16c27cc3695
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,154 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43066d8a73c579048891e3c123e252a0
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: tvOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 7f6b62176e469f949be9e9b79373a013
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f078e90486dd8684784c5e47c473fe95
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,154 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f310c3dbad3125d4e8fc2e00bdc2acb4
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: tvOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 6c7cf76d4c1786f49a3ceb1031f37c7b
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@ -0,0 +1,154 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36349feed06587e479724a1a09c0b267
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: tvOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 7b0b16a8026d32f43b3992d38a892a83
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1330d5ad3ec8cb343a18f4a2dbc148c0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 53f9c1f34eb97ec4196ff26de5e242f7
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bad6d2f46b6209f4e94b6a2fab7bcbb4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4109d4977ddfb6548b458318e220ac70
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: baf621c415cae4e44a8bd5c0a5153bbb
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 9.8 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 644caf5607820c7418cf0d248b12f33b
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 35821de39f3ce454cb1997a05350b1ac
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2886eb1248200a94d9eaec82336fbbad
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 19f5799c16616894fb9d40c371a3421b
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9296abd40c7c1934cb668aae07b41c69
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: d22a8feddc754e04489c4b00925e38b3
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e561d0406779ab948b7f155498d101ee
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 4dca2da27f51ad64d8e65a535134449f
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,72 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &125948
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 474528}
|
||||
- component: {fileID: 11496614}
|
||||
m_Layer: 0
|
||||
m_Name: VRCProjectSettings
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &474528
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 125948}
|
||||
serializedVersion: 2
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &11496614
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 125948}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -826769915, guid: 4ecd63eff847044b68db9453ce219299, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
layers:
|
||||
- Default
|
||||
- TransparentFX
|
||||
- Ignore Raycast
|
||||
- Item
|
||||
- Water
|
||||
- UI
|
||||
- reserved6
|
||||
- reserved7
|
||||
- Interactive
|
||||
- Player
|
||||
- PlayerLocal
|
||||
- Environment
|
||||
- UiMenu
|
||||
- Pickup
|
||||
- PickupNoEnvironment
|
||||
- StereoLeft
|
||||
- StereoRight
|
||||
- Walkthrough
|
||||
- MirrorReflection
|
||||
- InternalUI
|
||||
- HardwareObjects
|
||||
- reserved4
|
||||
numLayers: 22
|
||||
layerCollisionArr: 01010100010001010101010100010001010101000101010101010101010101010101010001000101010101010001000101010100010101010101010101010101010101000100010101010101000100010101010001010101010101010101010100000001000000000000000000000000000000000000000000000000000000000101010001000101010101010001000101010100010101010101010101010101000000000000010100000000000000000000000000000000000000000000000001010100010101010101010101010101010101010101010101010101010101010101010001010101010101010101010101010101010101010101010101010101010101000100010101010101000100010101010001010101010101010101010101010100010001010100000100000000000001000101010101010101010101010101010001000101010000010000000000000100010101010101010101010101010101000100010101010101000100010101010001010101010101010101010100000000000001010000000000000000000000000000000000000000000000000101010001000101010000010001010101010000000001010101010101010101000000000000010100000000000100000000000000000101010101010101010101010100010001010100000100010001010101000101000000000000000000000101010001000101010000010001000101010100010100000000000000000000010101000100010101000001000100010101010001010101010101010101010101010100010001010101010100000001010101000101010101010101010101010000000000000101000000000000000000000000000000000000000000000000010101000100010101010101000000010101010001010101010101010101010101010100010001010101010100000001010101000101010101010101010101010101010001000101010101010001010000010100010101010101010101010101010101000100010101010101000101000001010001010101010101010101010101010100010001010101010100010100000101000101010101010101010101010101010001000101010101010001010000010100010101010101010101010101010101000100010101010101000101000001010001010101010101010101010101010100010001010101010100010100000101000101010101010101010101010101010001000101010101010001010000010100010101010101010101010101010101000100010101010101000101000001010001010101010101010101010101010100010001010101010100010100000101000101010101010101010101010101010001000101010101010001010000010100010101010101010101010101
|
||||
queriesHitTriggers: 0
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dce0dda226bd1f147a34f9b4660f5992
|
||||
timeCreated: 1469565980
|
||||
licenseType: Pro
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d7d57371bad74d4c95276138d127122
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ee7e01bfeee81d46967673023437f22
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67affaa038c4a84418ef9af616482b14
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8ef787823eaa004085621533241a424
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1357539684, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: AvatarPerformanceStatLevels_Quest
|
||||
m_EditorClassIdentifier:
|
||||
excellent: {fileID: 11400000, guid: e750436d0bab192489da0debe67ee879, type: 2}
|
||||
good: {fileID: 11400000, guid: b25db21b17fba3d49a7248568fdb9870, type: 2}
|
||||
medium: {fileID: 11400000, guid: 31feb7417182a80469408649071d10ac, type: 2}
|
||||
poor: {fileID: 11400000, guid: 171503e8193e15447967be1e3ca1e714, type: 2}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f0f530dea3891c04e8ab37831627e702
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Excellent_Quest
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 7500
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 1.25, y: 1.25, z: 1.25}
|
||||
skinnedMeshCount: 1
|
||||
meshCount: 1
|
||||
materialCount: 1
|
||||
animatorCount: 1
|
||||
boneCount: 75
|
||||
lightCount: 0
|
||||
particleSystemCount: 0
|
||||
particleTotalCount: 0
|
||||
particleMaxMeshPolyCount: 0
|
||||
particleTrailsEnabled: 0
|
||||
particleCollisionEnabled: 0
|
||||
trailRendererCount: 0
|
||||
lineRendererCount: 0
|
||||
clothCount: 0
|
||||
clothMaxVertices: 0
|
||||
physicsColliderCount: 0
|
||||
physicsRigidbodyCount: 0
|
||||
audioSourceCount: 0
|
||||
textureMegabytes: 10
|
||||
physBone:
|
||||
componentCount: 0
|
||||
transformCount: 0
|
||||
colliderCount: 0
|
||||
collisionCheckCount: 0
|
||||
contactCount: 2
|
||||
constraintsCount: 30
|
||||
constraintDepth: 5
|
||||
raycastCount: 1
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e750436d0bab192489da0debe67ee879
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Good_Quest
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 10000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2, y: 2, z: 2}
|
||||
skinnedMeshCount: 1
|
||||
meshCount: 1
|
||||
materialCount: 1
|
||||
animatorCount: 1
|
||||
boneCount: 90
|
||||
lightCount: 0
|
||||
particleSystemCount: 0
|
||||
particleTotalCount: 0
|
||||
particleMaxMeshPolyCount: 0
|
||||
particleTrailsEnabled: 0
|
||||
particleCollisionEnabled: 0
|
||||
trailRendererCount: 0
|
||||
lineRendererCount: 0
|
||||
clothCount: 0
|
||||
clothMaxVertices: 0
|
||||
physicsColliderCount: 0
|
||||
physicsRigidbodyCount: 0
|
||||
audioSourceCount: 0
|
||||
textureMegabytes: 18
|
||||
physBone:
|
||||
componentCount: 4
|
||||
transformCount: 16
|
||||
colliderCount: 4
|
||||
collisionCheckCount: 16
|
||||
contactCount: 4
|
||||
constraintsCount: 60
|
||||
constraintDepth: 15
|
||||
raycastCount: 2
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b25db21b17fba3d49a7248568fdb9870
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Medium_Quest
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 15000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2.5, y: 3, z: 2.5}
|
||||
skinnedMeshCount: 2
|
||||
meshCount: 2
|
||||
materialCount: 2
|
||||
animatorCount: 1
|
||||
boneCount: 150
|
||||
lightCount: 0
|
||||
particleSystemCount: 0
|
||||
particleTotalCount: 0
|
||||
particleMaxMeshPolyCount: 0
|
||||
particleTrailsEnabled: 0
|
||||
particleCollisionEnabled: 0
|
||||
trailRendererCount: 0
|
||||
lineRendererCount: 0
|
||||
clothCount: 0
|
||||
clothMaxVertices: 0
|
||||
physicsColliderCount: 0
|
||||
physicsRigidbodyCount: 0
|
||||
audioSourceCount: 0
|
||||
textureMegabytes: 25
|
||||
physBone:
|
||||
componentCount: 6
|
||||
transformCount: 32
|
||||
colliderCount: 8
|
||||
collisionCheckCount: 32
|
||||
contactCount: 8
|
||||
constraintsCount: 120
|
||||
constraintDepth: 35
|
||||
raycastCount: 4
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31feb7417182a80469408649071d10ac
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Poor_Quest
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 20000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2.5, y: 3, z: 2.5}
|
||||
skinnedMeshCount: 2
|
||||
meshCount: 2
|
||||
materialCount: 4
|
||||
animatorCount: 2
|
||||
boneCount: 150
|
||||
lightCount: 0
|
||||
particleSystemCount: 2
|
||||
particleTotalCount: 200
|
||||
particleMaxMeshPolyCount: 400
|
||||
particleTrailsEnabled: 1
|
||||
particleCollisionEnabled: 1
|
||||
trailRendererCount: 1
|
||||
lineRendererCount: 1
|
||||
clothCount: 0
|
||||
clothMaxVertices: 0
|
||||
physicsColliderCount: 0
|
||||
physicsRigidbodyCount: 0
|
||||
audioSourceCount: 0
|
||||
textureMegabytes: 40
|
||||
physBone:
|
||||
componentCount: 8
|
||||
transformCount: 64
|
||||
colliderCount: 16
|
||||
collisionCheckCount: 64
|
||||
contactCount: 16
|
||||
constraintsCount: 150
|
||||
constraintDepth: 50
|
||||
raycastCount: 8
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 171503e8193e15447967be1e3ca1e714
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 08d4ef81e522ab244bb72f5b8638a351
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1357539684, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: AvatarPerformanceStatLevels_Windows
|
||||
m_EditorClassIdentifier:
|
||||
excellent: {fileID: 11400000, guid: 88c46902276e7624e8adda9020bef28b, type: 2}
|
||||
good: {fileID: 11400000, guid: 38957d57ab5a7f145b954d20fc24b1d4, type: 2}
|
||||
medium: {fileID: 11400000, guid: 65edaefdc2f87414594559cb89383b5b, type: 2}
|
||||
poor: {fileID: 11400000, guid: 595049d4e162571489f2437524d98a31, type: 2}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 438f83f183e95f740877d4c22ed91af2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Excellent_Windows
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 32000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 1.25, y: 1.25, z: 1.25}
|
||||
skinnedMeshCount: 1
|
||||
meshCount: 4
|
||||
materialCount: 4
|
||||
animatorCount: 1
|
||||
boneCount: 75
|
||||
lightCount: 0
|
||||
particleSystemCount: 0
|
||||
particleTotalCount: 0
|
||||
particleMaxMeshPolyCount: 0
|
||||
particleTrailsEnabled: 0
|
||||
particleCollisionEnabled: 0
|
||||
trailRendererCount: 1
|
||||
lineRendererCount: 1
|
||||
clothCount: 0
|
||||
clothMaxVertices: 0
|
||||
physicsColliderCount: 0
|
||||
physicsRigidbodyCount: 0
|
||||
audioSourceCount: 1
|
||||
textureMegabytes: 40
|
||||
physBone:
|
||||
componentCount: 4
|
||||
transformCount: 16
|
||||
colliderCount: 4
|
||||
collisionCheckCount: 32
|
||||
contactCount: 8
|
||||
constraintsCount: 100
|
||||
constraintDepth: 20
|
||||
raycastCount: 1
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88c46902276e7624e8adda9020bef28b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Good_Windows
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 70000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2, y: 2, z: 2}
|
||||
skinnedMeshCount: 2
|
||||
meshCount: 8
|
||||
materialCount: 8
|
||||
animatorCount: 4
|
||||
boneCount: 150
|
||||
lightCount: 0
|
||||
particleSystemCount: 4
|
||||
particleTotalCount: 300
|
||||
particleMaxMeshPolyCount: 1000
|
||||
particleTrailsEnabled: 0
|
||||
particleCollisionEnabled: 0
|
||||
trailRendererCount: 2
|
||||
lineRendererCount: 2
|
||||
clothCount: 1
|
||||
clothMaxVertices: 50
|
||||
physicsColliderCount: 1
|
||||
physicsRigidbodyCount: 1
|
||||
audioSourceCount: 4
|
||||
textureMegabytes: 75
|
||||
physBone:
|
||||
componentCount: 8
|
||||
transformCount: 64
|
||||
colliderCount: 8
|
||||
collisionCheckCount: 128
|
||||
contactCount: 16
|
||||
constraintsCount: 250
|
||||
constraintDepth: 50
|
||||
raycastCount: 4
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38957d57ab5a7f145b954d20fc24b1d4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Medium_Windows
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 70000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2.5, y: 3, z: 2.5}
|
||||
skinnedMeshCount: 8
|
||||
meshCount: 16
|
||||
materialCount: 16
|
||||
animatorCount: 16
|
||||
boneCount: 256
|
||||
lightCount: 0
|
||||
particleSystemCount: 8
|
||||
particleTotalCount: 1000
|
||||
particleMaxMeshPolyCount: 2000
|
||||
particleTrailsEnabled: 1
|
||||
particleCollisionEnabled: 1
|
||||
trailRendererCount: 4
|
||||
lineRendererCount: 4
|
||||
clothCount: 1
|
||||
clothMaxVertices: 100
|
||||
physicsColliderCount: 8
|
||||
physicsRigidbodyCount: 8
|
||||
audioSourceCount: 8
|
||||
textureMegabytes: 110
|
||||
physBone:
|
||||
componentCount: 16
|
||||
transformCount: 128
|
||||
colliderCount: 16
|
||||
collisionCheckCount: 256
|
||||
contactCount: 24
|
||||
constraintsCount: 300
|
||||
constraintDepth: 80
|
||||
raycastCount: 8
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 65edaefdc2f87414594559cb89383b5b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1734077097, guid: db48663b319a020429e3b1265f97aff1, type: 3}
|
||||
m_Name: Poor_Windows
|
||||
m_EditorClassIdentifier:
|
||||
polyCount: 70000
|
||||
aabb:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 2.5, y: 3, z: 2.5}
|
||||
skinnedMeshCount: 16
|
||||
meshCount: 24
|
||||
materialCount: 32
|
||||
animatorCount: 32
|
||||
boneCount: 400
|
||||
lightCount: 1
|
||||
particleSystemCount: 16
|
||||
particleTotalCount: 2500
|
||||
particleMaxMeshPolyCount: 5000
|
||||
particleTrailsEnabled: 1
|
||||
particleCollisionEnabled: 1
|
||||
trailRendererCount: 8
|
||||
lineRendererCount: 8
|
||||
clothCount: 1
|
||||
clothMaxVertices: 200
|
||||
physicsColliderCount: 8
|
||||
physicsRigidbodyCount: 8
|
||||
audioSourceCount: 8
|
||||
textureMegabytes: 150
|
||||
physBone:
|
||||
componentCount: 32
|
||||
transformCount: 256
|
||||
colliderCount: 32
|
||||
collisionCheckCount: 512
|
||||
contactCount: 32
|
||||
constraintsCount: 350
|
||||
constraintDepth: 100
|
||||
raycastCount: 15
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 595049d4e162571489f2437524d98a31
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<aws
|
||||
correctForClockSkew="true">
|
||||
|
||||
<logging
|
||||
logTo="UnityLogger"
|
||||
logResponses="Always"
|
||||
logMetrics="true"
|
||||
logMetricsFormat="JSON" />
|
||||
|
||||
<s3 useSignatureVersion4="true" />
|
||||
|
||||
<mobileAnalytics
|
||||
sessionTimeout = "5"
|
||||
maxDBSize = "5242880"
|
||||
dbWarningThreshold = "0.9"
|
||||
maxRequestSize = "102400"
|
||||
allowUseDataNetwork = "false"
|
||||
/>
|
||||
|
||||
</aws>
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4acdf7b3eb426480bb5acf58638bd493
|
||||
timeCreated: 1448068597
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,49 @@
|
||||
{
|
||||
"endpoints": {
|
||||
"*/sts": {
|
||||
"endpoint": "sts.amazonaws.com"
|
||||
},
|
||||
"*/route53": {
|
||||
"endpoint": "route53.amazonaws.com"
|
||||
},
|
||||
"*/route53domains": {
|
||||
"endpoint": "route53domains.us-east-1.amazonaws.com"
|
||||
},
|
||||
"us-east-1/s3": {
|
||||
"endpoint": "s3.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"us-west-1/s3": {
|
||||
"endpoint": "s3-us-west-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"us-west-2/s3": {
|
||||
"endpoint": "s3-us-west-2.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"ap-northeast-1/s3": {
|
||||
"endpoint": "s3-ap-northeast-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"ap-southeast-1/s3": {
|
||||
"endpoint": "s3-ap-southeast-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"ap-southeast-2/s3": {
|
||||
"endpoint": "s3-ap-southeast-2.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"sa-east-1/s3": {
|
||||
"endpoint": "s3-sa-east-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"eu-west-1/s3": {
|
||||
"endpoint": "s3-eu-west-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
},
|
||||
"us-gov-west-1/s3": {
|
||||
"endpoint": "s3-us-gov-west-1.amazonaws.com",
|
||||
"signature-version" : "2"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd5614b710e774040ab715161f7dfaca
|
||||
timeCreated: 1448068597
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,57 @@
|
||||
{
|
||||
"version": 2,
|
||||
"endpoints": {
|
||||
"*/*": {
|
||||
"endpoint": "{service}.{region}.amazonaws.com"
|
||||
},
|
||||
"cn-north-1/*": {
|
||||
"endpoint": "{service}.{region}.amazonaws.com.cn",
|
||||
"signatureVersion": "v4"
|
||||
},
|
||||
"us-gov-west-1/iam": {
|
||||
"endpoint": "iam.us-gov.amazonaws.com"
|
||||
},
|
||||
"us-gov-west-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"*/cloudfront": {
|
||||
"endpoint": "cloudfront.amazonaws.com"
|
||||
},
|
||||
"*/iam": {
|
||||
"endpoint": "iam.amazonaws.com"
|
||||
},
|
||||
"*/importexport": {
|
||||
"endpoint": "importexport.amazonaws.com"
|
||||
},
|
||||
"*/route53": {
|
||||
"endpoint": "route53.amazonaws.com"
|
||||
},
|
||||
"us-east-1/sdb": {
|
||||
"endpoint": "sdb.amazonaws.com"
|
||||
},
|
||||
"us-east-1/s3": {
|
||||
"endpoint": "s3.amazonaws.com"
|
||||
},
|
||||
"us-west-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"us-west-2/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"eu-west-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"ap-southeast-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"ap-southeast-2/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"ap-northeast-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
},
|
||||
"sa-east-1/s3": {
|
||||
"endpoint": "s3-{region}.amazonaws.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 37b4abef7420c4c7ea71dbe76757498a
|
||||
timeCreated: 1448068597
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8b377688f9256ef409a6e02ace3605ab
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36c0d886a26373c46be857f2fc441071
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,20 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace VRC.SDKBase
|
||||
{
|
||||
public class AudioManagerSettings
|
||||
{
|
||||
public const float MinVoiceSendDistance = 25.0f; // meters
|
||||
public const float MaxVoiceSendDistancePctOfFarRange = 0.5f;
|
||||
public const float VoiceFadeOutDistancePctOfFarRange = 0.25f;
|
||||
public const float RoomAudioGain = 10f; // dB
|
||||
public const float RoomAudioMaxRange = 80f; // meters
|
||||
public const float VoiceGain = 15f; // dB
|
||||
public const float VoiceMaxRange = 25f; // meters, this is half the oculus inv sq max range
|
||||
public const float LipsyncGain = 1f; // multiplier, not dB!
|
||||
public const float AvatarAudioMaxGain = 10f; // dB
|
||||
public const float AvatarAudioMaxRange = 40f; // meters
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: acadc6659c5ab3446ad0d5de2563f95f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,20 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace VRCSDK2
|
||||
{
|
||||
public class CommunityLabsConstants
|
||||
{
|
||||
public const string COMMUNITY_LABS_DOCUMENTATION_URL = "https://docs.vrchat.com/docs/vrchat-community-labs";
|
||||
|
||||
public const string MANAGE_WORLD_IN_BROWSER_STRING = "Manage World in Browser";
|
||||
public const string READ_COMMUNITY_LABS_DOCS_STRING = "Read Community Labs Docs";
|
||||
|
||||
public const string UPLOADED_CONTENT_SUCCESSFULLY_MESSAGE = "Content Successfully Uploaded!";
|
||||
|
||||
public const string UPLOADED_NEW_PRIVATE_WORLD_CONFIRMATION_MESSAGE = "You've uploaded a private world. You can find it on the \"Mine\" row in your worlds menu.";
|
||||
public const string UPDATED_PRIVATE_WORLD_CONFIRMATION_MESSAGE = "You've updated your private world. You can find it on the \"Mine\" row in your worlds menu.";
|
||||
public const string PUBLISHED_WORLD_TO_COMMUNITY_LABS_CONFIRMATION_MESSAGE = "You've uploaded and published a world to Community Labs.";
|
||||
public const string UPDATED_COMMUNITY_LABS_WORLD_CONFIRMATION_MESSAGE = "You've updated your Community Labs world.";
|
||||
public const string UPDATED_PUBLIC_WORLD_CONFIRMATION_MESSAGE = "You've updated your public world.";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d047eaa3325d654aa62ccad6f73eb93
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace VRC. SDKBase
|
||||
{
|
||||
public static class GameViewMethods
|
||||
{
|
||||
private static readonly Type GameViewType = System.Type.GetType("UnityEditor.GameView,UnityEditor");
|
||||
private static readonly Type PlayModeViewType = System.Type.GetType("UnityEditor.PlayModeView, UnityEditor");
|
||||
|
||||
public static int GetSelectedSizeIndex()
|
||||
{
|
||||
return (int) GetSelectedSizeProperty().GetValue(GetPlayModeViewObject());
|
||||
}
|
||||
|
||||
public static void SetSelectedSizeIndex(int value)
|
||||
{
|
||||
var selectedSizeIndexProp = GetSelectedSizeProperty();
|
||||
selectedSizeIndexProp.SetValue(GetPlayModeViewObject(), value, null);
|
||||
}
|
||||
|
||||
// Set it to something else just to force a refresh
|
||||
public static void ResizeGameView()
|
||||
{
|
||||
int current = GetSelectedSizeIndex();
|
||||
SetSelectedSizeIndex(current == 0 ? 1 : 0);
|
||||
}
|
||||
|
||||
private static PropertyInfo GetSelectedSizeProperty()
|
||||
{
|
||||
return GameViewType.GetProperty("selectedSizeIndex",
|
||||
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
|
||||
}
|
||||
|
||||
private static Object GetPlayModeViewObject()
|
||||
{
|
||||
MethodInfo GetMainPlayModeView = PlayModeViewType.GetMethod("GetMainPlayModeView",
|
||||
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
|
||||
return GetMainPlayModeView.Invoke(null, null);
|
||||
}
|
||||
|
||||
public static void Repaint()
|
||||
{
|
||||
MethodInfo RepaintAll = PlayModeViewType.GetMethod("RepaintAll", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
RepaintAll.Invoke(GetPlayModeViewObject(), null);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0c461e358764cd1ab95544e34b0346c
|
||||
timeCreated: 1627603592
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0f7ad406aeb6f64ab5c36b429a466b7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,51 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
public class FallbackMaterialCache
|
||||
{
|
||||
private readonly Dictionary<Material, Material> _fallbackMaterialCache = new Dictionary<Material, Material>();
|
||||
|
||||
public void AddFallbackMaterial(Material material, Material fallbackMaterial)
|
||||
{
|
||||
if(!_fallbackMaterialCache.ContainsKey(material))
|
||||
{
|
||||
_fallbackMaterialCache.Add(material, fallbackMaterial);
|
||||
}
|
||||
else
|
||||
{
|
||||
#pragma warning disable RS0030 // Banned APIs
|
||||
Debug.LogError($"Attempted to add a duplicate fallback material '{fallbackMaterial.name}' for original material '{material.name}'.");
|
||||
#pragma warning restore RS0030
|
||||
}
|
||||
}
|
||||
|
||||
public bool TryGetFallbackMaterial(Material material, out Material fallbackMaterial)
|
||||
{
|
||||
if(material != null)
|
||||
{
|
||||
return _fallbackMaterialCache.TryGetValue(material, out fallbackMaterial);
|
||||
}
|
||||
|
||||
fallbackMaterial = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Material[] cachedFallbackMaterials = _fallbackMaterialCache.Values.ToArray();
|
||||
for(int i = cachedFallbackMaterials.Length - 1; i >= 0; i--)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Object.Destroy(cachedFallbackMaterials[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Object.DestroyImmediate(cachedFallbackMaterials[i]);
|
||||
}
|
||||
}
|
||||
|
||||
_fallbackMaterialCache.Clear();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 10121679f780956408f9a434a526f553
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,325 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.SceneManagement;
|
||||
using VRC.Core;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
|
||||
namespace VRCSDK2
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
|
||||
[Obsolete("Runtime uploads are deprecated. Use methods provided by the VRC.SDKBase.Editor.Api.VRCApi class for uploads")]
|
||||
public class RuntimeAPICreation : MonoBehaviour
|
||||
{
|
||||
public VRC.Core.PipelineManager pipelineManager;
|
||||
|
||||
protected bool forceNewFileCreation = false;
|
||||
protected bool useFileApi = false;
|
||||
|
||||
protected bool isUploading = false;
|
||||
protected float uploadProgress = 0f;
|
||||
protected string uploadMessage;
|
||||
protected string uploadTitle;
|
||||
|
||||
protected string uploadVrcPath;
|
||||
protected string uploadUnityPackagePath;
|
||||
|
||||
protected string cloudFrontAssetUrl;
|
||||
protected string cloudFrontImageUrl;
|
||||
protected string cloudFrontUnityPackageUrl;
|
||||
|
||||
protected CameraImageCapture imageCapture;
|
||||
|
||||
private bool cancelRequested = false;
|
||||
|
||||
public static bool publishingToCommunityLabs = false;
|
||||
|
||||
private Dictionary<string, string> mRetryState = new Dictionary<string, string>();
|
||||
|
||||
protected bool isUpdate { get { return pipelineManager.completedSDKPipeline; } }
|
||||
|
||||
protected void Start()
|
||||
{
|
||||
if (!Application.isEditor || !Application.isPlaying)
|
||||
return;
|
||||
|
||||
PipelineSaver ps = GameObject.FindFirstObjectByType<PipelineSaver>();
|
||||
pipelineManager = ps.gameObject.GetComponent<PipelineManager>();
|
||||
|
||||
imageCapture = GetComponent<CameraImageCapture>();
|
||||
imageCapture.shotCamera = GameObject.Find("VRCCam").GetComponent<Camera>();
|
||||
|
||||
LoadUploadRetryStateFromCache();
|
||||
|
||||
forceNewFileCreation = UnityEditor.EditorPrefs.GetBool("forceNewFileCreation", true);
|
||||
useFileApi = UnityEditor.EditorPrefs.GetBool("useFileApi", false);
|
||||
|
||||
API.SetOnlineMode(true);
|
||||
}
|
||||
|
||||
protected void Update()
|
||||
{
|
||||
if (isUploading)
|
||||
{
|
||||
bool cancelled = UnityEditor.EditorUtility.DisplayCancelableProgressBar(uploadTitle, uploadMessage, uploadProgress);
|
||||
if (cancelled)
|
||||
{
|
||||
cancelRequested = true;
|
||||
}
|
||||
|
||||
if (EditorApplication.isPaused)
|
||||
EditorApplication.isPaused = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void LoadUploadRetryStateFromCache()
|
||||
{
|
||||
try
|
||||
{
|
||||
string json = File.ReadAllText(GetUploadRetryStateFilePath());
|
||||
mRetryState = VRC.Tools.ObjDictToStringDict(VRC.Tools.JsonDecode(json) as Dictionary<string, object>);
|
||||
|
||||
Debug.LogFormat("<color=yellow> loaded retry state: {0}</color>", json);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// normal case
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log("Loaded upload retry state from: " + GetUploadRetryStateFilePath());
|
||||
}
|
||||
|
||||
protected void SaveUploadRetryState(string key, string val)
|
||||
{
|
||||
if (string.IsNullOrEmpty(val))
|
||||
return;
|
||||
mRetryState[key] = val;
|
||||
SaveUploadRetryState();
|
||||
}
|
||||
|
||||
protected void SaveUploadRetryState()
|
||||
{
|
||||
try
|
||||
{
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(GetUploadRetryStateFilePath()));
|
||||
string json = VRC.Tools.JsonEncode(mRetryState);
|
||||
File.WriteAllText(GetUploadRetryStateFilePath(), json);
|
||||
|
||||
Debug.LogFormat("<color=yellow> wrote retry state: {0}</color>", json);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError("Couldn't save upload retry state: " + GetUploadRetryStateFilePath() + "\n" + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log("Saved upload retry state to: " + GetUploadRetryStateFilePath());
|
||||
}
|
||||
|
||||
protected void ClearUploadRetryState()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!File.Exists(GetUploadRetryStateFilePath()))
|
||||
return;
|
||||
|
||||
File.Delete(GetUploadRetryStateFilePath());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError("Couldn't delete upload retry state: " + GetUploadRetryStateFilePath() + "\n" + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log("Cleared upload retry state at: " + GetUploadRetryStateFilePath());
|
||||
}
|
||||
|
||||
protected string GetUploadRetryStateFilePath()
|
||||
{
|
||||
string id = UnityEditor.AssetDatabase.AssetPathToGUID(SceneManager.GetActiveScene().path);
|
||||
return Path.Combine(VRC.Tools.GetTempFolderPath(id), "upload_retry.dat");
|
||||
}
|
||||
|
||||
protected string GetUploadRetryStateValue(string key)
|
||||
{
|
||||
return mRetryState.ContainsKey(key) ? mRetryState[key] : "";
|
||||
}
|
||||
|
||||
protected virtual void DisplayUpdateCompletedDialog(string contentUrl=null)
|
||||
{
|
||||
if (UnityEditor.EditorUtility.DisplayDialog("VRChat SDK", "Update Complete! Launch VRChat to see your uploaded content." + (null==contentUrl ? "" : "\n\nManage content at: " + contentUrl ), (null == contentUrl) ? "Okay" : CommunityLabsConstants.MANAGE_WORLD_IN_BROWSER_STRING, (null == contentUrl) ? "" : "Done" ))
|
||||
{
|
||||
if (null!=contentUrl)
|
||||
{
|
||||
Application.OpenURL(contentUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void OnSDKPipelineComplete(string contentUrl=null)
|
||||
{
|
||||
VRC.Core.Logger.Log("OnSDKPipelineComplete", API.LOG_CATEGORY);
|
||||
isUploading = false;
|
||||
pipelineManager.completedSDKPipeline = true;
|
||||
ClearUploadRetryState();
|
||||
UnityEditor.EditorPrefs.SetBool("forceNewFileCreation", false);
|
||||
UnityEditor.EditorApplication.isPaused = false;
|
||||
UnityEditor.EditorApplication.isPlaying = false;
|
||||
UnityEditor.EditorUtility.ClearProgressBar();
|
||||
DisplayUpdateCompletedDialog(contentUrl);
|
||||
}
|
||||
|
||||
protected void OnSDKPipelineError(string error, string details)
|
||||
{
|
||||
VRC.Core.Logger.Log("OnSDKPipelineError: " + error + " - " + details, API.LOG_CATEGORY);
|
||||
isUploading = false;
|
||||
pipelineManager.completedSDKPipeline = true;
|
||||
UnityEditor.EditorApplication.isPaused = false;
|
||||
UnityEditor.EditorApplication.isPlaying = false;
|
||||
UnityEditor.EditorUtility.ClearProgressBar();
|
||||
if (cancelRequested)
|
||||
UnityEditor.EditorUtility.DisplayDialog("VRChat SDK", "The update was cancelled.", "Okay");
|
||||
else
|
||||
UnityEditor.EditorUtility.DisplayDialog("VRChat SDK", "Error updating content. " + error + "\n" + details, "Okay");
|
||||
}
|
||||
|
||||
protected void SetUploadProgress(string title, string message, float progress)
|
||||
{
|
||||
uploadTitle = title;
|
||||
uploadMessage = message;
|
||||
uploadProgress = progress;
|
||||
}
|
||||
|
||||
protected bool WasCancelRequested(ApiFile apiFile)
|
||||
{
|
||||
return cancelRequested;
|
||||
}
|
||||
|
||||
protected void PrepareUnityPackageForS3(string packagePath, string blueprintId, int version, AssetVersion assetVersion)
|
||||
{
|
||||
uploadUnityPackagePath = Application.temporaryCachePath + "/" + blueprintId + "_" + version.ToString() + "_" + Application.unityVersion + "_" + assetVersion.ApiVersion + "_" + VRC.Tools.Platform +
|
||||
"_" + API.GetServerEnvironmentForApiUrl() + ".unitypackage";
|
||||
uploadUnityPackagePath.Trim();
|
||||
uploadUnityPackagePath.Replace(' ', '_');
|
||||
|
||||
if (System.IO.File.Exists(uploadUnityPackagePath))
|
||||
System.IO.File.Delete(uploadUnityPackagePath);
|
||||
|
||||
System.IO.File.Copy(packagePath, uploadUnityPackagePath);
|
||||
}
|
||||
|
||||
protected void PrepareVRCPathForS3(string abPath, string blueprintId, int version, AssetVersion assetVersion)
|
||||
{
|
||||
uploadVrcPath = Application.temporaryCachePath + "/" + blueprintId + "_" + version.ToString() + "_" + Application.unityVersion + "_" + assetVersion.ApiVersion + "_" + VRC.Tools.Platform + "_" + API.GetServerEnvironmentForApiUrl() + System.IO.Path.GetExtension(abPath);
|
||||
uploadVrcPath.Trim();
|
||||
uploadVrcPath.Replace(' ', '_');
|
||||
|
||||
if (System.IO.File.Exists(uploadVrcPath))
|
||||
System.IO.File.Delete(uploadVrcPath);
|
||||
|
||||
System.IO.File.Copy(abPath, uploadVrcPath);
|
||||
}
|
||||
|
||||
protected IEnumerator UploadFile(string filename, string existingFileUrl, string friendlyFilename, string fileType, Action<string> onSuccess)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filename))
|
||||
yield break;
|
||||
VRC.Core.Logger.Log("Uploading " + fileType + "(" + filename + ") ...", API.LOG_CATEGORY);
|
||||
SetUploadProgress("Uploading " + fileType + "...", "", 0.0f);
|
||||
|
||||
string fileId = GetUploadRetryStateValue(filename);
|
||||
if (string.IsNullOrEmpty(fileId))
|
||||
fileId = isUpdate ? ApiFile.ParseFileIdFromFileAPIUrl(existingFileUrl) : "";
|
||||
string errorStr = "";
|
||||
string newFileUrl = "";
|
||||
|
||||
|
||||
yield return StartCoroutine(ApiFileHelper.Instance.UploadFile(filename, forceNewFileCreation ? "" : fileId, friendlyFilename,
|
||||
delegate (ApiFile apiFile, string message)
|
||||
{
|
||||
newFileUrl = apiFile.GetFileURL();
|
||||
if (VRC.Core.Logger.CategoryIsEnabled(API.LOG_CATEGORY))
|
||||
VRC.Core.Logger.Log(fileType + " upload succeeded: " + message + " (" + filename +
|
||||
") => " + apiFile.ToString(), API.LOG_CATEGORY);
|
||||
else
|
||||
VRC.Core.Logger.Log(fileType + " upload succeeded ");
|
||||
},
|
||||
delegate (ApiFile apiFile, string error)
|
||||
{
|
||||
SaveUploadRetryState(filename, apiFile.id);
|
||||
|
||||
errorStr = error;
|
||||
Debug.LogError(fileType + " upload failed: " + error + " (" + filename +
|
||||
") => " + apiFile.ToString());
|
||||
},
|
||||
delegate (ApiFile apiFile, string status, string subStatus, float pct)
|
||||
{
|
||||
SetUploadProgress("Uploading " + fileType + "...", status + (!string.IsNullOrEmpty(subStatus) ? " (" + subStatus + ")" : ""), pct);
|
||||
},
|
||||
WasCancelRequested
|
||||
));
|
||||
|
||||
if (!string.IsNullOrEmpty(errorStr))
|
||||
{
|
||||
OnSDKPipelineError(fileType + " upload failed.", errorStr);
|
||||
yield break;
|
||||
}
|
||||
|
||||
if (onSuccess != null)
|
||||
onSuccess(newFileUrl);
|
||||
}
|
||||
|
||||
protected IEnumerator UpdateImage(string existingFileUrl, string friendlyFileName)
|
||||
{
|
||||
string imagePath = imageCapture.TakePicture();
|
||||
|
||||
if (!string.IsNullOrEmpty(imagePath))
|
||||
{
|
||||
yield return StartCoroutine(UploadFile(imagePath, existingFileUrl, friendlyFileName, "Image",
|
||||
delegate (string fileUrl)
|
||||
{
|
||||
cloudFrontImageUrl = fileUrl;
|
||||
}
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual IEnumerator CreateBlueprint()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected virtual IEnumerator UpdateBlueprint()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected bool ValidateNameInput(InputField nameInput)
|
||||
{
|
||||
bool isValid = true;
|
||||
if (string.IsNullOrEmpty(nameInput.text))
|
||||
{
|
||||
isUploading = false;
|
||||
UnityEditor.EditorUtility.DisplayDialog("Invalid Input", "Cannot leave the name field empty.", "OK");
|
||||
isValid = false;
|
||||
}
|
||||
return isValid;
|
||||
}
|
||||
|
||||
protected bool ValidateAssetBundleBlueprintID(string blueprintID)
|
||||
{
|
||||
string lastBuiltID = UnityEditor.EditorPrefs.GetString("lastBuiltAssetBundleBlueprintID", "");
|
||||
return !string.IsNullOrEmpty(lastBuiltID) && lastBuiltID == blueprintID;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3132e0ab7e16494a9d492087a1ca447
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -0,0 +1,421 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using VRC.Core;
|
||||
using VRC.SDKBase;
|
||||
using VRC.SDK3.Image;
|
||||
|
||||
namespace VRCSDK2
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
[Obsolete("Runtime uploads are deprecated. Use methods provided by the VRC.SDKBase.Editor.Api.VRCApi class for uploads")]
|
||||
public class RuntimeBlueprintCreation : RuntimeAPICreation
|
||||
{
|
||||
public GameObject waitingPanel;
|
||||
public GameObject blueprintPanel;
|
||||
public GameObject errorPanel;
|
||||
|
||||
public Text titleText;
|
||||
public InputField blueprintName;
|
||||
public InputField blueprintDescription;
|
||||
public RawImage bpImage;
|
||||
public Image liveBpImage;
|
||||
public Toggle shouldUpdateImageToggle;
|
||||
public Toggle contentSex;
|
||||
public Toggle contentViolence;
|
||||
public Toggle contentGore;
|
||||
public Toggle contentOther;
|
||||
public Toggle developerAvatar;
|
||||
public Toggle sharePrivate;
|
||||
public Toggle sharePublic;
|
||||
public Toggle tagFallback;
|
||||
|
||||
public UnityEngine.UI.Button uploadButton;
|
||||
|
||||
private ApiAvatar apiAvatar;
|
||||
|
||||
new void Start()
|
||||
{
|
||||
if (!Application.isEditor || !Application.isPlaying)
|
||||
return;
|
||||
|
||||
base.Start();
|
||||
|
||||
var desc = pipelineManager.GetComponent<VRC.SDKBase.VRC_AvatarDescriptor>();
|
||||
desc.PositionPortraitCamera(imageCapture.shotCamera.transform);
|
||||
|
||||
Application.runInBackground = true;
|
||||
UnityEngine.XR.XRSettings.enabled = false;
|
||||
|
||||
uploadButton.onClick.AddListener(SetupUpload);
|
||||
|
||||
shouldUpdateImageToggle.onValueChanged.AddListener(ToggleUpdateImage);
|
||||
|
||||
Login();
|
||||
}
|
||||
|
||||
void LoginErrorCallback(string obj)
|
||||
{
|
||||
VRC.Core.Logger.LogError("Could not log in - " + obj);
|
||||
blueprintPanel.SetActive(false);
|
||||
errorPanel.SetActive(true);
|
||||
}
|
||||
|
||||
void Login()
|
||||
{
|
||||
if (!ApiCredentials.Load())
|
||||
LoginErrorCallback("Not logged in");
|
||||
else
|
||||
APIUser.InitialFetchCurrentUser(
|
||||
delegate (ApiModelContainer<APIUser> c)
|
||||
{
|
||||
pipelineManager.user = c.Model as APIUser;
|
||||
|
||||
ApiAvatar av = new ApiAvatar() { id = pipelineManager.blueprintId };
|
||||
av.Get(false,
|
||||
(c2) =>
|
||||
{
|
||||
VRC.Core.Logger.Log("<color=magenta>Updating an existing avatar.</color>", API.LOG_CATEGORY);
|
||||
apiAvatar = c2.Model as ApiAvatar;
|
||||
pipelineManager.completedSDKPipeline = !string.IsNullOrEmpty(apiAvatar.authorId);
|
||||
SetupUI();
|
||||
},
|
||||
(c2) =>
|
||||
{
|
||||
VRC.Core.Logger.Log("<color=magenta>Creating a new avatar.</color>", API.LOG_CATEGORY);
|
||||
apiAvatar = new ApiAvatar();
|
||||
apiAvatar.id = pipelineManager.blueprintId;
|
||||
pipelineManager.completedSDKPipeline = !string.IsNullOrEmpty(apiAvatar.authorId);
|
||||
SetupUI();
|
||||
});
|
||||
}, (c) => {
|
||||
LoginErrorCallback(c.Error);
|
||||
});
|
||||
}
|
||||
|
||||
void SetupUI()
|
||||
{
|
||||
if (!ValidateAssetBundleBlueprintID(apiAvatar.id))
|
||||
{
|
||||
blueprintPanel.SetActive(false);
|
||||
errorPanel.SetActive(true);
|
||||
OnSDKPipelineError("The asset bundle is out of date. Please rebuild the scene using 'New Build'.", "The blueprint ID in the scene does not match the id in the asset bundle.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (APIUser.Exists(pipelineManager.user))
|
||||
{
|
||||
waitingPanel.SetActive(false);
|
||||
blueprintPanel.SetActive(true);
|
||||
errorPanel.SetActive(false);
|
||||
|
||||
if (isUpdate)
|
||||
{
|
||||
// bp update
|
||||
if (apiAvatar.authorId == pipelineManager.user.id)
|
||||
{
|
||||
titleText.text = "Update Avatar";
|
||||
// apiAvatar = pipelineManager.user.GetBlueprint(pipelineManager.blueprintId) as ApiAvatar;
|
||||
blueprintName.text = apiAvatar.name;
|
||||
contentSex.isOn = apiAvatar.tags.Contains("content_sex");
|
||||
contentViolence.isOn = apiAvatar.tags.Contains("content_violence");
|
||||
contentGore.isOn = apiAvatar.tags.Contains("content_gore");
|
||||
contentOther.isOn = apiAvatar.tags.Contains("content_other");
|
||||
developerAvatar.isOn = apiAvatar.tags.Contains("developer");
|
||||
sharePrivate.isOn = apiAvatar.releaseStatus.Contains("private");
|
||||
sharePublic.isOn = apiAvatar.releaseStatus.Contains("public");
|
||||
|
||||
tagFallback.isOn = apiAvatar.tags.Contains("author_quest_fallback");
|
||||
tagFallback.transform.parent.gameObject.SetActive(true);
|
||||
|
||||
switch (pipelineManager.fallbackStatus)
|
||||
{
|
||||
case PipelineManager.FallbackStatus.Valid:
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
tagFallback.interactable = true;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback";
|
||||
#else
|
||||
tagFallback.interactable = false;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback (change only with Android upload)";
|
||||
#endif
|
||||
break;
|
||||
case PipelineManager.FallbackStatus.InvalidPerformance:
|
||||
case PipelineManager.FallbackStatus.InvalidRig:
|
||||
tagFallback.isOn = false; // need to remove tag on this upload, the updated version is not up-to-spec
|
||||
tagFallback.interactable = false;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback (avatar not valid, tag will be cleared)";
|
||||
break;
|
||||
}
|
||||
|
||||
blueprintDescription.text = apiAvatar.description;
|
||||
shouldUpdateImageToggle.interactable = true;
|
||||
shouldUpdateImageToggle.isOn = false;
|
||||
liveBpImage.enabled = false;
|
||||
bpImage.enabled = true;
|
||||
|
||||
ImageDownloader.DownloadImage(apiAvatar.imageUrl, 0, (Texture2D obj) => bpImage.texture = obj, null);
|
||||
}
|
||||
else // user does not own apiAvatar id associated with descriptor
|
||||
{
|
||||
Debug.LogErrorFormat("{0} is not an owner of {1}", apiAvatar.authorId, pipelineManager.user.id);
|
||||
blueprintPanel.SetActive(false);
|
||||
errorPanel.SetActive(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
titleText.text = "New Avatar";
|
||||
shouldUpdateImageToggle.interactable = false;
|
||||
shouldUpdateImageToggle.isOn = true;
|
||||
liveBpImage.enabled = true;
|
||||
bpImage.enabled = false;
|
||||
tagFallback.isOn = false;
|
||||
|
||||
// Janky fix for an avatar's blueprint image not showing up the very first time you press publish in a project until you resize the window
|
||||
// can remove if we fix the underlying issue or move publishing out of Play Mode
|
||||
string firstTimeResize = $"{Application.identifier}-firstTimeResize";
|
||||
if (!PlayerPrefs.HasKey(firstTimeResize))
|
||||
{
|
||||
GameViewMethods.ResizeGameView();
|
||||
PlayerPrefs.SetInt(firstTimeResize, 1);
|
||||
}
|
||||
|
||||
tagFallback.transform.parent.gameObject.SetActive(true);
|
||||
switch (pipelineManager.fallbackStatus)
|
||||
{
|
||||
case PipelineManager.FallbackStatus.Valid:
|
||||
#if UNITY_ANDROID || UNITY_IOS
|
||||
tagFallback.interactable = true;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback";
|
||||
#else
|
||||
tagFallback.interactable = false;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback (change only with Android upload)";
|
||||
#endif
|
||||
break;
|
||||
case PipelineManager.FallbackStatus.InvalidPerformance:
|
||||
case PipelineManager.FallbackStatus.InvalidRig:
|
||||
tagFallback.transform.parent.gameObject.SetActive(true);
|
||||
tagFallback.interactable = false;
|
||||
tagFallback.GetComponentInChildren<Text>().text = "Use for Fallback (avatar not valid, tag will be cleared)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
waitingPanel.SetActive(true);
|
||||
blueprintPanel.SetActive(false);
|
||||
errorPanel.SetActive(false);
|
||||
}
|
||||
|
||||
if (APIUser.CurrentUser != null && APIUser.CurrentUser.hasSuperPowers)
|
||||
developerAvatar.gameObject.SetActive(true);
|
||||
else
|
||||
developerAvatar.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
public void SetupUpload()
|
||||
{
|
||||
uploadTitle = "Preparing For Upload";
|
||||
isUploading = true;
|
||||
|
||||
string abPath = UnityEditor.EditorPrefs.GetString("currentBuildingAssetBundlePath");
|
||||
|
||||
string unityPackagePath = UnityEditor.EditorPrefs.GetString("VRC_exportedUnityPackagePath");
|
||||
|
||||
UnityEditor.EditorPrefs.SetBool("VRCSDK2_scene_changed", true);
|
||||
UnityEditor.EditorPrefs.SetBool("VRCSDK2_content_sex", contentSex.isOn);
|
||||
UnityEditor.EditorPrefs.SetBool("VRCSDK2_content_violence", contentViolence.isOn);
|
||||
UnityEditor.EditorPrefs.SetBool("VRCSDK2_content_gore", contentGore.isOn);
|
||||
UnityEditor.EditorPrefs.SetBool("VRCSDK2_content_other", contentOther.isOn);
|
||||
|
||||
if (string.IsNullOrEmpty(apiAvatar.id))
|
||||
{
|
||||
pipelineManager.AssignId(PipelineManager.ContentType.avatar);
|
||||
apiAvatar.id = pipelineManager.blueprintId;
|
||||
}
|
||||
|
||||
string avatarId = apiAvatar.id;
|
||||
int version = isUpdate ? apiAvatar.version + 1 : 1;
|
||||
PrepareVRCPathForS3(abPath, avatarId, version, ApiAvatar.VERSION);
|
||||
|
||||
if (!string.IsNullOrEmpty(unityPackagePath) && System.IO.File.Exists(unityPackagePath))
|
||||
{
|
||||
VRC.Core.Logger.Log("Found unity package path. Preparing to upload!", API.LOG_CATEGORY);
|
||||
PrepareUnityPackageForS3(unityPackagePath, avatarId, version, ApiAvatar.VERSION);
|
||||
}
|
||||
|
||||
StartCoroutine(UploadNew());
|
||||
}
|
||||
|
||||
IEnumerator UploadNew()
|
||||
{
|
||||
bool caughtInvalidInput = false;
|
||||
if (!ValidateNameInput(blueprintName))
|
||||
caughtInvalidInput = true;
|
||||
|
||||
if (caughtInvalidInput)
|
||||
yield break;
|
||||
|
||||
VRC.Core.Logger.Log("Starting upload");
|
||||
|
||||
// upload unity package
|
||||
if (!string.IsNullOrEmpty(uploadUnityPackagePath))
|
||||
{
|
||||
yield return StartCoroutine(UploadFile(uploadUnityPackagePath, "", GetFriendlyAvatarFileName("Unity package"), "Unity package",
|
||||
delegate (string fileUrl)
|
||||
{
|
||||
cloudFrontUnityPackageUrl = fileUrl;
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
// upload asset bundle
|
||||
if (!string.IsNullOrEmpty(uploadVrcPath))
|
||||
{
|
||||
yield return StartCoroutine(UploadFile(uploadVrcPath, isUpdate ? apiAvatar.assetUrl : "", GetFriendlyAvatarFileName("Asset bundle"), "Asset bundle",
|
||||
delegate (string fileUrl)
|
||||
{
|
||||
cloudFrontAssetUrl = fileUrl;
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
if (isUpdate)
|
||||
yield return StartCoroutine(UpdateBlueprint());
|
||||
else
|
||||
yield return StartCoroutine(CreateBlueprint());
|
||||
|
||||
OnSDKPipelineComplete();
|
||||
}
|
||||
|
||||
private string GetFriendlyAvatarFileName(string type)
|
||||
{
|
||||
return "Avatar - " + blueprintName.text + " - " + type + " - " + Application.unityVersion + "_" + ApiWorld.VERSION.ApiVersion +
|
||||
"_" + VRC.Tools.Platform + "_" + API.GetServerEnvironmentForApiUrl();
|
||||
}
|
||||
|
||||
List<string> BuildTags()
|
||||
{
|
||||
var tags = new List<string>();
|
||||
if (contentSex.isOn)
|
||||
tags.Add("content_sex");
|
||||
if (contentViolence.isOn)
|
||||
tags.Add("content_violence");
|
||||
if (contentGore.isOn)
|
||||
tags.Add("content_gore");
|
||||
if (contentOther.isOn)
|
||||
tags.Add("content_other");
|
||||
|
||||
if (APIUser.CurrentUser.hasSuperPowers)
|
||||
{
|
||||
if (developerAvatar.isOn)
|
||||
tags.Add("developer");
|
||||
}
|
||||
|
||||
if (tagFallback.isOn)
|
||||
tags.Add("author_quest_fallback");
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
protected override IEnumerator CreateBlueprint()
|
||||
{
|
||||
yield return StartCoroutine(UpdateImage(isUpdate ? apiAvatar.imageUrl : "", GetFriendlyAvatarFileName("Image")));
|
||||
|
||||
ApiAvatar avatar = new ApiAvatar
|
||||
{
|
||||
id = pipelineManager.blueprintId,
|
||||
authorName = pipelineManager.user.displayName,
|
||||
authorId = pipelineManager.user.id,
|
||||
name = blueprintName.text,
|
||||
imageUrl = cloudFrontImageUrl,
|
||||
assetUrl = cloudFrontAssetUrl,
|
||||
description = blueprintDescription.text,
|
||||
tags = BuildTags(),
|
||||
releaseStatus = sharePublic.isOn ? "public" : "private"
|
||||
};
|
||||
|
||||
bool doneUploading = false;
|
||||
bool wasError = false;
|
||||
|
||||
avatar.Post(
|
||||
(c) =>
|
||||
{
|
||||
ApiAvatar savedBP = (ApiAvatar)c.Model;
|
||||
pipelineManager.blueprintId = savedBP.id;
|
||||
UnityEditor.EditorPrefs.SetString("blueprintID-" + pipelineManager.GetInstanceID().ToString(), savedBP.id);
|
||||
|
||||
doneUploading = true;
|
||||
},
|
||||
(c) =>
|
||||
{
|
||||
Debug.LogError(c.Error);
|
||||
SetUploadProgress("Saving Avatar", "Error saving blueprint.", 0.0f);
|
||||
doneUploading = true;
|
||||
wasError = true;
|
||||
});
|
||||
|
||||
while (!doneUploading)
|
||||
yield return null;
|
||||
|
||||
if (wasError)
|
||||
yield return new WaitUntil(() => UnityEditor.EditorUtility.DisplayDialog("VRChat SDK", "Error saving blueprint.", "Okay"));
|
||||
}
|
||||
|
||||
protected override IEnumerator UpdateBlueprint()
|
||||
{
|
||||
bool doneUploading = false;
|
||||
|
||||
apiAvatar.name = blueprintName.text;
|
||||
apiAvatar.description = blueprintDescription.text;
|
||||
apiAvatar.assetUrl = cloudFrontAssetUrl;
|
||||
apiAvatar.releaseStatus = sharePublic.isOn ? "public" : "private";
|
||||
apiAvatar.tags = BuildTags();
|
||||
|
||||
if (shouldUpdateImageToggle.isOn)
|
||||
{
|
||||
yield return StartCoroutine(UpdateImage(isUpdate ? apiAvatar.imageUrl : "", GetFriendlyAvatarFileName("Image")));
|
||||
apiAvatar.imageUrl = cloudFrontImageUrl;
|
||||
}
|
||||
|
||||
SetUploadProgress("Saving Avatar", "Almost finished!!", 0.8f);
|
||||
apiAvatar.Save(
|
||||
(c) => {doneUploading = true; },
|
||||
(c) => {
|
||||
Debug.LogError(c.Error);
|
||||
SetUploadProgress("Saving Avatar", "Error saving blueprint.", 0.0f);
|
||||
doneUploading = true;
|
||||
});
|
||||
|
||||
while (!doneUploading)
|
||||
yield return null;
|
||||
}
|
||||
|
||||
void ToggleUpdateImage(bool isOn)
|
||||
{
|
||||
if (isOn)
|
||||
{
|
||||
bpImage.enabled = false;
|
||||
liveBpImage.enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bpImage.enabled = true;
|
||||
liveBpImage.enabled = false;
|
||||
ImageDownloader.DownloadImage(apiAvatar.imageUrl, 0, obj => bpImage.texture = obj, null);
|
||||
}
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
UnityEditor.EditorUtility.ClearProgressBar();
|
||||
UnityEditor.EditorPrefs.DeleteKey("currentBuildingAssetBundlePath");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||