npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

com.3d-group.unity-simple-notifications

v1.2.0

Published

Simple UI notifications for Unity game engine.

Downloads

15

Readme

npm package openupm Tests License: MIT

Unity simple notifications

Simple but powerful UI notifications package for Unity game engine.

How to use

  1. Right click scene hierarchy
  2. Click UI/Notifications

HowTo

Now you can send Notifications from your script like this:

Notifications.Send("Hello world");

Notification

Specify type (changes notification color) and click events with optional parameters:

private void Error()
{
   Notifications.Send("Spooky error!", NotificationType.Error, OnClick);
}

public void OnClick()
{
    // Do something.
}

There is also async overload:

await Notifications.SendAsync("Warning!", NotificationType.Warning);

You can also hook Translation / any fuction to handle messages before sending like so:

private void Start()
{
    Notifications.TranslationFunction = Translate;
}

private string Translate(string key)
{
    // Do something.
    return key;
}

Install

via npm

Open Packages/manifest.json with your favorite text editor. Add a scoped registry and following line to dependencies block:

{
  "scopedRegistries": [
    {
      "name": "npmjs",
      "url": "https://registry.npmjs.org/",
      "scopes": [
        "com.3d-group"
      ]
    }
  ],
  "dependencies": {
    "com.3d-group.unity-simple-notifications": "1.0.0"
  }
}

Package should now appear in package manager.

via OpenUPM

The package is also available on the openupm registry. You can install it eg. via openupm-cli.

openupm add com.3d-group.unity-simple-notifications

via Git URL

Open Packages/manifest.json with your favorite text editor. Add following line to the dependencies block:

{
  "dependencies": {
    "com.3d-group.unity-simple-notifications": "https://github.com/3d-group/unity-simple-notifications.git"
  }
}

Tests

The package can optionally be set as testable. In practice this means that tests in the package will be visible in the Unity Test Runner.

Open Packages/manifest.json with your favorite text editor. Add following line after the dependencies block:

{
  "dependencies": {
  },
  "testables": [ "com.3d-group.unity-simple-notifications" ]
}

Performance and thread safety :rocket:

  • Notifications are rate limited based on duplicates sent recently and max notifications queue length
  • Notifications can be send from another thread. Creating GameObjects still always happens on main thread

Here is how it looks when billion notifications are sent simultaneously from another thread: :smile:

Notification

Try it yourself! Code:

using UnityEngine;
using System.Threading;
using Group3d.Notifications;

public class TEST : MonoBehaviour
{
    private void Start()
    {
        new Thread(() =>
        {
            Thread.CurrentThread.IsBackground = true;
            var r = new System.Random();
            int counter = 0;
            while (counter < 1000000000)
            {
                Notifications.Send($"Test {r.Next(0, 10000)}");
                counter++;
            }
        }).Start();
    }
}

Configuration

Confurable from the inspector:

Inspector

Custom notification prefab can be created and assigned in the inspector. If doing so, consider these things:

  • Prefab must have NotificationUI component (included in the package)
  • Prefab must have RectTransform component with anchors set to top-stretch

If prefab is null, notification will be created dynamically.

Optional Font parameter is only used when notification is created dynamically - if that is the only thing you want to change.