public virtual InteractableObjectData LoadObjData() { string path = Application.persistentDataPath + "/" + uniqueId; if (!Toolbox.Instance.allIds.Contains(this)) { Toolbox.Instance.allIds.Add(this); } if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); InteractableObjectData data = formatter.Deserialize(stream) as InteractableObjectData; stream.Close(); return(data); } else { // Debug.LogError("Save file not found in " + path); return(null); } }
public void CreateInteractableObject(Vector2 position, InteractableObjectData data) { LoadInteractableObject(position, data); //Add it to the location data m_CurrentLocation.AddInteractableObject(position, data); }
public void Initialize(LocationManager locationManager, Vector2 position, InteractableObjectData data) { m_LocationManager = locationManager; //Position transform.localPosition = position; SetData(data); }
public void CreateInteractableObject() { InteractableObjectData newData = ScriptableObject.Instantiate(m_Data); newData.Interaction = ScriptableObject.Instantiate(newData.Interaction); //Create a copy of it's interaction scriptable object Vector2 localPosition = m_SpawnTransform.position - m_RootTransform.position; m_LocationManager.CreateInteractableObject(localPosition, newData); }
public static void CreateMyAsset() { InteractableObjectData asset = ScriptableObject.CreateInstance <InteractableObjectData>(); AssetDatabase.CreateAsset(asset, "Assets/NewScripableObject.asset"); AssetDatabase.SaveAssets(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }
public virtual void SaveObj() { Debug.Log(gameObject.name); BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/" + uniqueId; FileStream stream = new FileStream(path, FileMode.Create); InteractableObjectData data = new InteractableObjectData(Holdable); formatter.Serialize(stream, data); stream.Close(); }
//Interactable objects public void LoadInteractableObject(Vector2 position, InteractableObjectData data) { //Create it in the world (use pool) InteractableObject interactableObject = (InteractableObject)m_InteractableObjectPool.ActivateAvailableObjectNonDisruptive(); if (interactableObject == null) { return; } if (LoadInteractableObjectEvent != null) { LoadInteractableObjectEvent(interactableObject); } interactableObject.Initialize(this, position, data); }
public void SetData(InteractableObjectData data) { //Data m_Data = data; if (m_Data == null) { m_Image.enabled = false; m_Text.enabled = false; return; } //Use data m_Image.sprite = m_Data.DefaultSprite; m_Text.text = m_Data.DisplayName; //Display (only image, text as fallback) m_Image.enabled = (m_Data.DefaultSprite != null); m_Text.enabled = !m_Image.enabled; }
private void OnRecognize(RecognitionResult result) { foreach (GesturePattern pattern in m_GesturePatterns) { if (result.gesture == pattern) { //Create a new Interactable object! Debug.Log("Create a new " + result.gesture.name + " " + result.score.score); InteractableObjectData newData = ScriptableObject.Instantiate(m_BaseInteractableObjectData); newData.Interaction = ScriptableObject.Instantiate(newData.Interaction); //Create a copy of it's interaction scriptable object Vector2 localPosition = result.gestureData.GetCenter() - (Vector2)m_LocationManager.InteractableObjectRoot.position; m_LocationManager.CreateInteractableObject(localPosition, newData); m_AudioSource.Play(); return; } } }
//used by this script internally public virtual void ObjSetup(InteractableObjectData objectData) { if (objectData != null) { Vector3 position = new Vector3(objectData.position[0], objectData.position[1], objectData.position[2]); gameObject.transform.position = position; gameObject.layer = objectData.layer; gameObject.name = objectData.name; Holdable = GetComponent <HoldableObject>(); //Debug.Log(gameObject.name); if (objectData.layer == 11) { Holdable.LoadShader(true); } if (objectData.layer == 10) { Holdable.LoadShader(false); } } }
public void SetObjectData(InteractableObjectData data) { headerText.text = data.objectName; descriptionText.text = data.objectDescription; }
public void ShowObjectSelection(InteractableObjectData data) { _objectSelectionPanel.SetObjectData(data); _objectSelectionPanel.ShowPanel(); SetPlayerMovement(false); }
//TO BE CALLED FROM TOOLBOX public virtual void Setup() { InteractableObjectData data = LoadObjData(); ObjSetup(data); }
public InteractableObjectAndTransformTuple(Vector2 position, InteractableObjectData data) { m_Position = position; m_Data = data; }
public void AddInteractableObject(Vector2 position, InteractableObjectData data) { AddInteractableObject(new InteractableObjectAndTransformTuple(position, data)); }