Skip to content

Instantly share code, notes, and snippets.

View LuviKunG's full-sized avatar

Thanut Panichyotai LuviKunG

View GitHub Profile
@LuviKunG
LuviKunG / Rider_Dark_Monokai_By_LuviKunG.icls
Created April 6, 2025 10:19
It's my JetBrains Color Scheme the Rider Dark Monokai By @LuviKunG.
<scheme name="Rider Dark Monokai By LuviKunG" version="142" parent_scheme="Darcula">
<metaInfo>
<property name="ide">Rider</property>
<property name="ideVersion">2024.3.7.0.0</property>
<property name="originalScheme">Rider Dark Monokai By LuviKunG</property>
</metaInfo>
<colors>
<option name="ADDED_LINES_COLOR" value="2c4722" />
<option name="ANNOTATIONS_COLOR" value="909090" />
<option name="BookmarkIcon.background" value="d9b72b" />
@LuviKunG
LuviKunG / SimpleSpectatorPawn.cpp
Created March 6, 2025 18:00
A simple spectator pawn class for Unreal Engine 5.X C++ which replacement of a default pawn. Using Enhanced Inputs and implement move speed changing and zooming by change camera field of view.
// Copyright 2025 Thanut Panichyotai (@LuviKunG) All Rights Reserved.
#include "SimpleSpectatorPawn.h"
#include "EnhancedInputComponent.h"
#include "EnhancedInputSubsystems.h"
ASimpleSpectatorPawn::ASimpleSpectatorPawn(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
PrimaryActorTick.bCanEverTick = true;
@LuviKunG
LuviKunG / clean_ds_store.bat
Created August 22, 2024 17:34
Clean all '.DS_Store' that contains in the sub folders.
@echo off
for /r %%i in (.DS_Store) do (del "%%i")
pause
@LuviKunG
LuviKunG / ObjectPickerEditorWindow.cs
Last active May 19, 2024 15:11
Unity editor window that used to pick an object from the asset database such as scriptable objects or prefabs which contains specific component.
using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace LuviKunG.Editor
{
using UnityObject = UnityEngine.Object;
/// <summary>
@LuviKunG
LuviKunG / AssetDatabaseHelper.cs
Last active May 19, 2024 15:10
Unity Editor static class for asset database operations.
using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace LuviKunG.Editor
{
using UnityObject = UnityEngine.Object;
/// <summary>
@LuviKunG
LuviKunG / Obfuscator.cs
Created May 13, 2024 01:41
Simple obfuscator.
namespace LuviKunG
{
static class Obfuscator
{
/// <summary>
/// Obfuscate string with key.
/// </summary>
/// <param name="key">Key to obfuscate.</param>
/// <param name="str">String to obfuscate.</param>
/// <returns>Obfuscated byte array.</returns>
@LuviKunG
LuviKunG / RichTextBlockInputActionDecorator.cpp
Last active April 3, 2024 04:18
Unreal Engine: Display the input action prompt sprite in Rich Text Block depend on binding of input action key mapping of Enhanced input system.
// Copyright by Thanut Panichyotai (@LuviKunG)
// CC BY-SA 4.0
// https://creativecommons.org/licenses/by-sa/4.0/
#include "Widgets/RichTextBlockInputActionDecorator.h"
#include "EnhancedInputSubsystems.h"
#include "InputMappingContext.h"
#include "Fonts/FontMeasure.h"
#include "Kismet/GameplayStatics.h"
@LuviKunG
LuviKunG / FSMException.cs
Created February 7, 2024 18:39
Simple and easy to use of state machines.
using System;
using System.Runtime.Serialization;
namespace LuviKunG.FSM
{
/// <summary>
/// Exception for the state machine.
/// </summary>
public class FSMException : Exception
{
@LuviKunG
LuviKunG / UserInterfaceBehaviour.cs
Created February 7, 2024 17:36
User Interface Behaviour. Inherit from this class to create a User Interface Behaviour which will have a reference to the RectTransform.
namespace UnityEngine
{
using EventSystems;
/// <summary>
/// User Interface Behaviour.
/// Inherit from this class to create a User Interface Behaviour
/// which will have a reference to the <see cref="RectTransform"/>.
/// </summary>
public abstract class UserInterfaceBehaviour : UIBehaviour
@LuviKunG
LuviKunG / TaskSchedulerExtensions.cs
Last active August 21, 2023 07:08
C# extension that helps async to callback main thread sync.
using System;
using System.Threading.Tasks;
namespace LuviKunG.Extensions
{
public static class TaskSchedulerExtensions
{
public static Task ContinueWithCurrentSynchronizationContext(this Task task, Action<Task> action)
{
return task.ContinueWith(action, TaskScheduler.FromCurrentSynchronizationContext());