Skip to content

Instantly share code, notes, and snippets.

@irfanbaysal
irfanbaysal / transformMethods.csv
Last active June 5, 2022 09:54
Differences Between TransformVector,TransformPoint and TransformDirection
Method Position Rotation Scale
TransformPoint
TransformDirection x x
TransformVector x
@irfanbaysal
irfanbaysal / CullingMask.txt
Last active June 5, 2022 09:55
Bitwise Operators by Using CullingMask
// Render everything except layer 14
camera.cullingMask = ~(1 << 14);
// Switch off layer 14, leave others as-is
camera.cullingMask &= ~(1 << 14);
Switch on layer 14, leave others as-is
camera.cullingMask |= (1 << 14);
@irfanbaysal
irfanbaysal / CancellationToken Subscription & Unsubscription in UniTask
Last active December 19, 2022 12:43
CancellationToken Subscription & Unsubscription in UniTask
public void StartAsyncOps(ref CancellationTokenSource cancellationTokenSource)
{
if (cancellationTokenSource != null)
{
cancellationTokenSource.Dispose();
}
cancellationTokenSource = new CancellationTokenSource();
}
public void StopAsyncOps(CancellationTokenSource cancellationTokenSource)
@irfanbaysal
irfanbaysal / Haptic Methods
Created January 10, 2023 13:34
Haptic Methods
protected float hapticTime;
protected virtual void ContinuousHaptic(float limit, HapticPatterns.PresetType presetType = HapticPatterns.PresetType.LightImpact)
{
hapticTime += Time.deltaTime;
hapticTime = Mathf.Clamp(hapticTime, 0, limit);
if (!Mathf.Approximately(hapticTime, limit))
{
return;
}
@irfanbaysal
irfanbaysal / Wave Effect
Last active March 8, 2023 08:15
Wave Effect with DOTween
public void WaveAnim(int i,float delay)
{
Sequence sequence = DOTween.Sequence();
sequence.Append(transform.DOLocalMoveY(.2f, .3f)
.SetEase(Ease.OutFlash)
.SetRelative()
.SetDelay(i*delay)
.SetLoops(2, LoopType.Yoyo));
}
@irfanbaysal
irfanbaysal / Rect Transform Sibling Update
Created January 27, 2023 05:52
Rect Transform Sibling Update
private async UniTask UpdateSibling(int siblingIndex)
{
RectTransform.SetSiblingIndex(siblingIndex);
await UniTask.Yield(cancellationToken: this.GetCancellationTokenOnDestroy());
LayoutRebuilder.ForceRebuildLayoutImmediate(RectTransform);
Canvas.ForceUpdateCanvases();
}
@irfanbaysal
irfanbaysal / HeartBeat Effect
Created March 8, 2023 08:11
HeartBeat effect with DOTween
private void PerformHeartBeatEffect(Transform targetTransform)
{
Sequence sequence = DOTween.Sequence();
sequence.PrependInterval(3f)
.Append(targetTransform.DOPunchScale(.15f * Vector3.one, .5f, 2, 0))
.Append(targetTransform.DOPunchScale(.15f * Vector3.one, .5f, 2, 0)).SetEase(Ease.OutBack).SetLoops(-1);
}
@irfanbaysal
irfanbaysal / Shine Effect
Created March 8, 2023 08:15
Shine Effect with AllInOneShader & DOTween
private void DoShine(Image bgImage)
{
var id = "_ShineLocation";
var bgMat = new Material(bgImage.material);
bgImage.material = bgMat;
bgMat.SetFloat(id, 0f);
_shineSeq?.Kill();
_shineSeq = DOTween.Sequence();
@irfanbaysal
irfanbaysal / Play Mode Scene
Created April 15, 2023 09:42
Play Mode Scene
public class StartSceneWindow : EditorWindow
{
private const string ScenePath = "Assets/Core/Scenes/MainScene.unity";
private void OnGUI()
{
EditorSceneManager.playModeStartScene = (SceneAsset)EditorGUILayout.ObjectField(new GUIContent("Start Scene"),
EditorSceneManager.playModeStartScene, typeof(SceneAsset),false);
if (GUILayout.Button("Set as Start Scene"))
SetPlayModeStartScene(ScenePath);
@irfanbaysal
irfanbaysal / Preset Editor
Last active September 4, 2023 07:16
Preset Editor
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Sirenix.OdinInspector;
using UnityEditor;
using UnityEditor.Presets;
using UnityEngine;
using UnityEngine.Serialization;
namespace PresetEditor