protected override IEnumerator AnimateWorkshop(float duration, VoidDelegate onFinish) { m_previewObject.SetActive(true); Hologram holo = CreateHologram(m_previewObject); Vector3 rotationAxis = (m_dropzone.transform.position - Camera.main.transform.position).normalized; for (float t = 0; t < 2; t += Time.deltaTime / duration) { // o - 1 - 1 m_previewObject.transform.localScale = holo.transform.localScale = Vector3.one * 40 * Mathf.Lerp(0, 1, Mathf.PingPong(t, 1)); m_previewObject.transform.RotateAround(m_dropzone.transform.position, -rotationAxis, Time.deltaTime * 20); DrawHologram(holo, m_previewObject.transform); yield return(new WaitForEndOfFrame()); } Destroy(holo.gameObject); m_previewObject.SetActive(false); m_previewObject.transform.position = previewInitPos; m_previewObject.transform.rotation = previewInitRos; m_placingEnabled = true; onFinish.Invoke(); }
/// <summary> /// EXAMPLE BEHAVIOUR /// Queries the database and names the object based on the result. /// </summary> // Use this for initialization void Start() { // Add RemoteTransformations script to object and set its entry this.gameObject.AddComponent <RemoteTransformations>().entry = entry; // Qurey additional data to get the name string value = ""; if (entry.getAdditionalData() != null && entry.getAdditionalData().TryGetValue("name", out value)) { // Set name this.gameObject.name = value; } this.gameObject.GetComponent <Renderer>().enabled = false; Hologram hologram = entry.getHologram(); Hologram.hologramType hologramType = hologram.getType(); // Check for image hologram if (hologramType == Hologram.hologramType.IMAGE_HOLOGRAM) { // Get mesh renderer MeshRenderer meshRenderer = this.GetComponent <MeshRenderer>(); // Get material and texture Material material = meshRenderer.material; Texture texture = material.mainTexture; // Get session and face switcher GameObject session = GameObject.Find("AR Session Origin"); // Get AR Plane Manager ARPlaneManager aRPlaneManager = session.GetComponent <ARPlaneManager>(); // Change the material of the prefab of AR Plane Manager aRPlaneManager.planePrefab.GetComponent <MeshRenderer>().sharedMaterial = material; } }
void AnchorHologram(Hologram holo) { Outline outline = holo.referenceObject.GetComponent <Outline>(); if (outline) { outline.enabled = false; } GameObject copy = Instantiate(holo.referenceObject); copy.transform.position = holo.transform.position; copy.transform.rotation = holo.transform.rotation; copy.transform.parent = holo.projectedSegment.transform; copy.layer = LayerMask.NameToLayer("Planet"); MTK_Interactable interact = copy.GetComponent <MTK_Interactable>(); interact.isDroppable = false; interact.isDistanceGrabbable = false; copy.AddComponent <ObjectOnPlanet>().referenceObject = holo.referenceObject; Destroy(copy.GetComponent <Rigidbody>()); holo.referenceObject.transform.position = -1000f * Vector3.up; holo.referenceObject.GetComponent <Rigidbody>().isKinematic = true; }
public void stopHologram(bool cleanup = false) { if (Hologram == null) { return; } var timer = GetNode <Timer>("HologramTimer"); if (!cleanup) { if (timer.TimeLeft > 0f) { return; } timer.Start(); GetNode <AudioStreamPlayer2D>("Audio/HoloStopPlayer2D").Play(); } Hologram.QueueFree(); Hologram = null; var m = Modulate; m.a = 1f; Modulate = m; GetNode <Sprite>("AttachmentSprite").Modulate = new Color(1, 1, 1, 1); }
void Start() { PC = FindObjectOfType <PlayerController>(); ML = FindObjectOfType <CameraRotation>(); IsthereaDrone = false; HG = FindObjectOfType <Hologram>(); }
// Update is called once per frame void Update() { // Set image holgram as face texture Hologram hologram = entry.getHologram(); Hologram.hologramType hologramType = hologram.getType(); // Check for image hologram if (hologramType == Hologram.hologramType.IMAGE_HOLOGRAM) { // Get mesh renderer MeshRenderer meshRenderer = this.GetComponent <MeshRenderer>(); // Get material and texture Material material = meshRenderer.material; Texture texture = material.mainTexture; // Get session and face switcher GameObject session = GameObject.Find("AR Session Origin"); FaceMaterialSwitcher faceMaterialSwitcher = session.GetComponentInChildren <FaceMaterialSwitcher>(); // Set material and texture if (faceMaterialSwitcher != null) { // Set materials (overwrite all other face materials) int size = faceMaterialSwitcher.faceMaterials.Length; faceMaterialSwitcher.faceMaterials = new Material[size]; for (int i = 0; i < size; i++) { faceMaterialSwitcher.faceMaterials[i] = material; } } } }
private void OnEnable() { Worktop.instance.onClick.AddListener(Build); if (_hologram == null) { _hologram = GetComponent <Hologram>(); } }
/** * Entry constructor * @param target * @param hologram */ public Entry(Target target, Hologram hologram) { // Initialize this.target = target; this.hologram = hologram; this.sdks = new bool[System.Enum.GetNames(typeof(SDKs)).Length]; this.additionalData = new Dictionary <string, string>(); }
public void EndBuilding() { IsBuilding = false; isShiftBuilding = false; template = null; SetHighlights(currentlyHighlighted, false); if (hologram != null) { Destroy(hologram.gameObject); hologram = null; } }
public void SpawnHologram(Player player, string text) { Level level = player.Level; var entity = new Hologram(level) { KnownPosition = player.KnownPosition, NameTag = text }; entity.SpawnEntity(); }
public void StartBuilding(Building buildingTemplate) { if (IsBuilding) { EndBuilding(); } ignoreClicks = true; IsBuilding = true; template = buildingTemplate; hologram = Instantiate(template.ConstructionHologram); }
public static GameObject CreateHologram(HologramData data) { GameObject hologram = Instantiate(new GameObject("Hologram")); Hologram hologramComponent = hologram.AddComponent <Hologram>(); BuildingPrototype buildingPrototypeComponent = hologram.AddComponent <BuildingPrototype>(); SpriteRenderer spriteRenderer = hologram.AddComponent <SpriteRenderer>(); spriteRenderer.sortingLayerName = "Buildings"; spriteRenderer.sortingOrder = 100; spriteRenderer.sprite = data.hologramSprite; spriteRenderer.color = data.canBuildColor; hologramComponent.spriteRenderer = spriteRenderer; hologramComponent.hologramData = data; return(hologram); }
//public List<GameObject> ListOfHolograms; // Start is called before the first frame update public void Start() { for (int i = 0; i < ModelToAssemble.transform.childCount; i++) { OrderOfAssembly.Add(ModelToAssemble.transform.GetChild(i).gameObject.GetComponent <Part>()); } for (int i = 0; i < OrderOfAssembly.Count; i++) { GameObject hologram = Instantiate(OrderOfAssembly[i].gameObject, ModelToAssemble.transform); hologram.GetComponent <MeshRenderer>().material = HologramMaterial; Hologram hologramComponent = hologram.AddComponent <Hologram>(); OrderOfAssembly[i].hologram = hologramComponent; } ModelToAssemble.GetComponent <ModelPartSpreader>().Spread(); }
private void UpdateHologram(Instruction.EngineFields engineFields, long frameID) { switch (engineFields.Sandwich.State) { case Instruction.Sandwich.Types.State.Bread: _hologram = Hologram.Ham; break; case Instruction.Sandwich.Types.State.Ham: _hologram = Hologram.Lettuce; break; case Instruction.Sandwich.Types.State.Lettuce: _hologram = Hologram.Bread; break; case Instruction.Sandwich.Types.State.Half: _hologram = Hologram.Tomato; break; case Instruction.Sandwich.Types.State.Tomato: _hologram = Hologram.BreadTop; break; default: _hologram = Hologram.None; _guidancePosReady = true; return; } UnityEngine.Debug.Log("Hologram x: " + engineFields.Sandwich.HoloX); UnityEngine.Debug.Log("Hologram y: " + engineFields.Sandwich.HoloY); UnityEngine.Debug.Log("Hologram depth: " + engineFields.Sandwich.HoloDepth); Matricies matricies; _frameIdMatriciesMap.TryRemove(frameID, out matricies); _guidancePos = Pixel2WorldPos( (float)engineFields.Sandwich.HoloX, (float)engineFields.Sandwich.HoloY, (float)engineFields.Sandwich.HoloDepth, matricies.projectionMatrix, matricies.cameraToWorldMatrix); _guidancePosReady = true; }
public IEnumerator getHologramsTest() { Hologram hologram = new Hologram(); yield return(HoloStorageClient.GetHologram(hologram, "h101")); Assert.AreEqual(hologram.hid, "h101"); Assert.AreEqual(hologram.title, "Lungs Hologram"); Assert.AreEqual(hologram.description, "Lungs of patient"); Assert.AreEqual(hologram.contentType, "model/gltf-binary"); Assert.AreEqual(hologram.fileSizeInKb, 1471); Assert.AreEqual(hologram.bodySite, "chest"); Assert.AreEqual(hologram.dateOfImaging, "2017-07-15T15:20:25Z"); Assert.AreEqual(hologram.creationDate, "2019-01-02T12:30:45Z"); Assert.AreEqual(hologram.creationMode, "GENERATE_FROM_IMAGING_STUDY"); Assert.AreEqual(hologram.creationDescription, "Demo of output generated by the lung segmentation pipeline"); Assert.AreEqual(hologram.aid, "a101"); Assert.AreEqual(hologram.pid, "p100"); }
private void Update() { if (m_placingEnabled) { for (int i = 0; i < m_handsInTrigger.Count; ++i) { MTK_InteractHand hand = m_handsInTrigger[i].First; Hologram holo = m_handsInTrigger[i].Second; if (hand.m_grabbed != null) { if (hand.m_grabbed != m_dropzone.catchedObject) { if (!holo) { holo = CreateHologram(hand.m_grabbed.gameObject); m_handsInTrigger[i].Second = holo; } holo.gameObject.SetActive(true); DrawHologram(holo, hand.m_grabbed.transform); } } else { if (holo) { if (holo.isActiveAndEnabled) { AnchorHologram(holo); } hand.GetComponentInParent <MTK_InputManager>().Haptic(1); AkSoundEngine.PostEvent("Play_Pose", gameObject); m_handsInTrigger[i].Second = null; Destroy(holo.gameObject); } } } } }
void DrawHologram(Hologram holo, Transform originTransform) { Vector3 origin = originTransform.position; Vector3 dir = m_dropzone.transform.position - origin; RaycastHit hit; if (Physics.Raycast(origin, dir, out hit, 1f, LayerMask.GetMask("Planet"))) { if (hit.distance < m_hologramDistance) { holo.gameObject.SetActive(true); holo.gameObject.transform.position = hit.point; holo.gameObject.transform.rotation = originTransform.rotation; holo.projectedSegment = hit.collider.gameObject; } else { holo.gameObject.SetActive(false); } } }
void Start() { m_cPieceManager = PieceManager.Instance; m_iPiecesCount = m_cPieceManager.PieceCount; m_cPieces = new GameObject[m_iPiecesCount]; m_cPieces = m_cPieceManager.GetPieces(); m_cHologramComponent = new Hologram[m_iPiecesCount]; for (int i = 0; i < m_iPiecesCount; i++) { GameObject piece = m_cPieces[i]; piece.transform.parent = m_cPieceSpawn.transform; piece.transform.localPosition = Vector3.zero; piece.transform.localRotation = Quaternion.identity; Hologram hologram = piece.GetComponent <Hologram>(); hologram.SwitchModelToHologram(); m_cHologramComponent[i] = hologram; } m_fTimer = m_fTimeBetweenTwoPiece; }
public override void OnInspectorGUI() { m_object.Update(); DrawDefaultInspector(); Hologram _2dxScript = (Hologram)target; //Texture2D icon = Resources.Load("2dxfxinspector-anim") as Texture2D; //if (icon) //{ // Rect r; // float ih = icon.height; // float iw = icon.width; // float result = ih / iw; // float w = Screen.width; // result = result * w; // r = GUILayoutUtility.GetRect(ih, result); // EditorGUI.DrawTextureTransparent(r, icon); //} EditorGUILayout.PropertyField(m_object.FindProperty("ActiveUpdate"), new GUIContent("Active Update", "Active Update, for animation / Animator only")); EditorGUILayout.PropertyField(m_object.FindProperty("ForceMaterial"), new GUIContent("Shared Material", "Use a unique material, reduce drastically the use of draw call")); if (_2dxScript.ForceMaterial == null) { _2dxScript.ActiveChange = true; } else { if (GUILayout.Button("Remove Shared Material")) { _2dxScript.ForceMaterial = null; _2dxScript.ShaderChange = 1; _2dxScript.ActiveChange = true; _2dxScript.CallUpdate(); } EditorGUILayout.PropertyField(m_object.FindProperty("ActiveChange"), new GUIContent("Change Material Property", "Change The Material Property")); } if (_2dxScript.ActiveChange) { EditorGUILayout.BeginVertical("Box"); Texture2D icone = Resources.Load("2dxfx-icon-time") as Texture2D; EditorGUILayout.PropertyField(m_object.FindProperty("Speed"), new GUIContent("Time Speed", icone, "Change the time speed")); icone = Resources.Load("2dxfx-icon-distortion") as Texture2D; EditorGUILayout.PropertyField(m_object.FindProperty("Distortion"), new GUIContent("Distortion", icone, "Change the distortion")); EditorGUILayout.BeginVertical("Box"); icone = Resources.Load("2dxfx-icon-fade") as Texture2D; EditorGUILayout.PropertyField(m_object.FindProperty("_Alpha"), new GUIContent("Fading", icone, "Fade from nothing to showing")); EditorGUILayout.EndVertical(); EditorGUILayout.EndVertical(); } m_object.ApplyModifiedProperties(); }
public Entry ParseEntry(JSONNode entry) { // Create entry Entry entryObject = new Entry(); entryObject.setId(entry["id"]); // Create target Target targetObject; var target = entry["target"]; string targetType = target["type"]; switch (targetType) { case "IMAGE_TARGET": ImageTarget imageTargetObject = new ImageTarget(); imageTargetObject.setFilename(target["filename"]); imageTargetObject.setStorageID(target["storageID"]); imageTargetObject.setId(target["id"]); imageTargetObject.setType(Target.targetType.IMAGE_TARGET); targetObject = imageTargetObject; break; case "GEOLOCATION_TARGET": GeolocationTarget geolocationTargetObject = new GeolocationTarget(); geolocationTargetObject.setCity(target["city"]); geolocationTargetObject.setContinent(target["continent"]); geolocationTargetObject.setCountry(target["country"]); geolocationTargetObject.setId(target["id"]); geolocationTargetObject.setLatitude(target["latitude"]); geolocationTargetObject.setLongitude(target["longitude"]); geolocationTargetObject.setPlace(target["place"]); geolocationTargetObject.setType(Target.targetType.GEOLOCATION_TARGET); targetObject = geolocationTargetObject; break; case "BRICK_TARGET": BrickTarget brickTargetObject = new BrickTarget(); brickTargetObject.setId(target["id"]); brickTargetObject.setType(Target.targetType.BRICK_TARGET); targetObject = brickTargetObject; break; default: targetObject = new Target(); break; } List <string> hologramsListObject = new List <string>(); int j = 0; var hologramID = target["holograms"][j]; while (hologramID != null) { hologramsListObject.Add(hologramID); hologramID = target["holograms"][++j]; } targetObject.setHolograms(hologramsListObject); entryObject.setTarget(targetObject); // Create Hologram Hologram hologramObject; var hologram = entry["hologram"]; string hologramType = hologram["type"]; switch (hologramType) { case "IMAGE_HOLOGRAM": ImageHologram imageHologramObject = new ImageHologram(); imageHologramObject.setFilename(hologram["filename"]); imageHologramObject.setId(hologram["id"]); imageHologramObject.setStorageID(hologram["storageID"]); imageHologramObject.setTargetID(hologram["targetID"]); imageHologramObject.setType(Hologram.hologramType.IMAGE_HOLOGRAM); imageHologramObject.setTarget(targetObject); hologramObject = imageHologramObject; break; case "VIDEO_HOLOGRAM": VideoHologram videoHologramObject = new VideoHologram(); videoHologramObject.setFilename(hologram["filename"]); videoHologramObject.setId(hologram["id"]); videoHologramObject.setStorageID(hologram["storageID"]); videoHologramObject.setTargetID(hologram["targetID"]); videoHologramObject.setType(Hologram.hologramType.VIDEO_HOLOGRAM); videoHologramObject.setTarget(targetObject); hologramObject = videoHologramObject; break; case "ECHO_HOLOGRAM": EchoHologram echoHologramObject = new EchoHologram(); echoHologramObject.setFilename(hologram["filename"]); echoHologramObject.setId(hologram["id"]); echoHologramObject.setEncodedEcho(hologram["encodedEcho"]); echoHologramObject.setTextureFilename(hologram["textureFilename"]); echoHologramObject.setTargetID(hologram["targetID"]); echoHologramObject.setType(Hologram.hologramType.ECHO_HOLOGRAM); echoHologramObject.setTarget(targetObject); List <string> videosListObject = new List <string>(); j = 0; var videoID = hologram["vidoes"][j]; while (videoID != null) { videosListObject.Add(videoID); hologramID = hologram["vidoes"][++j]; } echoHologramObject.setVidoes(videosListObject); hologramObject = echoHologramObject; break; case "MODEL_HOLOGRAM": ModelHologram modelHologramObject = new ModelHologram(); modelHologramObject.setEncodedFile(hologram["encodedFile"]); modelHologramObject.setFilename(hologram["filename"]); modelHologramObject.setId(hologram["id"]); modelHologramObject.setMaterialFilename(hologram["materialFilename"]); modelHologramObject.setMaterialStorageID(hologram["materialStorageID"]); modelHologramObject.setStorageID(hologram["storageID"]); modelHologramObject.setTargetID(hologram["targetID"]); var textureFilenames = hologram["textureFilenames"].AsArray; var textureStorageIDs = hologram["textureStorageIDs"].AsArray; for (j = 0; j < textureFilenames.Count; j++) { modelHologramObject.addTexture(textureFilenames[j], textureStorageIDs[j]); } modelHologramObject.setType(Hologram.hologramType.MODEL_HOLOGRAM); modelHologramObject.setTarget(targetObject); // If applicable, update model hologram with .glb version if (entry["additionalData"]["glbHologramStorageID"] != null) { modelHologramObject.setFilename(entry["additionalData"]["glbHologramStorageFilename"]); modelHologramObject.setStorageID(entry["additionalData"]["glbHologramStorageID"]); } hologramObject = modelHologramObject; break; default: hologramObject = new Hologram(); break; } entryObject.setHologram(hologramObject); // Create SDKs array bool[] sdksObject = new bool[9]; var sdks = entry["sdks"].AsArray; for (j = 0; j < 9; j++) { sdksObject[j] = sdks[j]; } entryObject.setSupportedSDKs(sdksObject); // Create Additional Data var additionalData = entry["additionalData"]; foreach (var data in additionalData) { entryObject.addAdditionalData(data.Key, data.Value); } // Add entry to database dbObject.addEntry(entryObject); // Return return(entryObject); }
public void addHologram(Hologram hologram) { this.holograms.Add(hologram.getId()); }
/** * Hologram setter * @param hologram */ public void setHologram(Hologram hologram) { this.hologram = hologram; }
void Update() { //UnityEngine.Debug.Log("Update Called"); // Performance measurements //_fpsCounter++; //if (_fpsCounter % 100 == 0) // UnityEngine.Debug.Log("fps: " + (_fpsCounter * 1000 / (GetTimeMillis() - _startTime))); if (!_isInitialized) { return; } if (_isCameraReady && !_isDoingTimerTask && !_isCapturing) { _isDoingTimerTask = true; _isCapturing = true; // Start capture if (Const.HOLO_CAPTURE) { if (_isHoloCaptureFrame) { _cameraPara.hologramOpacity = 0.9f; } else { _cameraPara.hologramOpacity = 0.0f; } _photoCaptureObject.StartPhotoModeAsync(_cameraPara, false, OnPhotoModeStartedHOLO); } else { _photoCaptureObject.TakePhotoAsync(OnProcessFrame); } } // Display the verbal guidance on the panel textDisplay.text = _speechFeedback; // Place the object at the calculated position. if (_guidancePosReady) { Vector3 tempGuidancePos = _guidancePos;// + new Vector3(0, Cylinder.transform.localScale.y / 1.8f, 0); Vector3 tempRight = Camera.main.transform.right; if (_previousHologram == _hologram) { if (Vector3.Distance(gameObject.transform.position, tempGuidancePos) < 0.05) { gameObject.transform.position = gameObject.transform.position * 0.95f + tempGuidancePos * 0.05f; gameObject.transform.right = gameObject.transform.right * 0.95f + tempRight * 0.05f; } else { gameObject.transform.position = tempGuidancePos; gameObject.transform.right = tempRight; } } else { switch (_previousHologram) { case Hologram.Bread: Bread.SetActive(false); break; case Hologram.Ham: Ham.SetActive(false); break; case Hologram.Lettuce: Lettuce.SetActive(false); break; case Hologram.Tomato: Tomato.SetActive(false); break; case Hologram.BreadTop: Breadtop.SetActive(false); break; default: break; } _useDefaultStabilizationPlane = false; switch (_hologram) { case Hologram.Bread: Bread.SetActive(true); break; case Hologram.Ham: Ham.SetActive(true); break; case Hologram.Lettuce: Lettuce.SetActive(true); break; case Hologram.Tomato: Tomato.SetActive(true); break; case Hologram.BreadTop: Breadtop.SetActive(true); break; default: _useDefaultStabilizationPlane = true; break; } _previousHologram = _hologram; gameObject.transform.position = tempGuidancePos; gameObject.transform.right = tempRight; } _guidancePosReady = false; } if (!_useDefaultStabilizationPlane) { var normal = -Camera.main.transform.forward; var position = gameObject.transform.position; UnityEngine.VR.WSA.HolographicSettings.SetFocusPointForFrame(position); } }
public void SetHologram(Hologram setHologram) { hologram = setHologram; }