Commit f1b75835 authored by Liang JingQiang's avatar Liang JingQiang

升级 UNITY 2017.2.0b9

parent 260d1ce5
fileFormatVersion: 2
guid: 5655f2df14d0849eb806dc1f452f8730
folderAsset: yes
timeCreated: 1431881326
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using System.Collections;
namespace AssetBundles
{
public abstract class AssetBundleLoadOperation : IEnumerator
{
public object Current
{
get
{
return null;
}
}
public bool MoveNext()
{
return !IsDone();
}
public void Reset()
{
}
abstract public bool Update ();
abstract public bool IsDone ();
}
#if UNITY_EDITOR
public class AssetBundleLoadLevelSimulationOperation : AssetBundleLoadOperation
{
AsyncOperation m_Operation = null;
public AssetBundleLoadLevelSimulationOperation (string assetBundleName, string levelName, bool isAdditive)
{
string[] levelPaths = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(assetBundleName, levelName);
if (levelPaths.Length == 0)
{
///@TODO: The error needs to differentiate that an asset bundle name doesn't exist
// from that there right scene does not exist in the asset bundle...
Debug.LogError("There is no scene with name \"" + levelName + "\" in " + assetBundleName);
return;
}
if (isAdditive)
m_Operation = UnityEditor.EditorApplication.LoadLevelAdditiveAsyncInPlayMode(levelPaths[0]);
else
m_Operation = UnityEditor.EditorApplication.LoadLevelAsyncInPlayMode(levelPaths[0]);
}
public override bool Update ()
{
return false;
}
public override bool IsDone ()
{
return m_Operation == null || m_Operation.isDone;
}
}
#endif
public class AssetBundleLoadLevelOperation : AssetBundleLoadOperation
{
protected string m_AssetBundleName;
protected string m_LevelName;
protected bool m_IsAdditive;
protected string m_DownloadingError;
protected AsyncOperation m_Request;
public AssetBundleLoadLevelOperation (string assetbundleName, string levelName, bool isAdditive)
{
m_AssetBundleName = assetbundleName;
m_LevelName = levelName;
m_IsAdditive = isAdditive;
}
public override bool Update ()
{
if (m_Request != null)
return false;
LoadedAssetBundle bundle = AssetBundleManager.GetLoadedAssetBundle (m_AssetBundleName, out m_DownloadingError);
if (bundle != null)
{
if (m_IsAdditive)
m_Request = Application.LoadLevelAdditiveAsync (m_LevelName);
else
m_Request = Application.LoadLevelAsync (m_LevelName);
return false;
}
else
return true;
}
public override bool IsDone ()
{
// Return if meeting downloading error.
// m_DownloadingError might come from the dependency downloading.
if (m_Request == null && m_DownloadingError != null)
{
Debug.LogError(m_DownloadingError);
return true;
}
return m_Request != null && m_Request.isDone;
}
}
public abstract class AssetBundleLoadAssetOperation : AssetBundleLoadOperation
{
public abstract T GetAsset<T>() where T : UnityEngine.Object;
}
public class AssetBundleLoadAssetOperationSimulation : AssetBundleLoadAssetOperation
{
Object m_SimulatedObject;
public AssetBundleLoadAssetOperationSimulation (Object simulatedObject)
{
m_SimulatedObject = simulatedObject;
}
public override T GetAsset<T>()
{
return m_SimulatedObject as T;
}
public override bool Update ()
{
return false;
}
public override bool IsDone ()
{
return true;
}
}
public class AssetBundleLoadAssetOperationFull : AssetBundleLoadAssetOperation
{
protected string m_AssetBundleName;
protected string m_AssetName;
protected string m_DownloadingError;
protected System.Type m_Type;
protected AssetBundleRequest m_Request = null;
public AssetBundleLoadAssetOperationFull (string bundleName, string assetName, System.Type type)
{
m_AssetBundleName = bundleName;
m_AssetName = assetName;
m_Type = type;
}
public override T GetAsset<T>()
{
if (m_Request != null && m_Request.isDone)
return m_Request.asset as T;
else
return null;
}
// Returns true if more Update calls are required.
public override bool Update ()
{
if (m_Request != null)
return false;
LoadedAssetBundle bundle = AssetBundleManager.GetLoadedAssetBundle (m_AssetBundleName, out m_DownloadingError);
if (bundle != null)
{
///@TODO: When asset bundle download fails this throws an exception...
m_Request = bundle.m_AssetBundle.LoadAssetAsync (m_AssetName, m_Type);
return false;
}
else
{
return true;
}
}
public override bool IsDone ()
{
// Return if meeting downloading error.
// m_DownloadingError might come from the dependency downloading.
if (m_Request == null && m_DownloadingError != null)
{
Debug.LogError(m_DownloadingError);
return true;
}
return m_Request != null && m_Request.isDone;
}
}
public class AssetBundleLoadManifestOperation : AssetBundleLoadAssetOperationFull
{
public AssetBundleLoadManifestOperation (string bundleName, string assetName, System.Type type)
: base(bundleName, assetName, type)
{
}
public override bool Update ()
{
base.Update();
if (m_Request != null && m_Request.isDone)
{
AssetBundleManager.AssetBundleManifestObject = GetAsset<AssetBundleManifest>();
return false;
}
else
return true;
}
}
}
fileFormatVersion: 2
guid: c487cbb6e41638c48ad9675dcfafb3ce
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
This diff is collapsed.
fileFormatVersion: 2
guid: 6309cb12c9f62482c8451f716f97d470
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
fileFormatVersion: 2
guid: ff5782c7c93fa460fb79d0aa4097c52b
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 59c71df8bbeda4a1a994a635b0aa6675
timeCreated: 1431456701
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEditor;
using System.Collections;
namespace AssetBundles
{
public class AssetBundlesMenuItems
{
const string kSimulationMode = "Assets/AssetBundles/Simulation Mode";
[MenuItem(kSimulationMode)]
public static void ToggleSimulationMode ()
{
AssetBundleManager.SimulateAssetBundleInEditor = !AssetBundleManager.SimulateAssetBundleInEditor;
}
[MenuItem(kSimulationMode, true)]
public static bool ToggleSimulationModeValidate ()
{
Menu.SetChecked(kSimulationMode, AssetBundleManager.SimulateAssetBundleInEditor);
return true;
}
[MenuItem ("Assets/AssetBundles/Build AssetBundles")]
static public void BuildAssetBundles ()
{
BuildScript.BuildAssetBundles();
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 0906f670aa52147688cf79b1e471f36d
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace AssetBundles
{
public class BuildScript
{
public static string overloadedDevelopmentServerURL = "";
public static void BuildAssetBundles()
{
// Choose the output path according to the build target.
string outputPath = Path.Combine(Utility.AssetBundlesOutputPath, Utility.GetPlatformName());
if (!Directory.Exists(outputPath) )
Directory.CreateDirectory (outputPath);
//@TODO: use append hash... (Make sure pipeline works correctly with it.)
BuildPipeline.BuildAssetBundles (outputPath, BuildAssetBundleOptions.None, EditorUserBuildSettings.activeBuildTarget);
}
public static void WriteServerURL()
{
string downloadURL;
if (string.IsNullOrEmpty(overloadedDevelopmentServerURL) == false)
{
downloadURL = overloadedDevelopmentServerURL;
}
else
{
IPHostEntry host;
string localIP = "";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
localIP = ip.ToString();
break;
}
}
downloadURL = "http://"+localIP+":7888/";
}
string assetBundleManagerResourcesDirectory = "Assets/AssetBundleManager/Resources";
string assetBundleUrlPath = Path.Combine (assetBundleManagerResourcesDirectory, "AssetBundleServerURL.bytes");
Directory.CreateDirectory(assetBundleManagerResourcesDirectory);
File.WriteAllText(assetBundleUrlPath, downloadURL);
AssetDatabase.Refresh();
}
public static void BuildPlayer()
{
var outputPath = EditorUtility.SaveFolderPanel("Choose Location of the Built Game", "", "");
if (outputPath.Length == 0)
return;
string[] levels = GetLevelsFromBuildSettings();
if (levels.Length == 0)
{
Debug.Log("Nothing to build.");
return;
}
string targetName = GetBuildTargetName(EditorUserBuildSettings.activeBuildTarget);
if (targetName == null)
return;
// Build and copy AssetBundles.
BuildScript.BuildAssetBundles();
WriteServerURL();
BuildOptions option = EditorUserBuildSettings.development ? BuildOptions.Development : BuildOptions.None;
BuildPipeline.BuildPlayer(levels, outputPath + targetName, EditorUserBuildSettings.activeBuildTarget, option);
}
public static void BuildStandalonePlayer()
{
var outputPath = EditorUtility.SaveFolderPanel("Choose Location of the Built Game", "", "");
if (outputPath.Length == 0)
return;
string[] levels = GetLevelsFromBuildSettings();
if (levels.Length == 0)
{
Debug.Log("Nothing to build.");
return;
}
string targetName = GetBuildTargetName(EditorUserBuildSettings.activeBuildTarget);
if (targetName == null)
return;
// Build and copy AssetBundles.
BuildScript.BuildAssetBundles();
BuildScript.CopyAssetBundlesTo(Path.Combine(Application.streamingAssetsPath, Utility.AssetBundlesOutputPath) );
AssetDatabase.Refresh();
BuildOptions option = EditorUserBuildSettings.development ? BuildOptions.Development : BuildOptions.None;
BuildPipeline.BuildPlayer(levels, outputPath + targetName, EditorUserBuildSettings.activeBuildTarget, option);
}
public static string GetBuildTargetName(BuildTarget target)
{
switch(target)
{
case BuildTarget.Android :
return "/test.apk";
case BuildTarget.StandaloneWindows:
case BuildTarget.StandaloneWindows64:
return "/test.exe";
case BuildTarget.StandaloneOSXIntel:
case BuildTarget.StandaloneOSXIntel64:
case BuildTarget.StandaloneOSXUniversal:
return "/test.app";
case BuildTarget.WebPlayer:
case BuildTarget.WebPlayerStreamed:
case BuildTarget.WebGL:
return "";
// Add more build targets for your own.
default:
Debug.Log("Target not implemented.");
return null;
}
}
static void CopyAssetBundlesTo(string outputPath)
{
// Clear streaming assets folder.
FileUtil.DeleteFileOrDirectory(Application.streamingAssetsPath);
Directory.CreateDirectory(outputPath);
string outputFolder = Utility.GetPlatformName();
// Setup the source folder for assetbundles.
var source = Path.Combine(Path.Combine(System.Environment.CurrentDirectory, Utility.AssetBundlesOutputPath), outputFolder);
if (!System.IO.Directory.Exists(source) )
Debug.Log("No assetBundle output folder, try to build the assetBundles first.");
// Setup the destination folder for assetbundles.
var destination = System.IO.Path.Combine(outputPath, outputFolder);
if (System.IO.Directory.Exists(destination) )
FileUtil.DeleteFileOrDirectory(destination);
FileUtil.CopyFileOrDirectory(source, destination);
}
static string[] GetLevelsFromBuildSettings()
{
List<string> levels = new List<string>();
for(int i = 0 ; i < EditorBuildSettings.scenes.Length; ++i)
{
if (EditorBuildSettings.scenes[i].enabled)
levels.Add(EditorBuildSettings.scenes[i].path);
}
return levels.ToArray();
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: f19ef23648157ec49ab02b99bee74403
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
using UnityEditor;
using UnityEngine;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System;
namespace AssetBundles
{
class MonoInstallationFinder
{
public static string GetFrameWorksFolder()
{
var editorAppPath = EditorApplication.applicationPath;
if (Application.platform == RuntimePlatform.WindowsEditor)
return Path.Combine(Path.GetDirectoryName(editorAppPath), "Data");
else if (Application.platform == RuntimePlatform.OSXEditor)
return Path.Combine(editorAppPath, Path.Combine("Contents", "Frameworks"));
else // Linux...?
return Path.Combine(Path.GetDirectoryName(editorAppPath), "Data");
}
public static string GetProfileDirectory (BuildTarget target, string profile)
{
var monoprefix = GetMonoInstallation();
return Path.Combine(monoprefix, Path.Combine("lib", Path.Combine("mono", profile)));
}
public static string GetMonoInstallation()
{
#if INCLUDE_MONO_2_12
return GetMonoInstallation("MonoBleedingEdge");
#else
return GetMonoInstallation("Mono");
#endif
}
public static string GetMonoInstallation(string monoName)
{
return Path.Combine(GetFrameWorksFolder(), monoName);
}
}
class ExecuteInternalMono
{
private static readonly Regex UnsafeCharsWindows = new Regex("[^A-Za-z0-9\\_\\-\\.\\:\\,\\/\\@\\\\]");
private static readonly Regex UnescapeableChars = new Regex("[\\x00-\\x08\\x10-\\x1a\\x1c-\\x1f\\x7f\\xff]");
private static readonly Regex Quotes = new Regex("\"");
public ProcessStartInfo processStartInfo = null;
public static string PrepareFileName(string input)
{
if (Application.platform == RuntimePlatform.OSXEditor)
{
return EscapeCharsQuote(input);
}
return EscapeCharsWindows(input);
}
public static string EscapeCharsQuote(string input)
{
if (input.IndexOf('\'') == -1)
{
return "'" + input + "'";
}
if (input.IndexOf('"') == -1)
{
return "\"" + input + "\"";
}
return null;
}
public static string EscapeCharsWindows(string input)
{
if (input.Length == 0)
{
return "\"\"";
}
if (UnescapeableChars.IsMatch(input))
{
UnityEngine.Debug.LogWarning("Cannot escape control characters in string");
return "\"\"";
}
if (UnsafeCharsWindows.IsMatch(input))
{
return "\"" + Quotes.Replace(input, "\"\"") + "\"";
}
return input;
}
public static ProcessStartInfo GetProfileStartInfoForMono(string monodistribution, string profile, string executable, string arguments, bool setMonoEnvironmentVariables)
{
var monoexe = PathCombine(monodistribution, "bin", "mono");
var profileAbspath = PathCombine(monodistribution, "lib", "mono", profile);
if (Application.platform == RuntimePlatform.WindowsEditor)
monoexe = PrepareFileName(monoexe + ".exe");
var startInfo = new ProcessStartInfo
{
Arguments = PrepareFileName(executable) + " " + arguments,
CreateNoWindow = true,
FileName = monoexe,
RedirectStandardError = true,
RedirectStandardOutput = true,
WorkingDirectory = Application.dataPath + "/..",
UseShellExecute = false
};
if (setMonoEnvironmentVariables)
{
startInfo.EnvironmentVariables["MONO_PATH"] = profileAbspath;
startInfo.EnvironmentVariables["MONO_CFG_DIR"] = PathCombine(monodistribution, "etc");
}
return startInfo;
}
static string PathCombine(params string[] parts)
{
var path = parts[0];
for (var i = 1; i < parts.Length; ++i)
path = Path.Combine(path, parts[i]);
return path;
}
}
}
fileFormatVersion: 2
guid: 8127c6674aa9d419ebdf60f64e3bfbb9
timeCreated: 1431509895
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System;
using System.Net;
using System.Threading;
using UnityEditor.Utils;
namespace AssetBundles
{
internal class LaunchAssetBundleServer : ScriptableSingleton<LaunchAssetBundleServer>
{
const string kLocalAssetbundleServerMenu = "Assets/AssetBundles/Local AssetBundle Server";
[SerializeField]
int m_ServerPID = 0;
[MenuItem (kLocalAssetbundleServerMenu)]
public static void ToggleLocalAssetBundleServer ()
{
bool isRunning = IsRunning();
if (!isRunning)
{
Run ();
}
else
{
KillRunningAssetBundleServer ();
}
}
[MenuItem (kLocalAssetbundleServerMenu, true)]
public static bool ToggleLocalAssetBundleServerValidate ()
{
bool isRunnning = IsRunning ();
Menu.SetChecked(kLocalAssetbundleServerMenu, isRunnning);
return true;
}
static bool IsRunning ()
{
if (instance.m_ServerPID == 0)
return false;
var process = Process.GetProcessById (instance.m_ServerPID);
if (process == null)
return false;
return !process.HasExited;
}
static void KillRunningAssetBundleServer ()
{
// Kill the last time we ran
try
{
if (instance.m_ServerPID == 0)
return;
var lastProcess = Process.GetProcessById (instance.m_ServerPID);
lastProcess.Kill();
instance.m_ServerPID = 0;
}
catch
{
}
}
static void Run ()
{
string pathToAssetServer = Path.Combine(Application.dataPath, "AssetBundleManager/Editor/AssetBundleServer.exe");
string pathToApp = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/'));
KillRunningAssetBundleServer();
BuildScript.WriteServerURL();
string args = Path.Combine (pathToApp, "AssetBundles");
args = string.Format("\"{0}\" {1}", args, Process.GetCurrentProcess().Id);
ProcessStartInfo startInfo = ExecuteInternalMono.GetProfileStartInfoForMono(MonoInstallationFinder.GetMonoInstallation("MonoBleedingEdge"), "4.0", pathToAssetServer, args, true);
startInfo.WorkingDirectory = Path.Combine(System.Environment.CurrentDirectory, "AssetBundles");
startInfo.UseShellExecute = false;
Process launchProcess = Process.Start(startInfo);
if (launchProcess == null || launchProcess.HasExited == true || launchProcess.Id == 0)
{
//Unable to start process
UnityEngine.Debug.LogError ("Unable Start AssetBundleServer process");
}
else
{
//We seem to have launched, let's save the PID
instance.m_ServerPID = launchProcess.Id;
}
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 23a84bb10f0e2473bbe44fcb9c23e157
timeCreated: 1429472835
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 22022de167524490db7116e26e11c5ba
folderAsset: yes
timeCreated: 1431881731
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
http://192.168.1.115:7888/
\ No newline at end of file
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace AssetBundles
{
public class Utility
{
public const string AssetBundlesOutputPath = "AssetBundles";
public static string GetPlatformName()
{
#if UNITY_EDITOR
return GetPlatformForAssetBundles(EditorUserBuildSettings.activeBuildTarget);
#else
return GetPlatformForAssetBundles(Application.platform);
#endif
}
#if UNITY_EDITOR
private static string GetPlatformForAssetBundles(BuildTarget target)
{
switch(target)
{
case BuildTarget.Android:
return "Android";
case BuildTarget.iOS:
return "iOS";
case BuildTarget.WebGL:
return "WebGL";
case BuildTarget.WebPlayer:
return "WebPlayer";
case BuildTarget.StandaloneWindows:
case BuildTarget.StandaloneWindows64:
return "Windows";
case BuildTarget.StandaloneOSXIntel:
case BuildTarget.StandaloneOSXIntel64:
case BuildTarget.StandaloneOSXUniversal:
return "OSX";
// Add more build targets for your own.
// If you add more targets, don't forget to add the same platforms to GetPlatformForAssetBundles(RuntimePlatform) function.
default:
return null;
}
}
#endif
private static string GetPlatformForAssetBundles(RuntimePlatform platform)
{
switch(platform)
{
case RuntimePlatform.Android:
return "Android";
case RuntimePlatform.IPhonePlayer:
return "iOS";
case RuntimePlatform.WebGLPlayer:
return "WebGL";
case RuntimePlatform.OSXWebPlayer:
case RuntimePlatform.WindowsWebPlayer:
return "WebPlayer";
case RuntimePlatform.WindowsPlayer:
return "Windows";
case RuntimePlatform.OSXPlayer:
return "OSX";
// Add more build targets for your own.
// If you add more targets, don't forget to add the same platforms to GetPlatformForAssetBundles(RuntimePlatform) function.
default:
return null;
}
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: e5eb071745f174d8b8fd080714b40b93
timeCreated: 1431883330
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
...@@ -34,7 +34,7 @@ public class VRInteractionUI : MonoBehaviour ...@@ -34,7 +34,7 @@ public class VRInteractionUI : MonoBehaviour
private void Start() private void Start()
{ {
if (!VRSettings.isDeviceActive && !testMode) if (!UnityEngine.XR.XRSettings.isDeviceActive && !testMode)
{ {
reticle.gameObject.SetActive(false); reticle.gameObject.SetActive(false);
Destroy(this); Destroy(this);
......
...@@ -7,6 +7,6 @@ public class VRSwitch : MonoBehaviour ...@@ -7,6 +7,6 @@ public class VRSwitch : MonoBehaviour
private void Start() private void Start()
{ {
VRSettings.enabled = enableVR; UnityEngine.XR.XRSettings.enabled = enableVR;
} }
} }
{
"dependencies": {
}
}
fileFormatVersion: 2 fileFormatVersion: 2
guid: 412195e63b8901646adb12ef3f33f415 guid: 89bc5a045696681459deebd56a81733c
timeCreated: 1438698780 timeCreated: 1505449905
licenseType: Store licenseType: Pro
TextScriptImporter: TextScriptImporter:
externalObjects: {}
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
m_EditorVersion: 2017.1.0f3 m_EditorVersion: 2017.2.0b9
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment