123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * Copyright (c) Meta Platforms, Inc. and affiliates.
- * All rights reserved.
- *
- * This source code is licensed under the license found in the
- * LICENSE file in the root directory of this source tree.
- */
- using System;
- using Meta.WitAi.Attributes;
- using UnityEngine;
- using UnityEngine.Events;
- using UnityEngine.Serialization;
- using Utilities;
- namespace Meta.WitAi.Utilities
- {
- [AddComponentMenu("Wit.ai/Utilities/Conversions/Float to String")]
- public class FloatToStringEvent : MonoBehaviour
- {
- [FormerlySerializedAs("format")]
- [Tooltip("The format value to be used on the float")]
- [SerializeField] private string _floatFormat;
- [Tooltip("The format of the string itself. {0} will represent the float value provided")]
- [SerializeField] private string _stringFormat;
- [Space(WitRuntimeStyles.HeaderPaddingTop)]
- [TooltipBox("Triggered when ConvertFloatToString(float) is called. The string in this event will be formatted based on the format fields.")]
- [SerializeField] private StringEvent onFloatToString = new StringEvent();
- /// <summary>
- /// Converts a float to a string using the component format values and emits an onFloatToString event.
- /// </summary>
- /// <param name="value"></param>
- public void ConvertFloatToString(float value)
- {
- string floatStringValue;
- if (string.IsNullOrEmpty(_floatFormat))
- {
- floatStringValue = value.ToString();
- }
- else
- {
- floatStringValue = value.ToString(_floatFormat);
- }
- if (string.IsNullOrEmpty(_stringFormat))
- {
- onFloatToString?.Invoke(floatStringValue);
- }
- else
- {
- onFloatToString?.Invoke(string.Format(_stringFormat, floatStringValue));
- }
- }
- }
- [Serializable]
- public class StringEvent : UnityEvent<string> {}
- }
|