Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
io.extendreality.zinnia.unity
Advanced tools
A collection of design patterns for the Unity software that can be beneficial in (but not limited to) spatial computing development.
Zinnia
A collection of design patterns for solving common problems.
[zin-ee-uh]
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).
2018.3.10f1
(or above), create a new project using the 3D Template or open an existing project.Scripting Runtime Version
is set to .NET 4.x Equivalent
.
Main Menu -> Edit -> Project Settings
to open the Project Settings
inspector.Player
from the left hand menu in the Project Settings
window.Player
settings panel expand Other Settings
.Scripting Runtime Version
is set to .NET 4.x Equivalent
.Navigate to the Packages
directory of your project.
Adjust the project manifest file manifest.json
in a text editor.
https://registry.npmjs.org/
is part of scopedRegistries
.
io.extendreality
is part of scopes
.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 .
{
"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.
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.
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.
Project
window expand the Packages
node.Zinnia.Unity
child node and choose Reimport
.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.
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.
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.
Please refer to the Extend Reality Contributing guidelines and the Unity project coding conventions.
Please refer to the Extend Reality Code of Conduct.
Code released under the MIT License.
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.
1.15.0 (2020-04-14)
The Cache operation allows a data type value to be stored in a cache and then an appropriate event is raised when the value is updated.
If the value is considered equal then the Unmodified event is emitted. However, if the values are not equal then the Modified event is emitted.
A collection of extractors that firstly extract the RaycastHit data from a SurfaceData and then a collection of extractors that can extract specific data from the RaycastHit.
This new collection means the existing SurfaceDataCollisionPointExtractor becomes obsolete as it is too specific for the extractor pattern and can be achieved by first extracting the RaycastHit from the SurfaceData and then extracting the RaycastHit.point from the RaycastHit output.
(Nearly) all of the extractors now all inherit from a single ValueExtractor class which contains most of the logic ensuring extractors all have a standard API.
There are a couple of extractors that have multiple events for extraction and these don't fit into this model yet so have been left out. These are:
- ObjectDistanceComparatorEventDataExtractor * TransformPropertyApplierEventDataExtractor
These will be updated in the future to provide individual extrators that can then follow the standard Extractor pattern.
All Extractors now also implement
iProcessable
so can all be used with aMomentProcessor
.All Extractors also invoke a
Failed
event which is raised when the extractor has failed to extract the value. This is to ensure thePlayAreaDimensionExtractor
still has the relevant events required and can fit in the standard Extractor pattern. Plus, having aFailed
event is useful to know when an Extractor has failed.The
TransformPropertyExtractor
has been renamed toTransformVector3PropertyExtractor
which originally existed within the same file but now it can simply extend theVector3Extrator
but the old extractor had a separate property for storing the result of the extraction calledLastExtractedValue
. This property is still available but it has been deprecated and theResult
field should now be used to get the extracted value.
The
Zinnia.Data.Type.Transformation.Conversion.Vector2ToFloat
component does the same job as theVector2ComponentExtractor
so there is no need to have both.
The main
Extract()
method should do a check to see if the component is active and enabled and if its not then it should force set theResult
tonull
across all Extractors.Also, the
RequiresBehaviourState
attribute has been added to theExtract
methods that allow the data to be passed in via a parameter as they were allowing mutation to the source even when the component was inactive.Finally, any extractors that didn't have the
Extract
methods that allowed a parameter have been updated to include these methods too.
The TransformPropertyExtractor worked in the opposite way from other extrators where the
Extract
method does all the work and theDoExtract
method just calls theExtract
method without any return.This has now been updated so it follows this standard logic.
The TransformDirectionExtractor had the
UseLocal
logic the wrong way round. It was returning the globalVector3.<direction>
ifUseLocal
was true and returning the direction of theSource
ifUseLocal
was false.This doesn't make sense because
Vector3.<direction>
is the global direction whereas the direction of theSource
is technically local to theSource
.This is also technically a change that can cause breaks because the logic is now flipped. But rather than do a clever deprecation or anything, it's probably just better to handle complaints as its just fixed by checking (or unchecking) the
UseLocal
property.
The coding conventions in regards to namespace order has now been applied so the default VisualStudio namespace order is applied to all scripts.
Any missing code comments have also been added to any non-test related script.
The ValueExtractor now has a way of dealing with the differences between the TResultElement and TEventElement when the InvokeResult method is called by piping the actual logic into a generic InvokeEvent method meaning each of the concrete classes don't have to repeat the logic.
FAQs
A collection of design patterns for the Unity software that can be beneficial in (but not limited to) spatial computing development.
The npm package io.extendreality.zinnia.unity receives a total of 705 weekly downloads. As such, io.extendreality.zinnia.unity popularity was classified as not popular.
We found that io.extendreality.zinnia.unity demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.