• Stars
    star
    321
  • Rank 130,752 (Top 3 %)
  • Language
    C#
  • License
    MIT License
  • Created over 6 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A collection of design patterns for solving common problems.

Zinnia logo

Zinnia

A collection of design patterns for solving common problems.

[zin-ee-uh]

Release License Backlog

Introduction

Zinnia is a collection of design patterns for the Unity software that can be beneficial in (but not limited to) spatial computing development.

Requires the Unity software version 2018.3.10f1 (or above).

Getting Started

Setting up a project

  • Using the Unity software version 2018.3.10f1 (or above), create a new project using the 3D Template or open an existing project.
  • Ensure the project Scripting Runtime Version is set to .NET 4.x Equivalent.
    • In the Unity software select Main Menu -> Edit -> Project Settings to open the Project Settings inspector.
    • Select Player from the left hand menu in the Project Settings window.
    • In the Player settings panel expand Other Settings.
    • Ensure the Scripting Runtime Version is set to .NET 4.x Equivalent.

Adding the package to the Unity project manifest

  • Navigate to the Packages directory of your project.

  • Adjust the project manifest file manifest.json in a text editor.

    • Ensure https://registry.npmjs.org/ is part of scopedRegistries.
      • Ensure io.extendreality is part of scopes.
    • Add io.extendreality.zinnia.unity to dependencies, stating the latest version.

    A minimal example ends up looking like this. Please note that the version X.Y.Z stated here is to be replaced with the latest released version which is currently Release.

    {
      "scopedRegistries": [
        {
          "name": "npmjs",
          "url": "https://registry.npmjs.org/",
          "scopes": [
            "io.extendreality"
          ]
        }
      ],
      "dependencies": {
        "io.extendreality.zinnia.unity": "X.Y.Z",
        ...
      }
    }
  • Switch back to the Unity software and wait for it to finish importing the added package.

Running the tests

If you want to run the tests that come with Zinnia please follow these steps.

Because Zinnia is a package tests have to be explicitly enabled for this package, before the Test Runner can pick them up.

  • Navigate to the Packages directory of your project.

  • Adjust the project manifest file manifest.json in a text editor.

    • Ensure io.extendreality.zinnia.unity is part of testables.

    A minimal example ends up looking like this.

    {
      "scopedRegistries": [
        ...
      ],
      "testables": [
        "io.extendreality.zinnia.unity"
      ],
      "dependencies": {
        ...
      }
    }
  • As noted in the official Unity documentation:

    NOTE: You may need to re-import the package, because the test framework doesn't always immediately pick up changes to the testables attribute.

    • Within the Unity software's Project window expand the Packages node.
    • Right-click on the Zinnia.Unity child node and choose Reimport.
    • Wait for the Unity software to finish re-importing the package.
  • In the Unity software select Main Menu -> Window -> Test Runner.

  • Within the Test Runner window click on the PlayMode tab and the click Run All button.

  • If all the tests pass then the installation was successful.

Note: The tests are not compatible with the Run all in player option.

Updating to the latest version

The package will show up in the Unity Package Manager UI once the above steps have been carried out. From then on the package can be updated by selecting the package in the Unity Package Manager and clicking on the Update button or using the version selection UI.

Naming

Inspired by the Zinnia genus of plants known for their colorful, long lasting flower heads and their great ease to grow from seeds. This repository, much like the Zinnia flower aims to be easy to use and allow your projects to grow and flourish into long lasting, easy to maintain solutions.

Fun Fact: Zinnias have been grown aboard the International Space Station and have demonstrated the capability to blossom in a weightless environment.

Contributing

Please refer to the Extend Reality Contributing guidelines and the Unity project coding conventions.

Code of Conduct

Please refer to the Extend Reality Code of Conduct.

License

Code released under the MIT License.

Disclaimer

These materials are not sponsored by or affiliated with Unity Technologies or its affiliates. "Unity" is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.

More Repositories

1

VRTK

An example of how to use the Tilia packages to create great content with VRTK v4.
C#
3,687
star
2

VRTK.Tutorials.VRBowling

A simple virtual reality bowling game made in the Unity software with VRTK v4
ShaderLab
70
star
3

VRTK.Prefabs

*Deprecated* - A collection of productive prefabs for rapidly building spatial computing solutions in the Unity software.
C#
60
star
4

Malimbe

[Obsolete - No longer maintained] A collection of tools to simplify writing public API components for the Unity software.
C#
51
star
5

Academy

Educational guides and tutorials to accelerate learning.
SCSS
45
star
6

VRTK.Tutorials.OculusIntegration

Prefabs and code for use with the Oculus Integration Unity Package
C#
26
star
7

Tilia.CameraRigs.SpatialSimulator.Unity

A camera rig prefab that simulates spatial hardware for the Unity software
C#
17
star
8

VRTK.Tutorials.YouTube

A collection of scenes built for YouTube tutorial videos.
C#
13
star
9

Tilia.Interactions.PointerInteractors.Unity

Utilize ObjectPointers to initiate an Interactor grab on an Interactable for the Unity software
C#
11
star
10

Tilia.Locomotors.Climbing.Unity

A mechanism that simulates climbing in a spatial environment for the Unity software
C#
10
star
11

Tilia.Interactions.Interactables.Unity

A variety of mechanisms for interacting between interactors and interactables in a spatial scene for the Unity software
C#
9
star
12

