/** * <summary>Gets the SceneSettings component that is in the same scene as a given GameObject.</summary> * <param name = "_gameObject">The GameObject in the scene</param> * <returns>The SceneSettings component that is in the same scene as the given GameObject</returns> */ public static SceneSettings GetSceneSettingsOfGameObject(GameObject _gameObject) { if (UnityVersionHandler.ObjectIsInActiveScene(_gameObject)) { return(KickStarter.sceneSettings); } UnityEngine.SceneManagement.Scene scene = _gameObject.scene; if (Application.isPlaying) { foreach (SubScene subScene in KickStarter.sceneChanger.SubScenes) { if (subScene.gameObject.scene == scene) { return(subScene.SceneSettings); } } } else { foreach (SceneSettings sceneSettings in GameObject.FindObjectsOfType <SceneSettings>()) { if (sceneSettings.gameObject.scene == scene) { return(sceneSettings); } } } return(null); }
private void OnEnable() { if (UnityVersionHandler.ObjectIsInActiveScene(gameObject) && KickStarter.stateHandler) { KickStarter.stateHandler.Register(GetComponent <KickStarter> ()); } }
protected void Awake() { if (!UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { // Register self as a "sub-scene" GameObject subSceneOb = new GameObject(); SubScene newSubScene = subSceneOb.AddComponent <SubScene>(); newSubScene.Initialise(this); return; } if (!TestManagerPresence()) { return; } #if UNITY_EDITOR if (!TestOwnComponents()) { return; } #endif GetComponent <KickStarter>().Initialise(); runStart = true; // This is necessary because switching the active scene will cause Start to be re-run }
/** * <summary>Gets the LocalVariables component that is in the same scene as a given GameObject.</summary> * <param name = "_gameObject">The GameObject in the scene</param> * <returns>The LocalVariables component that is in the same scene as the given GameObject</returns> */ public static LocalVariables GetLocalVariablesOfGameObject(GameObject _gameObject) { if (UnityVersionHandler.ObjectIsInActiveScene(_gameObject)) { return(KickStarter.localVariables); } UnityEngine.SceneManagement.Scene scene = _gameObject.scene; if (Application.isPlaying) { foreach (SubScene subScene in KickStarter.sceneChanger.SubScenes) { if (subScene.gameObject.scene == scene) { return(subScene.LocalVariables); } } } else { foreach (LocalVariables localVariables in GameObject.FindObjectsOfType <LocalVariables>()) { if (localVariables.gameObject.scene == scene) { return(localVariables); } } } return(null); }
private void Awake() { UnityVersionHandler.EnsureSingleScene(); if (!UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { return; } activeKickStarter = FindObjectOfType <KickStarter>(); if (activeKickStarter != null) { KickStarter.mainCamera.OnAwake(); activeKickStarter.OnAwake(); KickStarter.playerInput.OnAwake(); KickStarter.playerQTE.OnAwake(); KickStarter.sceneSettings.OnAwake(); KickStarter.dialog.OnAwake(); KickStarter.navigationManager.OnAwake(); KickStarter.actionListManager.OnAwake(); KickStarter.stateHandler.RegisterWithGameEngine(); } else { ACDebug.LogError("No KickStarter component found in the scene!"); } }
private void SendDataToScene(SingleLevelData levelData, bool restoringSaveFile, SubScene subScene = null) { SceneSettings sceneSettings = (subScene == null) ? KickStarter.sceneSettings : subScene.SceneSettings; LocalVariables localVariables = (subScene == null) ? KickStarter.localVariables : subScene.LocalVariables; KickStarter.actionListManager.LoadData(levelData.activeLists, subScene); UnloadCutsceneOnLoad(levelData.onLoadCutscene, sceneSettings); UnloadCutsceneOnStart(levelData.onStartCutscene, sceneSettings); UnloadNavMesh(levelData.navMesh, sceneSettings); UnloadPlayerStart(levelData.playerStart, sceneSettings); UnloadSortingMap(levelData.sortingMap, sceneSettings); UnloadTintMap(levelData.tintMap, sceneSettings); UnloadTransformData(levelData.allTransformData, subScene); foreach (ScriptData _scriptData in levelData.allScriptData) { if (_scriptData.data != null && _scriptData.data.Length > 0) { // Get objects in active scene, and "DontDestroyOnLoad" scene Remember[] saveObjects = Serializer.returnComponents <Remember> (_scriptData.objectID); foreach (Remember saveObject in saveObjects) { if (saveObject != null && UnityVersionHandler.ObjectIsInActiveScene(saveObject.gameObject)) { // May have more than one Remember script on the same object, so check all Remember[] saveScripts = saveObject.gameObject.GetComponents <Remember>(); foreach (Remember saveScript in saveScripts) { saveScript.LoadData(_scriptData.data, restoringSaveFile); } } } } /*Remember saveObject = Serializer.returnComponent <Remember> (_scriptData.objectID, sceneSettings.gameObject); * if (saveObject != null && _scriptData.data != null && _scriptData.data.Length > 0) * { * // May have more than one Remember script on the same object, so check all * Remember[] saveScripts = saveObject.gameObject.GetComponents <Remember>(); * foreach (Remember saveScript in saveScripts) * { * saveScript.LoadData (_scriptData.data, restoringSaveFile); * } * }*/ } UnloadVariablesData(levelData.localVariablesData, localVariables); KickStarter.sceneSettings.UpdateAllSortingMaps(); }
private void Start() { if (!UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { return; } if (ownKickStarter != null) { KickStarter.sceneSettings.OnStart(); KickStarter.playerMovement.OnStart(); KickStarter.mainCamera.OnStart(); } }
private void Awake() { if (!UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { // Register self as a "sub-scene" GameObject subSceneOb = new GameObject(); SubScene newSubScene = subSceneOb.AddComponent <SubScene>(); newSubScene.Initialise(this); return; } ownKickStarter = GetComponent <KickStarter>(); GameObject taggedMainCamera = GameObject.FindWithTag(Tags.mainCamera); if (taggedMainCamera == null) { ACDebug.LogError("No MainCamera found - please click 'Organise room objects' in the Scene Manager to create one."); } else { if (taggedMainCamera.GetComponent <MainCamera>() == null && taggedMainCamera.GetComponentInParent <MainCamera>() == null) { ACDebug.LogError("MainCamera has no MainCamera component."); } } if (ownKickStarter != null) { KickStarter.mainCamera.OnAwake(); ownKickStarter.OnAwake(); KickStarter.playerInput.OnAwake(); KickStarter.playerQTE.OnAwake(); KickStarter.sceneSettings.OnAwake(); KickStarter.dialog.OnAwake(); KickStarter.navigationManager.OnAwake(); KickStarter.actionListManager.OnAwake(); KickStarter.stateHandler.RegisterWithGameEngine(); } else { ACDebug.LogError("No KickStarter component found in the scene!"); } }
protected void Start() { if (!runStart) { return; } runStart = false; if (UnityVersionHandler.ObjectIsInActiveScene(gameObject) && KickStarter.settingsManager && KickStarter.saveSystem) { if (KickStarter.settingsManager.IsInLoadingScene()) { ACDebug.Log("Bypassing regular AC startup because the current scene is the 'Loading' scene."); return; } KickStarter.saveSystem.InitAfterLoad(); } }
private void Awake() { UnityVersionHandler.EnsureSingleScene(); if (!UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { return; } activeKickStarter = FindObjectOfType <KickStarter>(); if (GameObject.FindWithTag(Tags.mainCamera) == null) { ACDebug.LogError("No MainCamera found - please click 'Organise room objects' in the Scene Manager to create one."); } else { if (GameObject.FindWithTag(Tags.mainCamera).GetComponent <MainCamera>() == null && GameObject.FindWithTag(Tags.mainCamera).GetComponentInParent <MainCamera>() == null) { ACDebug.LogError("MainCamera has no MainCamera component."); } } if (activeKickStarter != null) { KickStarter.mainCamera.OnAwake(); activeKickStarter.OnAwake(); KickStarter.playerInput.OnAwake(); KickStarter.playerQTE.OnAwake(); KickStarter.sceneSettings.OnAwake(); KickStarter.dialog.OnAwake(); KickStarter.navigationManager.OnAwake(); KickStarter.actionListManager.OnAwake(); KickStarter.stateHandler.RegisterWithGameEngine(); } else { ACDebug.LogError("No KickStarter component found in the scene!"); } }
/** * <summary>Converts the class's data into a string that can be saved.</summary> * <param name = "subScene">If set, only data for a given subscene will be saved. If null, only data for the active scene will be saved</param> * <returns>The class's data, converted to a string</returns> */ public string GetSaveData(SubScene subScene) { string ID = string.Empty; string convID = string.Empty; if (IsRunning()) { // Unless ActionLists can be saved mid-stream, don't save info about those currently-running return(string.Empty); } string parameterData = string.Empty; if (actionListAsset != null) { ID = AdvGame.PrepareStringForSaving(actionListAsset.name); } else if (actionList != null) { if (actionList.GetComponent <ConstantID>()) { ID = actionList.GetComponent <ConstantID>().constantID.ToString(); if (subScene == null && UnityVersionHandler.ObjectIsInActiveScene(actionList.gameObject)) { // OK } else if (subScene && UnityVersionHandler.GetSceneIndexFromGameObject(actionList.gameObject) == subScene.SceneIndex) { // OK } else { return(string.Empty); } } else { ACDebug.LogWarning("Data for the ActionList '" + actionList.gameObject.name + "' was not saved because it has no Constant ID.", actionList.gameObject); return(""); } } if (actionList != null) { parameterData = actionList.GetParameterData(); } if (conversationOnEnd && conversationOnEnd.GetComponent <ConstantID>()) { convID = conversationOnEnd.GetComponent <ConstantID>().ToString(); } return(ID + SaveSystem.colon + ConvertIndicesToString() + SaveSystem.colon + startIndex + SaveSystem.colon + ((inSkipQueue) ? 1 : 0) + SaveSystem.colon + ((isRunning) ? 1 : 0) + SaveSystem.colon + convID + SaveSystem.colon + parameterData); }
public void ShowGUI() { EditorGUILayout.BeginVertical("Button"); saveController = EditorGUILayout.ToggleLeft("Save change in Controller?", saveController); setDefaultParameterValues = EditorGUILayout.ToggleLeft("Set default parameters?", setDefaultParameterValues); if (setDefaultParameterValues) { if (!UnityVersionHandler.IsPrefabEditing(gameObject) && !UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { EditorGUILayout.HelpBox("To view/edit parameters, the GameObject must be active in the scene.", MessageType.Warning); } else if (Animator.parameters != null) { GUILayout.Box(string.Empty, GUILayout.ExpandWidth(true), GUILayout.Height(1)); int numParameters = Animator.parameters.Length; if (numParameters < defaultAnimParameters.Count) { defaultAnimParameters.RemoveRange(numParameters, defaultAnimParameters.Count - numParameters); } else if (numParameters > defaultAnimParameters.Count) { if (numParameters > defaultAnimParameters.Capacity) { defaultAnimParameters.Capacity = numParameters; } for (int i = defaultAnimParameters.Count; i < numParameters; i++) { defaultAnimParameters.Add(new DefaultAnimParameter()); } } for (int i = 0; i < Animator.parameters.Length; i++) { AnimatorControllerParameter parameter = Animator.parameters[i]; switch (parameter.type) { case AnimatorControllerParameterType.Bool: bool boolValue = (defaultAnimParameters[i].intValue == 1); boolValue = EditorGUILayout.Toggle(parameter.name, boolValue); defaultAnimParameters[i] = new DefaultAnimParameter((boolValue) ? 1 : 0); break; case AnimatorControllerParameterType.Float: float floatValue = EditorGUILayout.FloatField(parameter.name, defaultAnimParameters[i].floatValue); defaultAnimParameters[i] = new DefaultAnimParameter(floatValue); break; case AnimatorControllerParameterType.Int: int intValue = EditorGUILayout.IntField(parameter.name, defaultAnimParameters[i].intValue); defaultAnimParameters[i] = new DefaultAnimParameter(intValue); break; } } } } EditorGUILayout.EndVertical(); }