Exemplo n.º 1
0
    public async void CreatePrimitive(PrimitiveType type)
#endif
    {
        var go = GameObject.CreatePrimitive(type);

        go.transform.position = new UnityEngine.Vector3(defaultPosition.x, defaultPosition.y, defaultPosition.z);
        var draggableHandComponent = go.AddComponent <HandDraggable>();

        draggableHandComponent.RotationMode = HandDraggable.RotationModeEnum.LockObjectRotation;

        var primitive = new UnityPrimitive();

        primitive.Type   = (int)type;
        primitive.Vector = new MixedRealityData.Models.Vector3()
        {
            X = defaultPosition.x, Y = defaultPosition.y, Z = defaultPosition.z
        };

#if UNITY_EDITOR
        UnityPrimitive prim = ObjectsAPI.CreateObject(primitive);
#else
        UnityPrimitive prim = await ObjectsAPI.CreateObject(primitive);
#endif

        var storedObjectComponent = go.AddComponent <StoredObject>();
        storedObjectComponent.storedObject = prim;
    }
Exemplo n.º 2
0
    public static async Task <UnityPrimitive> CreateObject(UnityPrimitive updatedObject)
#endif
    {
        //Here is an example of how to use WebClient class and HttpClient class in UWP

        var url  = string.Format(UrlTemplate, "CreateObject");
        var data = JsonConvert.SerializeObject(updatedObject, Formatting.Indented);

#if UNITY_EDITOR
        var webClient = new WebClient();
        webClient.Headers["content-type"] = "application/json";
        /* Always returns a byte[] array data as a response. */
        var response_data = webClient.UploadString(url, "POST", data);

        // Parse the returned data (if any) if needed.
        var responseString = response_data;

        Debug.LogWarning(responseString);
        return(JsonConvert.DeserializeObject <UnityPrimitive>(response_data));
#else
        var client  = new Windows.Web.Http.HttpClient();
        var content = new Windows.Web.Http.HttpStringContent(data, Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json");
        Windows.Web.Http.HttpResponseMessage response = await client.PostAsync(new Uri(url), content);

        UnityPrimitive result = null;
        if (response.IsSuccessStatusCode)
        {
            var stringres = await response.Content.ReadAsStringAsync();

            result = JsonConvert.DeserializeObject <UnityPrimitive>(stringres);
        }

        return(result);
#endif
    }
Exemplo n.º 3
0
    private void OnExit(UnityPrimitive unityPrimitive)
    {
        var gameObject   = colliderWithText[unityPrimitive.Name];
        var meshRenderer = gameObject.GetComponent <MeshRenderer>();

        meshRenderer.enabled = false;
    }
Exemplo n.º 4
0
    private void BuildCollider(UnityPrimitive unityPrimitive)
    {
        var text3dPrefab = Resources.Load("3DTextPrefabResource", typeof(GameObject));

        textGameObject = Instantiate(text3dPrefab) as GameObject;

        var collider        = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        var capsuleCollider = collider.AddComponent <CapsuleCollider>();

        var position = unityPrimitive.Transform.Position;
        var rotation = unityPrimitive.Transform.Rotation;
        var scale    = unityPrimitive.Transform.Scale;

        collider.transform.position    = new Vector3(position.X, position.Y, position.Z);
        collider.transform.eulerAngles = new Vector3(rotation.X, rotation.Y, rotation.Z);
        collider.transform.localScale  = new Vector3(scale.X, scale.Y, scale.Z);

        var colliderRenderer = collider.GetComponent <MeshRenderer>();

        colliderRenderer.enabled = false;

        var camera         = CameraGameObject.GetComponent <Camera>();
        var cameraPosition = camera.transform.position;

        textGameObject.transform.position = new Vector3(cameraPosition.x, cameraPosition.y, cameraPosition.z + 1);
        var textRenderer = textGameObject.GetComponent <MeshRenderer>();

        textRenderer.enabled = false;

        var textMesh = textGameObject.GetComponent <TextMesh>();

        textMesh.text     = unityPrimitive.Description;
        textMesh.fontSize = 256;

        var eventTrigger = collider.AddComponent <EventTrigger>();
        var enterTrigger = new EventTrigger.TriggerEvent();

        enterTrigger.AddListener((eventData) => OnEnter(unityPrimitive));

        var exitTrigger = new EventTrigger.TriggerEvent();

        exitTrigger.AddListener((eventData) => OnExit(unityPrimitive));

        var entryTriggerEntry = new EventTrigger.Entry()
        {
            callback = enterTrigger, eventID = EventTriggerType.PointerEnter
        };

        eventTrigger.triggers.Add(entryTriggerEntry);

        var exitTriggerEntry = new EventTrigger.Entry()
        {
            callback = exitTrigger, eventID = EventTriggerType.PointerExit
        };

        eventTrigger.triggers.Add(exitTriggerEntry);

        colliderWithText.Add(unityPrimitive.Name, textGameObject);
    }
Exemplo n.º 5
0
    public static void UpdateObject(UnityPrimitive updatedObject)
    {
        //Here is an example of how to use WWW class
        var url = string.Format(UrlTemplate, "UpdateObject");
        Dictionary <string, string> headers = new Dictionary <string, string>();

        headers.Add("Content-Type", "application/json");
        string data = JsonConvert.SerializeObject(updatedObject);

        byte[] pData = System.Text.Encoding.ASCII.GetBytes(data.ToCharArray());
        WWW    api   = new WWW(url, pData, headers);
    }
Exemplo n.º 6
0
    private void BuildUnityItem(UnityPrimitive unityPrimitive)
    {
        var unityResource = Resources.Load(unityPrimitive.PrimativeType, typeof(GameObject));
        var unityInstance = Instantiate(unityResource) as GameObject;

        var position = unityPrimitive.Transform.Position;
        var rotation = unityPrimitive.Transform.Rotation;
        var scale    = unityPrimitive.Transform.Scale;

        unityInstance.transform.position    = new Vector3(position.X, position.Y, position.Z);
        unityInstance.transform.eulerAngles = new Vector3(rotation.X, rotation.Y, rotation.Z);
        unityInstance.transform.localScale  = new Vector3(scale.X, scale.Y, scale.Z);
    }
Exemplo n.º 7
0
 public static UnityPrimitive CreateObject(UnityPrimitive updatedObject)