All Projects → HouraiTeahouse → HouraiOptions

HouraiTeahouse / HouraiOptions

Licence: other
Simplified and automatic game option creation for Unity3D games.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to HouraiOptions

pinance
Python module(s) to get stock data, options data and news.
Stars: ✭ 70 (+288.89%)
Mutual labels:  options
openctp
CTP开放平台提供A股、港股、美股、期货、期权等全品种接入通道,通过提供中泰证券XTP、华鑫证券奇点、东方证券OST、东方财富证券EMT、盈透证券TWS等各通道的CTPAPI接口,CTP程序可以无缝对接各股票柜台。平台也提供了一套基于TTS交易系统的模拟环境,同样提供了CTPAPI兼容接口,可以替代Simnow,为CTP量化交易开发者提供7x24可用的模拟环境。
Stars: ✭ 389 (+2061.11%)
Mutual labels:  options
apart
Get all your structure and rip it apart.
Stars: ✭ 26 (+44.44%)
Mutual labels:  persistence
android-room-example
Android Kotlin app showcasing the Room persistence library
Stars: ✭ 45 (+150%)
Mutual labels:  persistence
Finance-Robinhood
Trade stocks and ETFs with free brokerage Robinhood and Perl
Stars: ✭ 42 (+133.33%)
Mutual labels:  options
vue-vuex-persist
vuex持久化插件
Stars: ✭ 16 (-11.11%)
Mutual labels:  persistence
ProjectReward
A software to shortlist and find the best options spread available for a given stock and help it visualise using payoff graphs.
Stars: ✭ 57 (+216.67%)
Mutual labels:  options
perseverance
Make your functions 💪 resilient and 🚥 fail-fast to 💩 failures or ⌚ delays
Stars: ✭ 12 (-33.33%)
Mutual labels:  persistence
vue-auto-storage
🍻 An automatic storage plugin for Vue2, persist the data with localStorage.
Stars: ✭ 84 (+366.67%)
Mutual labels:  persistence
bee-apm
BeeAPM is a distributed tracing system and APM ( Application Performance Monitoring )
Stars: ✭ 137 (+661.11%)
Mutual labels:  persistence
Rebus.SqlServer
🚌 Microsoft SQL Server transport and persistence for Rebus
Stars: ✭ 35 (+94.44%)
Mutual labels:  persistence
index-autoload
Adds an index to the autoload in wp_options table and verifies it exists on a daily basis (using WP Cron), resulting in a more efficient database.
Stars: ✭ 18 (+0%)
Mutual labels:  options
acolyte
🐯 Mockup/testing JDBC & MongoDB driver (or Chmeee's son on the Ringworld).
Stars: ✭ 58 (+222.22%)
Mutual labels:  persistence
linper
Linux Persistence Toolkit
Stars: ✭ 20 (+11.11%)
Mutual labels:  persistence
Black-Scholes-Option-Pricing-Model
Black Scholes Option Pricing calculator with Greeks and implied volatility computations. Geometric Brownian Motion simulator with payoff value diagram and volatility smile plots. Java GUI.
Stars: ✭ 25 (+38.89%)
Mutual labels:  options
PlacenoteSDK-Unity
Placenote SDK and sample app for Unity
Stars: ✭ 78 (+333.33%)
Mutual labels:  persistence
core
SIREN Core Smart Contracts
Stars: ✭ 39 (+116.67%)
Mutual labels:  options
stardust-SDK
Stardust SDK and sample app for Unity
Stars: ✭ 23 (+27.78%)
Mutual labels:  persistence
GitHubSearch
GitHub iOS client with minimum third-party dependencies.
Stars: ✭ 34 (+88.89%)
Mutual labels:  persistence
microstream
High-Performance Java-Native-Persistence. Store and load any Java Object Graph or Subgraphs partially, Relieved of Heavy-weight JPA. Microsecond Response Time. Ultra-High Throughput. Minimum of Latencies. Create Ultra-Fast In-Memory Database Applications & Microservices.
Stars: ✭ 283 (+1472.22%)
Mutual labels:  persistence

Hourai Options

A Unity3D library for creating, managing, and persisting user facing game settings and options in a straightfoward, asset based manner.

By default, these values for these are stored in PlayerPrefs in an unencrypted form. The expectation is that these values make no signifigant impact on the game.

Installation

In Unity 2018.3 and later, add the following to your Packages/manifest.json:

{
  "dependencies": {
    "com.houraiteahouse.options": "1.0.0"
  },
  "scopedRegistries": [
    {
      "name": "Hourai Teahouse",
      "url": "https://upm.houraiteahouse.net",
      "scopes": ["com.houraiteahouse"]
    }
  ]
}

Usage

Creating Options

Options can be created like any other asset and edited in the Editor via the Create > Option menu item.

For ease of general access in code, it's actually advisable to store option assets under a Resources folder or using Addressables. This makes fetching all available game options simple via well known Unity APIs.

Reading/Setting Option Values

Option assets can be referred to just like any other asset. Serialize a reference to a given option in a MonoBehaviour or Scriptable object:

public class TestScript : MonoBehavior {

  // Serialized!
  public Option MyOption;

  public void GetOptionValue() {
    // Reading values is simple. Note that invalid type conversions will fail.
    var optionValue = MyOption.Read<float>();
    Debug.Log(optionValue);
  }

  public void SetOptionValue() {
    // Setting values is simple. Note that invalid type conversions will fail.
    MyOption.Set<float(1.3, 0);

    // Setting values can change the interpretation at runtime, but are not
    // automatically saved to the backing store. Calling Save() will persist the
    // the value such that it holds across game sessions.
    MyOption.Save();
  }

}

Reading Option Metadata

Option assets have their metadata readable from each asset as well:

option.Path            The key under which the option is stored in the backing store.
option.Type            Choice of [Integer, Float, Enum]
option.MinValue        The minimum value the option can take on.
option.MaxValue        The maximum value the option can take on.

option.Category        What category the option falls under. Useful for grouping
                       similar options together (i.e. Graphics, Audio, etc.)
option.DisplayName     If rendered by a UI, what would the display name be.
option.SortOrder       If rendered by a UI, what priority does this option take.

option.EnumType        The fully qualified name of the underlying C# type for the
                       enum
option.EnumOptions     Individual enum value metadata.

Listening for Changes

Changes can be listened to via Unity Events. Each Option has a OnValueChanged event that can be edited from the Editor or programmatically listened to.

Changing the backing storage

Changing the static property, Option.Storage can alter the backing store behavior. Implement an alternative IOptionSotrage class and substitute it in. By default, this is a PlayerPrefsOptionsStorage object, whihch uses Unity's PlayerPrefs as a backing store.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].