Check Networkobjects when building sites
This commit is contained in:
parent
a75c4b38ec
commit
228b5925b7
@ -81,6 +81,8 @@ namespace Passer {
|
|||||||
bool hasChanged = false;
|
bool hasChanged = false;
|
||||||
|
|
||||||
for (int i = 0; i < assetbundles.Length; i++) {
|
for (int i = 0; i < assetbundles.Length; i++) {
|
||||||
|
PrepareSite(assetbundles[i]);
|
||||||
|
|
||||||
Sites.SiteBuild siteBuild = siteBuilds.list.Find(sb => sb.siteName == assetbundles[i]);
|
Sites.SiteBuild siteBuild = siteBuilds.list.Find(sb => sb.siteName == assetbundles[i]);
|
||||||
if (siteBuild == null) {
|
if (siteBuild == null) {
|
||||||
siteBuild = new Sites.SiteBuild() {
|
siteBuild = new Sites.SiteBuild() {
|
||||||
@ -95,6 +97,21 @@ namespace Passer {
|
|||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void PrepareSite(string sitename) {
|
||||||
|
string[] paths = AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(sitename, sitename);
|
||||||
|
if (paths.Length == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Scene scene = UnityEditor.SceneManagement.EditorSceneManager.OpenScene(paths[0]);
|
||||||
|
if (scene == null) {
|
||||||
|
Debug.Log("Could not load " + sitename);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Debug.Log("Prepare " + sitename);
|
||||||
|
NetworkObject_Check.CheckNetworkObjects();
|
||||||
|
UnityEditor.SceneManagement.EditorSceneManager.SaveScene(UnityEngine.SceneManagement.SceneManager.GetActiveScene());
|
||||||
|
}
|
||||||
|
|
||||||
private static void StartBuildToFolder() {
|
private static void StartBuildToFolder() {
|
||||||
string savePath = EditorUtility.SaveFolderPanel("Target folder", "", "");
|
string savePath = EditorUtility.SaveFolderPanel("Target folder", "", "");
|
||||||
BuildSites(savePath);
|
BuildSites(savePath);
|
||||||
|
@ -10,25 +10,27 @@ using UnityEditor.Experimental.SceneManagement;
|
|||||||
namespace Passer {
|
namespace Passer {
|
||||||
|
|
||||||
[InitializeOnLoad]
|
[InitializeOnLoad]
|
||||||
public class NetworkObject_Check : IPreprocessBuildWithReport {
|
public class NetworkObject_Check {
|
||||||
public int callbackOrder => 0;
|
public int callbackOrder => 0;
|
||||||
|
|
||||||
public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report) {
|
public void OnPreprocessBuild(UnityEditor.Build.Reporting.BuildReport report) {
|
||||||
NetworkObject[] networkObjects = Object.FindObjectsOfType<NetworkObject>();
|
CheckNetworkObjects();
|
||||||
|
|
||||||
foreach (NetworkObject networkObject in networkObjects)
|
|
||||||
CheckForNetworkObject(networkObject.gameObject);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Check if this gameObject has the right network transform code</summary>
|
/// <summary>Check if this gameObject has the right network transform code</summary>
|
||||||
static NetworkObject_Check() {
|
static NetworkObject_Check() {
|
||||||
|
CheckNetworkObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void CheckNetworkObjects() {
|
||||||
NetworkObject[] networkObjects = Object.FindObjectsOfType<NetworkObject>();
|
NetworkObject[] networkObjects = Object.FindObjectsOfType<NetworkObject>();
|
||||||
|
|
||||||
foreach (NetworkObject networkObject in networkObjects)
|
foreach (NetworkObject networkObject in networkObjects)
|
||||||
CheckForNetworkObject(networkObject.gameObject);
|
CheckForNetworkObject(networkObject.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void CheckForNetworkObject(GameObject gameObject) {
|
public static void CheckForNetworkObject(GameObject gameObject) {
|
||||||
CheckNetworkObjectNone(gameObject);
|
CheckNetworkObjectNone(gameObject);
|
||||||
CheckNetworkObjectUnet(gameObject);
|
CheckNetworkObjectUnet(gameObject);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user