Skip to content

Instantly share code, notes, and snippets.

View CSaratakij's full-sized avatar
🎯
Focusing

Chatchai Saratakij CSaratakij

🎯
Focusing
View GitHub Profile
@CSaratakij
CSaratakij / AssetImportLogger.cs
Created March 28, 2022 07:14
Asset Import Logger (for re-import issue)
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}'";
@CSaratakij
CSaratakij / remover.py
Last active February 28, 2023 22:35
Json comment remover '//'
#!/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")
@CSaratakij
CSaratakij / unityPlayer.cs
Created June 20, 2023 10:09 — forked from Oleur/unityPlayer.cs
Get current Android activity and init an Android object from Unity
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)
{
@CSaratakij
CSaratakij / SkinnedMeshUpdater.cs
Created September 22, 2023 08:42 — forked from tsubaki/SkinnedMeshUpdater.cs
update SkinnedMesh
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Assertions;
using System;
public class SkinnedMeshUpdater : MonoBehaviour
{
[SerializeField]
SkinnedMeshRenderer original;
@CSaratakij
CSaratakij / BuildTypeEditorWindowTitleStatus.cs
Last active September 30, 2024 07:15
Quick change unity player setting build type from Mono to IL2CPP menu item "Help/Quick change build type/..."
/*
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
@CSaratakij
CSaratakij / SceneViewFollowGamePlayCameraEditorTools.cs
Created May 25, 2024 11:46
Custom Editor Toolbar to make SceneView follow game play camera (Current "main camera")
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")]
@CSaratakij
CSaratakij / TestReactive.cs
Created June 8, 2025 19:45
Unity, simple one way value binding example
using System;
using UnityEngine;
// Note : simple one way value binding example
public class TestReactive : MonoBehaviour
{
public string Message
{
get => message;
set => SetWithNotify(ref message, value, nameof(Message), OnValueChanged);
@CSaratakij
CSaratakij / print256colours.sh
Created November 6, 2025 21:56 — forked from HaleTom/print256colours.sh
Print a 256-colour test pattern in the terminal
#!/bin/bash
# Tom Hale, 2016. MIT Licence.
# Print out 256 colours, with each number printed in its corresponding colour
# See http://askubuntu.com/questions/821157/print-a-256-color-test-pattern-in-the-terminal/821163#821163
set -eu # Fail on errors or undeclared variables
printable_colours=256