public static Sprite CreatePreview(Object obj, TakeSnapshot takeSnapshot) { if (takeSnapshot == null) { return(null); } if (obj is GameObject) { GameObject go = (GameObject)obj; Sprite preview = TakeSnapshot(go, takeSnapshot); return(preview); } else if (obj is Material) { GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.transform.position = Vector3.zero; MeshRenderer renderer = sphere.GetComponent <MeshRenderer>(); renderer.sharedMaterial = (Material)obj; Sprite preview = TakeSnapshot(sphere, takeSnapshot); DestroyImmediate(sphere); return(preview); } return(null); }
private static Sprite TakeSnapshot(GameObject prefab, TakeSnapshot takeSnapshot) { GameObject obj = prefab; if (prefab.GetComponentsInChildren <ExposeToEditor>().Length > 0) { bool isActive = prefab.activeSelf; prefab.SetActive(false); obj = Instantiate(prefab); ExposeToEditor[] componentsToDestroy = obj.GetComponentsInChildren <ExposeToEditor>(); for (int i = 0; i < componentsToDestroy.Length; ++i) { DestroyImmediate(componentsToDestroy[i]); } obj.SetActive(true); prefab.SetActive(isActive); } takeSnapshot.TargetPrefab = obj; Sprite result = takeSnapshot.Run(); if (obj != prefab) { Destroy(obj); } return(result); }
private void OnTakeSnapshot(TakeSnapshot msg) { string htmlCode; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_uriAddress); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); htmlCode = sr.ReadToEnd(); string fileName = Path.Combine(_snapshotBasePath, msg.Id + "_" + DateTime.UtcNow.ToString("yyyyMMddHHmmss") + ".jpg"); var documentMsg = new TakeSnapshotCompleted(msg.Id, fileName); Sender.Tell(documentMsg); if (!Directory.Exists(_snapshotBasePath)) { Directory.CreateDirectory(_snapshotBasePath); } HtmlToImageConverter htmlToImageConv = new NReco.ImageGenerator.HtmlToImageConverter(); try { byte[] jpegBytes = htmlToImageConv.GenerateImage(htmlCode, ImageFormat.Jpeg); File.WriteAllBytes(fileName, jpegBytes); } catch (Exception exc) { throw new GenerateSnapshotException(fileName); } Context.Parent.Tell(documentMsg); }
protected override void Awake() { base.Awake(); IOC.Register <IRTE>(this); IOC.RegisterFallback(this); ExposeToEditor[] editorObjects = ExposeToEditor.FindAll(this, ExposeToEditorObjectType.Undefined, false).Select(go => go.GetComponent <ExposeToEditor>()).ToArray(); for (int i = 0; i < editorObjects.Length; ++i) { editorObjects[i].ObjectType = ExposeToEditorObjectType.EditorMode; } Tools.SnappingMode = SnappingMode.BoundingBox; IsOpened = !IsInPlayMode; PlaymodeStateChanged += OnPlaymodeStateChanged; IsOpenedChanged += OnIsOpenedChanged; Selection.SelectionChanged += OnRuntimeSelectionChanged; Tools.ToolChanged += OnRuntimeToolChanged; Tools.PivotRotationChanged += OnPivotRotationChanged; Undo.UndoCompleted += OnUndoCompleted; Undo.RedoCompleted += OnRedoCompleted; Undo.StateChanged += OnUndoRedoStateChanged; TransformPanel.SetActive(Selection.activeTransform != null); if (Prefabs != null && PrefabsPanel != null && PrefabPresenter != null) { Prefabs = Prefabs.Where(p => p != null).ToArray(); for (int i = 0; i < Prefabs.Length; ++i) { GameObject presenter = Instantiate(PrefabPresenter); presenter.transform.SetParent(PrefabsPanel.transform); presenter.transform.position = Vector3.zero; presenter.transform.localScale = Vector3.one; InstantiatePrefab instantiatePrefab = presenter.GetComponentInChildren <InstantiatePrefab>(); if (instantiatePrefab != null) { instantiatePrefab.Prefab = Prefabs[i]; } TakeSnapshot takeSnapshot = presenter.GetComponentInChildren <TakeSnapshot>(); if (takeSnapshot != null) { takeSnapshot.TargetPrefab = Prefabs[i]; } } } }
private void Awake() { Instance = this; ExposeToEditor[] editorObjects = ExposeToEditor.FindAll(ExposeToEditorObjectType.Undefined, false).Select(go => go.GetComponent <ExposeToEditor>()).ToArray(); for (int i = 0; i < editorObjects.Length; ++i) { editorObjects[i].ObjectType = ExposeToEditorObjectType.EditorMode; } RuntimeTools.SnappingMode = SnappingMode.BoundingBox; RuntimeEditorApplication.IsOpened = !IsInPlayMode; RuntimeEditorApplication.SceneCameras = new[] { EditorCamera }; RuntimeEditorApplication.PlaymodeStateChanged += OnPlaymodeStateChanged; RuntimeEditorApplication.IsOpenedChanged += OnIsOpenedChanged; RuntimeSelection.SelectionChanged += OnRuntimeSelectionChanged; RuntimeTools.ToolChanged += OnRuntimeToolChanged; RuntimeTools.PivotRotationChanged += OnPivotRotationChanged; RuntimeUndo.UndoCompleted += OnUndoCompleted; RuntimeUndo.RedoCompleted += OnRedoCompleted; RuntimeUndo.StateChanged += OnUndoRedoStateChanged; TransformPanel.SetActive(RuntimeSelection.activeTransform != null); if (Prefabs != null && PrefabsPanel != null && PrefabPresenter != null) { Prefabs = Prefabs.Where(p => p != null).ToArray(); for (int i = 0; i < Prefabs.Length; ++i) { GameObject presenter = Instantiate(PrefabPresenter); presenter.transform.SetParent(PrefabsPanel.transform); presenter.transform.position = Vector3.zero; presenter.transform.localScale = Vector3.one; InstantiatePrefab instantiatePrefab = presenter.GetComponentInChildren <InstantiatePrefab>(); if (instantiatePrefab != null) { instantiatePrefab.Prefab = Prefabs[i]; } TakeSnapshot takeSnapshot = presenter.GetComponentInChildren <TakeSnapshot>(); if (takeSnapshot != null) { takeSnapshot.TargetPrefab = Prefabs[i]; } } } }
private void OnTakeSnapshot(TakeSnapshot msg) { IActorRef snapshotActorRef; SnapshotActorRef snapshotActorRefItem; if (_snapshots.Any(wc => !wc.IsBusy)) { snapshotActorRefItem = _snapshots.First(wc => !wc.IsBusy); } else { snapshotActorRefItem = new SnapshotActorRef(msg.Uri); _snapshots.Add(snapshotActorRefItem); } snapshotActorRef = snapshotActorRefItem.ActorReference; snapshotActorRefItem.SetAsBusy(); snapshotActorRef.Forward(new TakeSnapshot(msg.Uri, snapshotActorRefItem.Id)); }
private IEnumerator CoSetIcon() { yield return(new WaitForEndOfFrame()); if ((m_resrouceType & ProjectItemType.Resource) != 0) { Image image = GetComponentInChildren <Image>(); GameObject go = m_resource as GameObject; if (go != null && m_editor != null && m_editor.ProjectManager.IsResource(go)) { if (go.GetComponentInChildren <MeshRenderer>() || go.GetComponentInChildren <SkinnedMeshRenderer>()) { TakeSnapshot takeSnapshot = GetComponentInChildren <TakeSnapshot>(); takeSnapshot.Scale = new Vector3(.9f, .9f, .9f); image.sprite = CreatePreview(m_resource, takeSnapshot); } else { image.sprite = Default; } } else if (m_resource is Material) { Material material = (Material)m_resource; Shader shader = material.shader; if (shader != null && shader.name.StartsWith("Particles/")) { material.shader = Shader.Find("Unlit/Texture"); TakeSnapshot takeSnapshot = GetComponentInChildren <TakeSnapshot>(); image.sprite = CreatePreview(m_resource, takeSnapshot); material.shader = shader; } else { TakeSnapshot takeSnapshot = GetComponentInChildren <TakeSnapshot>(); image.sprite = CreatePreview(m_resource, takeSnapshot); } } else if (m_resource is Texture2D) { Texture2D texture = (Texture2D)m_resource; Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), 100, 0, SpriteMeshType.FullRect, new Vector4(5, 5, 5, 5)); image.sprite = sprite; } else if (m_resource is Sprite) { image.sprite = (Sprite)m_resource; } else { image.sprite = Default; } } else { Image image = GetComponentInChildren <Image>(); if (m_resrouceType == ProjectItemType.Folder) { image.sprite = Folder; } else if (m_resrouceType == ProjectItemType.ExposedFolder) { image.sprite = ExposedFolder; } else if (m_resrouceType == ProjectItemType.Scene) { image.sprite = Scene; } else if (m_resrouceType == ProjectItemType.None) { image.sprite = None; } } yield break; }
public OutputValues TakeSnapshotID(int proxyClientId, string condition) { return(TakeSnapshot.TakeSnapshotID(proxyClientId, condition)); }
private void OnTakeSnapshot(TakeSnapshot msg) { _webCamActor.Forward(msg); }