Skip to content

Instantly share code, notes, and snippets.

Avatar
😍
be gentle.

Toru sassembla

😍
be gentle.
View GitHub Profile
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 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);
}
}
@sassembla
sassembla / StopAfterCompileProcess.cs
Created Aug 28, 2018
UnityEditorでPlay中にコンパイルが走った時にコンパイル直後にPlayを停めてくれるやつ
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)
@sassembla
sassembla / ResourcesController.cs
Created Apr 6, 2018
ResourcesController for Autoya.
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);
@sassembla
sassembla / SingletonHolder.cs
Last active Oct 26, 2020
automated singleton holder for Unity. auto-initialize on Player boot time and well isolated.
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 () {
@sassembla
sassembla / XrossPeerUtility.cs
Created Apr 7, 2016
C#でいろんなPeerでログをファイルに吐いたり特定の関数で吐いたりするやつ
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;