Tilia.Interactions.Controllables.Unity

Mechanisms that provide physics based and non-physics based linear and angular interactable controls for the Unity software
C#
9
star
13

Tilia.Interactions.SpatialButtons.Unity

User interface button types that can be used within a spatial environment for the Unity software
C#
7
star
14

Tilia.Indicators.ObjectPointers.Unity

Indicate points in world space with a collection of object based pointers for the Unity software
C#
7
star
15

Tilia.Input.UnityInputManager

Input wrappers for the Unity Input Manager and a collection of common input prefabs
C#
6
star
16

Tilia.Locomotors.TeleportTargets.Unity

A collection of prefabs that provide a specific point or area location to specify a valid teleport location for the Unity software
C#
6
star
17

Tilia.Interactions.SnapZone.Unity

A spatial zone in which an interactable object can be snapped into the designated area for the Unity software
C#
5
star
18

Tilia.CameraRigs.TrackedAlias.Unity

A Tracked Alias prefab providing generic aliases to the active camera rig prefab for the Unity software
C#
5
star
19

Tilia.Output.InteractorHaptics.Unity

Provides the ability to initiate haptic feedback on the controllers connected to an interactor for the Unity software
C#
5
star
20

Tilia.SDK.OculusIntegration.Unity

SDK Wrappers for the Oculus Integration Unity asset
C#
5
star
21

VRTK.Tilia.Package.Importer

A helper utility window for the Unity software to allow easy importing of Tilia packages
C#
5
star
22

Tilia.Trackers.ObscuranceTracker.Unity

Tracks the line of sight between two GameObjects in the scene for the Unity software
C#
5
star
23

Tilia.Visuals.Tooltip.Unity

A visual tooltip label that can be placed in a spatial environment for the Unity software
C#
4
star
24

Tilia.CameraRigs.UnityXR

A camera rig prefab utilizing the legacy XR management system for the Unity software
C#
4
star
25

Tilia.Locomotors.Teleporter.Unity

A collection of prefabs that can move a given GameObject to a specific point in space for the Unity software
C#
4
star
26

Tilia.Visuals.CollisionFader.Unity

Control fading of scene cameras due to collisions of spatial objects for the Unity software
C#
4
star
27

Tilia.DeveloperTools.Unity

A collection of useful developer tools for the Unity software
C#
4
star
28

Tilia.Input.CombinedActions.Unity

A collection of custom actions that combine sub actions into more complex action types for the Unity software
C#
4
star
29

Tilia.CameraRigs.XRPluginFramework.Unity

A camera rig prefab utilizing the XR Plugin Framework for the Unity software
C#
4
star
30

Tilia.Trackers.ColliderFollower.Unity

A collider that follows a source GameObject around the scene via rigidbody velocity within the Unity physics system
C#
4
star
31

Tilia.Visuals.InteractableHighlighter.Unity

Provides the ability to control a highlight state for an interactable object for the Unity software
C#
4
star
32

Tilia.Utilities.ObjectStateSwitcher.Unity

Manages the activation state of a Unity GameObject collection and ensures only one Unity GameObject is active at any time
C#
4
star
33

Tilia.Trackers.PseudoBody.Unity

A representation of a collidable body volume that tracks a GameObject in a spatial scene for the Unity software
C#
4
star
34

.github

A collection of documents to provide consistent information across repositories.
4
star
35

Tilia.Locomotors.AxisMove.Unity

A collection of prefabs that can move a given GameObject based on axis input data for the Unity software
C#
3
star
36

DevOps

A collection of templates to simplify the continuous integration and deployment of projects by @ExtendRealityLtd.
3
star
37

Tilia.SpatialSimulator.Controls.UnityInputManager

A Spatial Simulator control schema for the Unity Input Manager
3
star
38

Tilia.Locomotors.MovementAmplifier.Unity

Amplify real world movement steps in a virtual spatial environment for the Unity software
C#
3
star
39

Tilia.SDK.SteamVR.Unity

SDK Wrappers for the SteamVR Unity asset
C#
3
star
40

Tilia.Mutators.CollisionIgnorer.Unity

Manages the collision states between a collection of GameObjects in the scene for the Unity software
C#
3
star
41

Tilia.Input.UnityInputSystem

Input wrappers for the Unity Input system
C#
3
star
42

Tilia.Visuals.BasicHand.Unity

Basic avatar hand to represent spatial controllers for the Unity software
C#
3
star
43

Tilia.Mutators.ObjectFollower.Unity

A mechanism to make a target GameObject follow a source GameObject in the scene for the Unity software
C#
2
star
44

Tilia.Utilities.Shaders.Unity

A collection of custom shaders for the Unity Software
ShaderLab
2
star
45

Tilia.Visuals.Vignette.Unity

Creates a vignette tunnel in front of a camera view to improve comfort for fast movements in VR for the Unity software
C#
2
star
46

Tilia.Indicators.SpatialTargets.Unity

Indicate points in world space based on the location of a spatial target for the Unity software
C#
2
star
47

VRTK.Website

Public facing website providing useful information and resource links.
HTML
2
star
48

Template.Tilia

Default files for all Tilia repositories
2
star
49

Tilia.SDK.PicoIntegration.Unity

SDK Wrappers for the Pico Integration Unity asset
C#
1
star