Skip to content

Instantly share code, notes, and snippets.

View mattdymott's full-sized avatar

Matt Dymott mattdymott

  • Southampton, England
View GitHub Profile
@katas94
katas94 / WorldSpaceUIDocument.cs
Created October 27, 2021 19:11
Custom Unity component to create a world-space UIToolkit panel
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEngine.EventSystems;
using UnityEngine.Rendering;
namespace Katas.Experimental
{
public class WorldSpaceUIDocument : MonoBehaviour, IPointerMoveHandler, IPointerUpHandler, IPointerDownHandler,
ISubmitHandler, ICancelHandler, IMoveHandler, IScrollHandler, ISelectHandler, IDeselectHandler, IDragHandler
@ScottJDaley
ScottJDaley / Outline.shader
Last active May 24, 2024 01:49
Wide Outlines Renderer Feature for URP and ECS/DOTS/Hybrid Renderer
// Original shader by @bgolus, modified slightly by @alexanderameye for URP, modified slightly more
// by @gravitonpunch for ECS/DOTS/HybridRenderer.
// https://twitter.com/bgolus
// https://medium.com/@bgolus/the-quest-for-very-wide-outlines-ba82ed442cd9
// https://alexanderameye.github.io/
// https://twitter.com/alexanderameye/status/1332286868222775298
Shader "Hidden/Outline"
{
Properties
@NickMercer
NickMercer / ExampleNonUIMonoBehaviour.cs
Created July 14, 2022 00:55
UIToolkitRaycastChecker is a script for Unity UIElements to replicate the EventSystem.current.IsPointerOverGameObject() functionality for UI Elements.
using UnityEngine;
public class ExampleNonUIMonoBehaviour : MonoBehaviour
{
private void Start()
{
//Example of how to check for a position. This is the equivalent of EventSystem.current.IsPointerOverGameObject() except for UI Elements.
if (UIToolkitRaycastChecker.IsPointerOverUI())
{
//I'm under a part of the UI that's set to block raycasts! Don't try to raycast or something.
@mattdymott
mattdymott / TilemapData.cs
Last active November 8, 2022 20:10
Creates a Unity.Physics Mesh Collider from a Unity.CompositeCollider2D in Entities exp1.0 without using SubScenes
public class TilemapData : IComponentData
{
public Grid Grid;
public Tilemap CollisionMap;
}
public struct TilemapData_TAG : IComponentData {}