2using System.Collections;
4using System.Collections.Generic;
6using System.Runtime.InteropServices;
14using NaughtyAttributes;
23using WebSocketSharp.Server;
27using System.Drawing.Imaging;
30using System.Runtime.InteropServices;
37using Image = System.Drawing.Image;
43 [DllImport(
"__Internal")]
44 private static extern void GetUrlFromIndexedDB(
string file,
string dbName,
string otherName);
46 [DllImport(
"__Internal")]
47 private static extern void syncfs();
51 yield
return new WaitForSeconds(2);
62 public void GetUrlFromWebGL(
string value)
64 var url = value.Split(
';')[0];
65 var filePath = value.Split(
';')[1];
66 Debug.Log(
"GetUrlFromWebGL: URL: " + url);
67 Debug.Log(
"GetUrlFromWebGL: URL filePath : " + filePath);
75 StartCoroutine(worker(url));
91 RenderTexture renderTex = RenderTexture.GetTemporary(
95 RenderTextureFormat.Default,
96 RenderTextureReadWrite.Linear);
99 RenderTexture previous = RenderTexture.active;
100 RenderTexture.active = renderTex;
101 Texture2D readableText =
new Texture2D(source.width, source.height);
102 readableText.ReadPixels(
new Rect(0, 0, renderTex.width, renderTex.height), 0, 0);
103 readableText.Apply();
104 RenderTexture.active = previous;
105 RenderTexture.ReleaseTemporary(renderTex);
109 private void tesztRotate()
117 private void extensions()
119 Debug.Log(Path.GetExtension(
"asd.fbx"));
120 Debug.Log(Path.GetExtension(
"asd.FBX"));
121 Debug.Log(Path.GetExtension(
"asd"));
122 Debug.Log(Path.GetExtension(
"asd.tar.gz"));
123 Debug.Log(Path.GetExtension(
"asd.FBX (Clone)"));
127 private void shaderChanger()
129 ShaderChanger.
Change(GetComponentsInChildren<MeshRenderer>(),
"Ciconia Studio/Double Sided/Standard/Diffuse Bump");
133 private void Teszt69()
135 StartCoroutine(FollowHand());
139 private IEnumerator FollowHand()
141 Vector3 targetWorldPos =
to.transform.position;
144 while (Mathf.Abs(Vector3.Distance(
moveItem.transform.position, targetWorldPos)) > 0.02)
146 var handdistance = Vector3.Distance(
hand.transform.position,
from.transform.position);
147 var dist = Vector3.Distance(
from.transform.position,
to.transform.position);
148 var percent = handdistance / dist;
150 moveItem.transform.localPosition = Vector3.Lerp(
from.transform.position,
to.transform.position, percent);
157 moveItem.transform.SetParent(
null,
true);
161 private IEnumerator FollowHandRot()
163 var target = Quaternion.Angle(Quaternion.Euler(
from.transform.eulerAngles), Quaternion.Euler(
to.transform.eulerAngles));
164 var current = Quaternion.Angle(Quaternion.Euler(
from.transform.eulerAngles),
moveItem.transform.rotation);
166 GameObject helper =
new GameObject();
167 helper.transform.position =
moveItem.transform.position;
168 helper.transform.rotation =
moveItem.transform.rotation;
170 while (Mathf.Abs(target - current) > 1)
172 helper.transform.LookAt(
hand.transform);
173 current = Quaternion.Angle(Quaternion.Euler(
from.transform.eulerAngles), helper.transform.rotation);
175 var percent = current / target;
176 moveItem.transform.localPosition = Vector3.Lerp(
from.transform.position,
to.transform.position, percent);
185 private IEnumerator worker(
string url)
188 yield
return new WaitForSeconds(5);
193 [Range(0,1)]
public float percent = 0;
195 [MenuItem(
"Edit/Cleanup Missing Scripts")]
196 static void CleanupMissingScripts ()
198 for(
int i = 0; i < Selection.gameObjects.Length; i++)
200 var gameObject = Selection.gameObjects[i];
201 for (
int j = 0; j < gameObject.transform.childCount; j++)
203 CleanupMissingScripts(gameObject.transform.GetChild(j).gameObject);
205 GameObjectUtility.RemoveMonoBehavioursWithMissingScript(gameObject);
208 var components = gameObject.GetComponents<
Component>();
211 var serializedObject =
new SerializedObject(gameObject);
213 var prop = serializedObject.FindProperty(
"m_Component");
219 for(
int j = 0; j < components.Length; j++)
222 if(components[j] ==
null)
225 prop.DeleteArrayElementAtIndex(j-r);
232 serializedObject.ApplyModifiedProperties();
236 static void CleanupMissingScripts(GameObject go)
238 GameObjectUtility.RemoveMonoBehavioursWithMissingScript(go);
239 for (
int j = 0; j < go.transform.childCount; j++)
241 CleanupMissingScripts(go.transform.GetChild(j).gameObject);
259 void SerializeStageManager()
261 string scenegraph = JsonConvert.SerializeObject(GameObject.FindObjectOfType(typeof(
ActionObject)),
263 pb_Serialization.ConverterSettings);
264 Debug.Log(scenegraph);
268 void SerializeController()
272 pb_Serialization.ConverterSettings);
273 Debug.Log(scenegraph);
274 File.WriteAllText(
"E:\\teszt.json", scenegraph);
278 void SerializeLineDrawer()
282 pb_Serialization.ConverterSettings);
283 Debug.Log(scenegraph);
287 void DeserializeConnections()
292 public Transform a, b, c;
317 Vector3 PredictProjectileMovement(Vector3 InitialPosition, Vector3 InitialVelocity,
float PredictTime)
319 float Restitution = 0.5f;
321 Vector3 Velocity = InitialVelocity;
322 Vector3 GravitationalAcceleration =
new Vector3(0.0f, 0.0f, 0.0f);
324 float DeltaTime = Time.deltaTime;
326 while (t < PredictTime)
359 List<Vector3> lastFewPos =
new List<Vector3>();
360 public bool useAvarageVelocity =
true;
361 public int avaragePoolSize = 20;
365 public List<string> allname =
new List<string>();
370 lastPos = transform.position;
371 foreach (
string arg
in Environment.GetCommandLineArgs())
380 File.WriteAllLines(
"E:\\riplist.txt", allname);
384 private void Update()
387 textUI.text =
Quaternion.Angle(
from.transform.rotation,
to.transform.rotation).ToString();
391 PointerEventData pointer =
new PointerEventData(EventSystem.current);
392 pointer.position = Input.mousePosition;
394 List<RaycastResult> raycastResults =
new List<RaycastResult>();
395 EventSystem.current.RaycastAll(pointer, raycastResults);
397 if (raycastResults.Count > 0)
399 foreach (var go
in raycastResults)
401 Debug.Log(go.gameObject.name, go.gameObject);
405 Debug.Log(EventSystem.current.IsPointerOverGameObject());
411 if (useAvarageVelocity)
413 lastFewPos.Add(transform.position);
414 if (lastFewPos.Count < 10)
return;
415 while (lastFewPos.Count > avaragePoolSize)
417 lastFewPos.RemoveAt(0);
421 for (
int i = 1; i < lastFewPos.Count; i++)
423 velocity += lastFewPos[i] - lastFewPos[i - 1];
426 velocity /= lastFewPos.Count;
432 Velocity = transform.position - lastPos;
433 lastPos = transform.position;
440 Gizmos.DrawWireSphere(PredictMovement(transform, 20), 0.1f);
443 public Vector3 PredictMovement(Transform t,
int frames)
448 for (
int i = 0; i < frames; i++)
461 var egy = GameObject.Find(
"1");
462 var ketto = GameObject.Find(
"2");
465 Debug.Log(
"b1: " + b1.size);
466 Debug.Log(
"b2: " + b2.size);
468 var controller = JsonConvert.DeserializeObject<
Controller>(System.IO.File.ReadAllText(
@"D:\controller.json"));
470 var asd = JsonConvert.SerializeObject(aos, Formatting.Indented, pb_Serialization.ConverterSettings);
472 var dsa = JsonConvert.DeserializeObject<
ActionObject[]>(asd, pb_Serialization.ConverterSettings);
473 Debug.Log(
"success");
479 string scenegraph = JsonConvert.SerializeObject(rootNode,
481 pb_Serialization.ConverterSettings);
488 var inkCanvas = gameObject.AddComponent<
InkCanvas>();
492 [DllImport(
"user32.dll")]
493 static extern IntPtr GetForegroundWindow();
502 GetForegroundWindow();
504 FindWindow(
"UnityWndClass",
"VR Skills Toolkit");
507 MemoryStream msFinger =
new MemoryStream();
508 bmp.Save(msFinger, ImageFormat.Png);
510 var t2d =
new Texture2D(100, 100, TextureFormat.RGB24,
false);
512 t2d.LoadImage(msFinger.ToArray());
515 rawImage.texture = t2d;
524 var voices =
VoiceTTS.InstalledLanguages();
525 foreach (var voice
in voices)
538 void GetAllSameLength()
542 var mesh = GetComponent<MeshFilter>().mesh;
543 var verts = mesh.vertices;
544 var tri = mesh.triangles;
545 var percent = mesh.bounds.size / 100;
546 var maxlength = Mathf.Sqrt(Mathf.Pow(percent.x * 5, 2) + Mathf.Pow(percent.y * 5, 2) + Mathf.Pow(percent.z * 5, 2));
547 foreach (var v1
in verts)
549 foreach (var v2
in verts)
558 if (v1 == v2)
continue;
560 var dist =
Vector3.Distance(v1, v2);
561 if (dist > maxlength)
continue;
564 for (
int i = 0; i < tri.Length - 2; i += 3)
566 List<Vector3> v =
new List<Vector3>() { verts[tri[i]], verts[tri[i + 1]], verts[tri[i + 2]] };
567 if (v.Contains(v1) && v.Contains(v2))
575 if (!sameLength.ContainsKey(dist))
577 sameLength.Add(dist,
new List<Vector3>() { v1, v2 });
581 sameLength[dist].Add(v1);
582 sameLength[dist].Add(v2);
587 Debug.Log($
"num of diff lenghts b4 merge: {sameLength.Count}");
589 var mergedDict =
new SortedDictionary<float, List<Vector3>>();
592 var mergeMaxDiff = (percent / 100).magnitude;
594 foreach (var kv
in sameLength)
600 mergedDict.Add(kv.Key, kv.Value);
603 if (Mathf.Abs(prevKey - kv.Key) < mergeMaxDiff)
605 mergedDict[usingKey].AddRange(kv.Value);
610 mergedDict.Add(kv.Key, kv.Value);
614 Debug.Log($
"num of diff lenghts after merge: {mergedDict.Count}");
617 sameLength = mergedDict;
619 for (
int i = 0; i < sameLength.Count; i++)
626 void GetAllSameLengthButCooler() => StartCoroutine(DontDiePls());
628 IEnumerator DontDiePls()
633 var mesh = GetComponent<MeshFilter>().mesh;
634 var verts = mesh.vertices;
635 var tri = mesh.triangles;
636 var percent = mesh.bounds.size / 100;
637 var maxlength = Mathf.Sqrt(Mathf.Pow(percent.x * 5, 2) + Mathf.Pow(percent.y * 5, 2) + Mathf.Pow(percent.z * 5, 2));
639 foreach (var v1
in verts)
644 for (
int j = k; j < verts.Length; j++)
651 if (v1 == v2)
continue;
652 var dist =
Vector3.Distance(v1, v2);
653 if (dist > maxlength)
continue;
655 for (
int i = 0; i < tri.Length - 2; i += 3)
657 List<Vector3> v =
new List<Vector3>() { verts[tri[i]], verts[tri[i + 1]], verts[tri[i + 2]] };
658 if (v.Contains(v1) && v.Contains(v2))
667 if (!sameLength.ContainsKey(dist))
669 sameLength.Add(dist,
new List<Vector3>() { v1, v2 });
673 sameLength[dist].Add(v1);
674 sameLength[dist].Add(v2);
680 Debug.Log($
"num of diff lenghts b4 merge: {sameLength.Count}");
682 var mergedDict =
new SortedDictionary<float, List<Vector3>>();
685 var mergeMaxDiff = (percent / 100).magnitude;
687 foreach (var kv
in sameLength)
689 var kvvCopy = kv.Value;
690 for (
int i = 0; i < kv.Value.Count - 1; i += 2)
698 foreach (var kv2
in sameLength)
700 count1 += kv2.Value.Count(x => x == v1);
701 count2 += kv2.Value.Count(x => x == v2);
703 if (count1 == 1 && count2 == 1)
709 if (kvvCopy.Count <= 1)
714 kv.Value.AddRange(kvvCopy);
720 mergedDict.Add(kv.Key, kv.Value);
723 if (Mathf.Abs(prevKey - kv.Key) < mergeMaxDiff)
725 mergedDict[usingKey].AddRange(kv.Value);
730 mergedDict.Add(kv.Key, kv.Value);
734 Debug.Log($
"num of diff lenghts after merge: {mergedDict.Count}");
737 sameLength = mergedDict;
739 for (
int i = 0; i < sameLength.Count; i++)
745 SortedDictionary<float, List<Vector3>> sameLength =
new SortedDictionary<float, List<Vector3>>();
746 List<Color> colors =
new List<Color>();
747 private void OnDrawGizmosSelected()
750 foreach (var kvp
in sameLength)
752 if (colors.Count == 0)
753 Gizmos.color =
Color.grey;
755 Gizmos.color = colors[ci];
758 if (kvp.Value.Count > 2)
760 for (
int i = 0; i < kvp.Value.Count; i += 2)
762 Gizmos.DrawLine(kvp.Value[i] * transform.localScale.x + transform.position, kvp.Value[i + 1] * transform.localScale.x + transform.position);
768 public Transform targetObject;
772 var meshFilter = targetObject.GetComponent<MeshFilter>();
773 var skinnedMeshRenderer = targetObject.GetComponent<SkinnedMeshRenderer>();
776 if (meshFilter !=
null)
779 myBounds = meshFilter.sharedMesh.bounds;
781 Vector3[] vertices = meshFilter.mesh.vertices;
786 for (
int i = 0; i < vertices.Length; i++)
790 meshFilter.mesh.colors = colors;
795 else if (skinnedMeshRenderer !=
null)
796 meshOperator =
new MeshOperator(skinnedMeshRenderer.sharedMesh);
801 var renderCamera = Camera.main;
803 Vector3 p = targetObject.InverseTransformPoint(transform.position);
804 Matrix4x4 mvp = renderCamera.projectionMatrix * renderCamera.worldToCameraMatrix * targetObject.localToWorldMatrix;
806 meshOperator?.LocalPointToUV(p, mvp, out uv);
810 Debug.Log(uv.ToString());
817 [DllImport(
"user32.dll")]
819 private static extern IntPtr FindWindow(
string className,
string windowName);
820 [DllImport(
"gdi32.dll")]
821 static extern bool BitBlt(IntPtr hdcDest,
int nxDest,
int nyDest,
int nWidth,
int nHeight, IntPtr hdcSrc,
int nXSrc,
int nYSrc,
int dwRop);
823 [DllImport(
"gdi32.dll")]
824 static extern IntPtr CreateCompatibleBitmap(IntPtr hdc,
int width,
int nHeight);
826 [DllImport(
"gdi32.dll")]
827 static extern IntPtr CreateCompatibleDC(IntPtr hdc);
829 [DllImport(
"gdi32.dll")]
830 static extern IntPtr DeleteDC(IntPtr hdc);
832 [DllImport(
"gdi32.dll")]
833 static extern IntPtr DeleteObject(IntPtr hObject);
835 [DllImport(
"user32.dll")]
836 static extern IntPtr GetDesktopWindow();
838 [DllImport(
"user32.dll")]
839 static extern IntPtr GetWindowDC(IntPtr hWnd);
841 [DllImport(
"user32.dll")]
842 static extern bool ReleaseDC(IntPtr hWnd, IntPtr hDc);
844 [DllImport(
"gdi32.dll")]
845 static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
847 const int SRCCOPY = 0x00CC0020;
849 const int CAPTUREBLT = 0x40000000;
862 desktophWnd = GetDesktopWindow();
863 desktopDc = GetWindowDC(desktophWnd);
864 memoryDc = CreateCompatibleDC(desktopDc);
865 bitmap = CreateCompatibleBitmap(desktopDc, region.Width, region.Height);
866 oldBitmap = SelectObject(memoryDc, bitmap);
868 success = BitBlt(memoryDc, 0, 0, region.Width, region.Height, desktopDc, region.Left, region.Top, SRCCOPY | CAPTUREBLT);
874 throw new System.ComponentModel.Win32Exception();
877 result =
Image.FromHbitmap(bitmap);
881 SelectObject(memoryDc, oldBitmap);
882 DeleteObject(bitmap);
884 ReleaseDC(desktophWnd, desktopDc);
889 [DllImport(
"user32.dll", SetLastError =
true)]
892 [StructLayout(LayoutKind.Sequential)]
UnityEngine.Component Component
UnityEngine.UI.Button Button
System.Drawing.Image Image
WebSocketSharp.ErrorEventArgs ErrorEventArgs
IEnumerator LoadControllerFromJSON(Controller controller)
static Controller Instance
Texture paint to canvas. To set the per-material.
A class that manipulates Mesh.
static FileDragAndDrop instance
static void LoadLevel(string levelJson, bool ssol=false)
static LevelEditorOnLoaded instance
static LineDrawer Instance
static Bounds GetBounds(GameObject go)
static Vector3 ClampAngle(Vector3 value)
static void Change(Material mat, string shaderName)
static Bitmap CaptureWindow(IntPtr hWnd)
static bool GetWindowRect(IntPtr hwnd, out RECT lpRect)
Texture2D DeCompress(Texture2D source)
static Bitmap CaptureRegion(Rectangle region)