(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
using UnityEngine; | |
using UnityEditor; | |
using UnityEditor.Overlays; | |
using UnityEditor.Toolbars; | |
#if !UNITY_EDITOR | |
#error This script must be placed under "Editor/" directory. | |
#endif | |
[Overlay(typeof(SceneView), "CustomToolbar/SceneViewFollowGamePlayCameraOverlay")] |
/* | |
Note : adhocs for unity 2022.3.31 | |
TODO : Need to Support Unity 6 with the new callback : https://docs.unity3d.com/6000.0/Documentation/ScriptReference/EditorApplication.UpdateMainWindowTitle.html | |
and the new force update window title method : https://docs.unity3d.com/6000.0/Documentation/ScriptReference/EditorApplication.UpdateMainWindowTitle.html | |
*/ | |
#if UNITY_2022_3_31 | |
#define EDITOR_ALLOW_BUILDTYPE_STATUS | |
#endif |
using UnityEngine; | |
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine.Assertions; | |
using System; | |
public class SkinnedMeshUpdater : MonoBehaviour | |
{ | |
[SerializeField] | |
SkinnedMeshRenderer original; |
AndroidJavaObject localMediaPlayer = null; | |
using (AndroidJavaClass javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) | |
{ | |
using (currentActivity = javaUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) | |
{ | |
localMediaPlayer = new AndroidJavaObject("my/plugin/vr/ExoPlayerBridge", currentActivity); | |
if (localMediaPlayer != null) | |
{ |
#!/usr/bin/env python3 | |
import argparse | |
from pathlib import Path | |
commentSymbol = "//" | |
parser = argparse.ArgumentParser(description="Remove comment from json.") | |
parser.add_argument("input", help="input file path") | |
parser.add_argument("output", help="output file path") |
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
using UnityEditor; | |
public class AssetImportLogger : AssetPostprocessor | |
{ | |
public const string IS_ENABLE_KEY = "KEY_ASSET_IMPORT_LOGGER_IS_ENABLE"; | |
public const string IS_START_KEY = "KEY_ASSET_IMPORT_LOGGER_IS_START"; | |
public const string LOG_FORMAT = "path '{0}'"; |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
You want to use a live wallpaper in x11? | |
Great!!...but It come as a cost. | |
I did experiment with .gif backend and non hardware accelerate backend, It sucks. | |
CPU usage was so high (40% up just for idle), unacceptable for my laptop. | |
Running with those backend for such a really long time will slowly turn your laptop into the hot potato. | |
But don't be upset, we can reduce those cost. | |
Using the video player with hardware video decoding support can reduce the cost. |
using UnityEngine; | |
public class Example : MonoBehavoiur | |
{ | |
[SerializeField] | |
GameObject prefab; | |
bool isTrigger = false; | |
void OnTriggerEnter(Collider col) |
using System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
public class Utils : MonoBehaviour | |
{ | |
int[] numbers = new int[] { | |
1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0 | |
}; |