Skip to content

Instantly share code, notes, and snippets.

@mstfmrt07
mstfmrt07 / MonoExtensions.cs
Last active February 22, 2023 13:32
A simple C# extension to easily create WaitForSeconds coroutines
using System.Collections;
using UnityEngine;
using UnityEngine.Events;
public static class MonoExtensions
{
public static Coroutine Wait(this MonoBehaviour mono, float delay, UnityAction action)
{
return mono.StartCoroutine(ExecuteAction(delay, action));
}
@mstfmrt07
mstfmrt07 / LayerExtensions.cs
Created October 15, 2022 13:30
A simple shortcut for checking if a layer is inside a LayerMask.
using UnityEngine;
public static class LayerExtensions
{
public static bool Contains(this LayerMask mask, int layer)
{
return (mask.value & 1 << layer) > 0;
}
}
using System.Collections;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float rollDuration = 1f;
private bool isRolling;
public Transform pivot;
public Transform ghostPlayer;
public LayerMask contactWallLayer;
public Transform ghostPlayer;
private IEnumerator RollToDirection(Direction swipeDirection)
{
if (!isRolling)
{
isRolling = true;
float angle = 90f;
Vector3 axis = GetAxis(swipeDirection);
public LayerMask contactWallLayer;
private void Roll(Direction direction)
{
StartCoroutine(RollToDirection(direction));
}
private IEnumerator RollToDirection(Direction swipeDirection)
{
if(!isRolling)
private void Roll(Direction direction)
{
StartCoroutine(RollToDirection(direction));
}
private IEnumerator RollToDirection(Direction swipeDirection)
{
if(!isRolling)
{
isRolling = true;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float rollDuration = 1f;
private bool isRolling;
public Transform pivot;
public InputManager InputManager;
public void OnEndDrag(PointerEventData eventData)
{
if (draggingStarted && direction != Direction.None)
{
//A swipe is detected
if (onSwipeDetected != null)
onSwipeDetected.Invoke(direction);
}
//reset the variables
using System;
public class InputManager : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler
{
public Action<Direction> onSwipeDetected;
}
using UnityEngine;
using UnityEngine.EventSystems;
public class InputManager : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler
{
public enum Direction { Left, Up, Right, Down, None }
Direction direction;
Vector2 startPos, endPos;