SIP - Script Intelligence Pack
cf/x software AG
$0.0
Date |
Price |
---|---|
日時 |
価格($) |
03/17(2018) |
0.0 |
11/23(2024) |
0.0 |
Jump AssetStore
New: Unity 2019 compatibiliy - moved all network code to a separate archive
cf/x Script Intelligence Pack (SIP) drastically simplifies scripting: It allows your scripts to talk to each other - even across the network - and you can easily add this capability to your own, and third-party assets.
SIP makes complex tasks like integrating third-party assets or synchronising multiple object's actions simple and - dare we say? - fun. SIP now adds visual debugging aids in Scene View and strong, filtered logging support to lessen the time spent hunting for bugs and increase the time creating content. Need a smart automatic waypoint system? With SIP, it just takes a couple of lines - it's so simple we have included it as one of the tutorials in our (admittedly notoriously comprehensive) manual!
SIP enables new critical functionality that can multiply your coding ability and efficiency, helps clean up your code, and can make debugging your games much easier. SIP contains powerful Prefabs that can add this capability to third-party assets just by dropping them on the object – a much cleaner solution than adding scripts as components to an object in Editor.
SIP requires a beginner's level of scripting expertise to use, and greatly increases in usefulness with your experience. To be able to use the pack you must know how to add a prefab to an object, and have a general understanding of what the Update() method in a script is for. If your scripting know-how extends to variables and methods, buckle up: you're in for a great ride!
Backbone of the pack is a tiny object that you drop into your scene that facilitates the ability of your scripts to talk to each other - even if they don't know anything about the script they are talking to. Your scripts gain this ability by changing a single word - from there on they have access to powerful features:
- broadcast information to other scripts (e.g: "Enemy Sighted")
- yeah, across the network.
- control swarm behaviour
- enable and disable scripts via notification
- dissolve meshes via notification (SIP includes two dissolve shaders for this purpose)
- react to specific broadcasts (e.g. activate your GameObject upon receiving "Enemy Sighted")
- schedule broadcasts (e.g. send a "Time's Up" broadcast in 30 seconds)
- query scripts for information ("Give me All Enemy Tanks")
To access this, you need to do three simple steps:
- Implement an OnNotification() method in your script. This method is invoked whenever another script wants to talk to it
- tell SIP what you want to be notified of by invoking “subscribeTo()”
- to talk to other scripts, invoke "SendNotification()"
Additionally, SIP provides a powerful “Query” feature that allows your scripts to broadcast a question, and receive answers from all scripts that have something to say. With this, you can easily implement otherwise complex functionality like Multi-Tags (also provided as prefab). Now, to curb your enthusiasm: with great scripting power comes a small price: to use Queries effectively, you must know what a List variable type is and how to use it.
Speaking of Prefabs, we have included a host of Prefabs that you can attach to existing assets that enable them to respond to notifications and queries – without you ever having to write a single line of code. Better yet, our scripts attach themselves to your objects at runtime only (as opposed to using Unity Editor to attach a script as a Component). This makes integration much cleaner, and easier to manage. You no longer must hunt through hundreds of objects to see if you added a script - the scene hierarchy always shows you any notification or query prefab you added. Using the ability to talk to each other, we have built a number of prefabs for you that provide drag-and-drop capabilities to any object, for example:
- Be notified when an Animation State changes (Enter/Exit/Stay/IK/Moved)
- Be notified when an Audio Source changes state (Started/Finished playing a clip)
- Be notified when an object (e.g. a third-party asset) collides with another object – without needing to change that asset’s code
- A (repeating) timer
- Be notified when a particle system collides with another object
- Input relay
In short, SIP allows you to easily do things that otherwise are not-easy-indeed, such as:
- integrating existing assets
- Messing with 'delegates', callbacks or 'Actions' (our notification manager encapsulates all that for you)
- create AI that automatically gathers scene information and acts upon it - see our auto waypoint tutorial
- Exchange information between scripts without knowing if the exist or what they are
- exchange notifications across the network (with SIP, it only takes a couple of lines to create a network chat)
- Schedule consecutive tasks
- Synchronize scripts that control activity
- ‘Role-call’ like behavior when you need to corral multiple objects with specific attributes that can change during runtime
- Clean up an ugly, hard to maintain central Update() method that mix state polling and decision making (e.g. looking if variables change) with execution (e.g. animating a shader)
Given all of its power, SIP is tiny, with a core that is carefully engineered to minimize both memory and performance footprint. It uses less space than a single 512x512 texture, and using the notification mechanism is much less expensive (performance-wise) than using Update() or Invoke(). More importantly, using OnNotification() instead of actively observing an actor during Update() cleans up your code and makes it faster, easier to export to other projects, and more readable.
Rounding out SIP's features are the ability to schedule notifications (e.g. in 20 seconds), suspend and resume notifications, and a host of easy accessory methods to quickly and conveniently convert and pass any information with your notifications or queries.
NOTE:Unity discontinued UNet in 2019.1 - To use networking, you now need to unarchive the 'Network SIP' folder.
NOTE: SIP is not a tool for managing mobile/phone notification alerts.