Exemple #1
0
    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);
        }
    }
Exemple #2
0
    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);
    }
Exemple #5
0
    public static void CreateMyAsset()
    {
        InteractableObjectData asset = ScriptableObject.CreateInstance <InteractableObjectData>();

        AssetDatabase.CreateAsset(asset, "Assets/NewScripableObject.asset");
        AssetDatabase.SaveAssets();

        EditorUtility.FocusProjectWindow();

        Selection.activeObject = asset;
    }
Exemple #6
0
    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();
    }
Exemple #7
0
    //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;
            }
        }
    }
Exemple #10
0
    //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);
            }
        }
    }
Exemple #11
0
 public void SetObjectData(InteractableObjectData data)
 {
     headerText.text      = data.objectName;
     descriptionText.text = data.objectDescription;
 }
Exemple #12
0
 public void ShowObjectSelection(InteractableObjectData data)
 {
     _objectSelectionPanel.SetObjectData(data);
     _objectSelectionPanel.ShowPanel();
     SetPlayerMovement(false);
 }
Exemple #13
0
    //TO BE CALLED FROM TOOLBOX
    public virtual void Setup()
    {
        InteractableObjectData data = LoadObjData();

        ObjSetup(data);
    }
Exemple #14
0
 public InteractableObjectAndTransformTuple(Vector2 position, InteractableObjectData data)
 {
     m_Position = position;
     m_Data     = data;
 }
Exemple #15
0
 public void AddInteractableObject(Vector2 position, InteractableObjectData data)
 {
     AddInteractableObject(new InteractableObjectAndTransformTuple(position, data));
 }