View HubANiceDay.cs
/* | |
kill Unity Hub process continuously after UnityEditor is started. | |
they have no reason to keep living after starting UnityEditor. | |
To:Unity, please stop UnityHub process until user need to use that. and never use macOS's status bar. please add "quit Hub after UnityEditor startd" option. | |
or, please design more small UnityInstaller app and UnityProjectViewer app separately. | |
*/ | |
using System.Diagnostics; | |
using UnityEditor; |
View gist:40fb6fa98ca87f907d8c2f8ccc996ab8
while (true) { | |
if (A) { | |
break; | |
} | |
if (B) { | |
break; | |
} | |
} |
View EditorScreenshotScript
[MenuItem("Window/TakeScreenshotWithCaptureScreenshotAsTexture")] | |
public static void Menu() | |
{ | |
var tex = ScreenCapture.CaptureScreenshotAsTexture(); | |
var jpgBytes = tex.EncodeToJPG(10);// 90KB | |
using (var sw = new StreamWriter("a.jpg")) | |
{ | |
sw.BaseStream.Write(jpgBytes, 0, jpgBytes.Length); | |
} | |
} |
View StopAfterCompileProcess.cs
using UnityEditor; | |
using UnityEngine; | |
public class StopAfterCompileProcess | |
{ | |
[UnityEditor.Callbacks.DidReloadScripts] | |
public static void StopAfterCompile() | |
{ | |
if (EditorApplication.isPlaying) | |
{ |
View uGUIがレイアウトする「想定」の文字の改行や位置情報をどう取得するか
// Text textComponent みたいなものに対して | |
// TextGenerator generator = new TextGenerator(); みたいなのをグローバルで取得しておいて使い回すことができる | |
// invalidate first. | |
generator.Invalidate(); | |
// set content to prefab. | |
var defaultText = textComponent.text; | |
textComponent.text = text; |
View TMProがレイアウトする「想定」の文字の改行や位置情報をどう取得するか
// TMProのコンポーネント TMPro.TextMeshProUGUI textComponentというのがあったとして | |
textComponent.text = text; | |
// textComponentに対してwidthをセットする必要がある。高さは無限設定でOK | |
textComponent.rectTransform.sizeDelta = new Vector2(viewWidth, float.PositiveInfinity); | |
// このメソッドは、コンポーネントがgameobjectにアタッチされて、かつgameobjectがcanvasに乗っている場合のみ動作する。 | |
var textInfos = textComponent.GetTextInfo(text); |
View schemeOverride.mm
#import "UnityAppController.h" | |
@interface OverrideAppDelegate : UnityAppController | |
@end | |
IMPL_APP_CONTROLLER_SUBCLASS(OverrideAppDelegate) | |
View ResourcesController.cs
using System; | |
using System.Collections; | |
using AutoyaFramework; | |
using UnityEngine; | |
public class ResourcesController | |
{ | |
public static void LoadAsset<T>(string assetPath, Action<string, T> succeeded, Action<string, int, string, object> failed) where T : UnityEngine.Object | |
{ | |
var resRequest = Resources.LoadAsync(assetPath); |
View SingletonHolder.cs
using System.Collections.Generic; | |
using System.Linq; | |
using UnityEngine; | |
public class SingletonHolder : MonoBehaviour { | |
private List<Base> instances = new List<Base>(); | |
private static SingletonHolder holderInstance; | |
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void NewSingleton () { |
View XrossPeerUtility.cs
using System; | |
using System.IO; | |
using System.Collections.Generic; | |
using System.Globalization; | |
namespace XrossPeerUtility { | |
public class XrossPeer { | |
static string logPath = string.Empty; | |
private static Action<string> logAction; |
NewerOlder