2018年10月10日 星期三

For Third-party integration tool

1. Implement your converter class from class "IIntegrationToolConverter".If your tool is InControl, you can refer to it here.(note:The file name must be the same as the category name "IntegrationToolConverter_InControl")

2. Assign this instance to the specified field.

3. If you use InControl, you must put this game object in the scene.

For InControl

///---------------------------
/// Intelligent Menu for uGUI
/// 2017 - 2018
///---------------------------

using InControl;

namespace UnityEngine.UI.Menu
{
 public class IntegrationToolConverter_InControl : IIntegrationToolConverter
 {
  /// <summary>
  /// Get the value of the specified axis.
  /// </summary>
  
  public override float GetAxis (EasyAxis axis, EPlayer player)
  {
   InputDevice inputDevice = GetInputDevice (player);

   switch (axis)
   {
   case EasyAxis.DPadX : return inputDevice.DPadX;
   case EasyAxis.DPadY : return inputDevice.DPadY;
   case EasyAxis.LeftStickX : return inputDevice.LeftStickX;
   case EasyAxis.LeftStickY : return inputDevice.LeftStickY;
   case EasyAxis.RightStickX : return inputDevice.RightStickX;
   case EasyAxis.RightStickY : return inputDevice.RightStickY;
   }

   return 0;

   //return EasyInput.GetAxis (axis, player);
  }
  
  /// <summary>
  /// Returns true during the frame the user starts pressing down the key.
  /// </summary>
  
  public override float GetAxis (EasyKeyCode key, EPlayer player)
  {
   InputControl inputControl = GetInputControl (GetInputDevice (player), key);

   if (inputControl != null)
   {
    return inputControl;
   }

   return 0;
  }
  
  /// <summary>
  /// Returns true during the frame the user starts pressing down the key.
  /// </summary>
  
  public override bool GetKeyDown (EasyKeyCode key, EPlayer player)
  {
   InputControl inputControl = GetInputControl (GetInputDevice (player), key);
   
   if (inputControl != null)
   {
    return inputControl.WasPressed;
   }
   
   return false;
  }
  
  /// <summary>
  /// Returns true during the frame the user releases the key.
  /// </summary>
  
  public override bool GetKeyUp (EasyKeyCode key, EPlayer player)
  {
   InputControl inputControl = GetInputControl (GetInputDevice (player), key);
   
   if (inputControl != null)
   {
    return inputControl.WasReleased;
   }
   
   return false;
  }

  InputDevice GetInputDevice (EPlayer player)
  {
   InputDevice inputDevice = null;
   
   if (player == EPlayer.Anyone)
   {
    inputDevice = InControl.InputManager.ActiveDevice;
   }
   else
   {
    int playerNumber = (int)player;
    
    inputDevice = (InControl.InputManager.Devices.Count > playerNumber) ? InControl.InputManager.Devices[playerNumber] : null;
   }
   
   return inputDevice;
  }

  InputControl GetInputControl (InputDevice inputDevice, EasyKeyCode key)
  {
   switch (key)
   {
   case EasyKeyCode.ActionRight : return inputDevice.Action2;
   case EasyKeyCode.ActionDown : return inputDevice.Action1;
   case EasyKeyCode.ActionLeft : return inputDevice.Action3;
   case EasyKeyCode.ActionUp : return inputDevice.Action4;
    
   case EasyKeyCode.ShoulderTopRight : return inputDevice.RightBumper;
   case EasyKeyCode.ShoulderTopLeft : return inputDevice.LeftBumper;
   case EasyKeyCode.ShoulderBottomRight : return inputDevice.RightTrigger;
   case EasyKeyCode.ShoulderBottomLeft : return inputDevice.LeftTrigger;
    
   case EasyKeyCode.DPadRight : return inputDevice.DPadRight;
   case EasyKeyCode.DPadDown : return inputDevice.DPadDown;
   case EasyKeyCode.DPadLeft : return inputDevice.DPadLeft;
   case EasyKeyCode.DPadUp : return inputDevice.DPadUp;
    
   case EasyKeyCode.RightStick : return inputDevice.RightStickButton;
   case EasyKeyCode.RightStickRight : return inputDevice.RightStickRight;
   case EasyKeyCode.RightStickDown : return inputDevice.RightStickDown;
   case EasyKeyCode.RightStickLeft : return inputDevice.RightStickLeft;
   case EasyKeyCode.RightStickUp : return inputDevice.RightStickUp;
    
   case EasyKeyCode.LeftStick : return inputDevice.LeftStickButton;
   case EasyKeyCode.LeftStickRight : return inputDevice.LeftStickRight;
   case EasyKeyCode.LeftStickDown : return inputDevice.LeftStickDown;
   case EasyKeyCode.LeftStickLeft : return inputDevice.LeftStickLeft;
   case EasyKeyCode.LeftStickUp : return inputDevice.LeftStickUp;
    
   //case EasyKeyCode.CenterRight : return inputDevice.GetControl (InputControlType.Options);
   //case EasyKeyCode.CenterLeft : return inputDevice.GetControl (InputControlType.Share);
   //case EasyKeyCode.System : return inputDevice.GetControl (InputControlType.Home);
   }

   return null;
  }
 }
}

Supported Gamepad

PS3 on Linux,
PS3 on Mac,
PS3 on Windows,
PS3 on Windows via MotioninJoy,
PS3 on Windows via Shenghic,

PS4 on Android,
PS4 on Linux,
PS4 on Mac,
PS4 on Mac vis Bluetooth,
PS4 on Windows,

XBox360 on Android,
XBox360 on Linux,
XBox360 on Mac,
XBox360 on Windows,

XBoxOne on Mac,
XBoxOne on Windows,
XBoxOne on XBoxOne,
(note:Bluetooth version is not supported.)

LogitechF310 on Linux,
LogitechF310 on Mac,
LogitechF310 on Windows,
LogitechF510 on Linux,
LogitechF510 on Windows,
LogitechF710 on Linux,
LogitechF710 on Mac,
LogitechF710 on Windows,
LogitechRumblePad2 on Mac,
LogitechRumblePad2 on Windows,

MogaPro on Linux,
MogaPro on Mac,
MogaPro on Windows,

SteelSeriesFree on Linux,
SteelSeriesFree on Mac,
SteelSeriesFree on Windows,

2017年12月17日 星期日

EasyInput

EasyInput


class in UnityEngine.UI.iMenu

Description

The method used is similar to Input.


Static Public Functions


GetKey Returns true while the user holds down the key.

GetKeyDown Returns true during the frame the user starts pressing down the key.

GetKeyUp Returns true during the frame the user releases the key.

GetAxis Returns the value of the axis.

GetAxisRaw Returns the value of the axis with no smoothing filtering applied.

GetQuadrant Returns the value of the quadrant.

GetQuadrantRaw Returns the value of the quadrant with no smoothing filtering applied.





Scripting

2017年5月14日 星期日

FadeAnimation

FadeAnimation


class in UnityEngine.UI.iMenu / Inherits from:IFade

Description

This component will allow you under the situation of using the Navigator components to use the AnimationClip to achieve the menu dynamic, and then place this component on the GameObject of the menu.

Variables


clipFadeIn The animation clip when the menu fade in.

clipFadeOut The animation clip when the menu fade out.


Inherited members


Public Functions



FadeIn Execute the page fade in.

FadeOut Execute the page fade out.





Scripting

IFade

IFade


class in UnityEngine.UI.iMenu

Description

Processing the dynamics of the menu.

Public Functions


FadeIn Execute the page fade in.

FadeOut Execute the page fade out.





Scripting

Navigator

Navigator


class in UnityEngine.UI.iMenu / Inherits from:INavigator

Description

This component will allow you to easily handle menu switching with a small amount of code or even without any code.

Variables


playAutomatically Does it play automatically for openinnig the first page?

pageDatas Pages of the All you want to navigate.

Public Functions


AddPageData Add a page to the navigator.

HavePageInNavigator Whether the page is already in the navigator.

RemovePageData Remove a page data from the navigator.

OpenFirstPage Open and execute the first page.

CloseActivityPages Close all active pages.

AddOnExchangeListener Add listener of the page exchange event.

AddOnExchangeFinishedListener Add listener of the page finishes exchange event.

RemoveOnExchangeListener Remove the "OnExchange" listeners.

RemoveOnExchangeFinishedListener Remove the "OnExchangeFinished" listeners.

RemoveAllOnExchangeListener Remove all "OnExchange" listeners.

RemoveAllOnExchangeFinishedListener Remove all "OnExchangeFinished" listeners.

ResetToFirstOption Reset the option index to the first enabled cell position.





Scripting

INavigator

INavigator


class in UnityEngine.UI.iMenu

Description

Abstract class for navigator.





Scripting

SubCell

SubCell


class in UnityEngine.UI.iMenu / Inherits from:IClick

Description

Sub-cells attached to the main cell.


Inherited members



Variables



clickParameter Used to distinguish which sub-cell to click on.




Scripting

IClick

IClick


class in UnityEngine.UI.iMenu

Description

Classes of the click.

Variables



clickParameter Used to distinguish which sub-cell to click on.




Scripting

2017年5月13日 星期六

Keyboard

Keyboard


class in UnityEngine.UI.iMenu / Inherits from:IControllerEntity

Description

Through the keyboard operation to switch the components of the options.


Variables


reverseKeys With "pressMode" reverse the keys.

allChangeGroup All key groups used to switch the direction of the options.

pressMode Defines the menu for it is executed when the button is pressed or when the key is released.

Inherited members



Variables


curve A curve that describes the change in speed.

listenKeys All the keys to be listened.

speedMode Switch the speed mode of options.

switchSpeed The speed of switching the options.

target The target element to control.




Scripting

IControllerEntity

IControllerEntity


class in UnityEngine.UI.iMenu / Inherits from:IController

Description

The abstract Class of the neat menu.

Variables


curve A curve that describes the change in speed.

listenKeys All the keys to be listened.

speedMode Switch the speed mode of options.

Inherited members


Variables


target The target element to control.

switchSpeed The speed of switching the options.


2017年5月1日 星期一

More Video

Navigator example:



How to create a map menu:



Dynamically create all the buttons in the menu:



iMenu Tutorial

2017年3月19日 星期日

iMenu - Intelligent Menu for uGUI Tutorial

iMenu Tutorial


Welcome to the iMenu tutorial.
You will feel the convenience of creating a menu.

Video



More..

API


FocusGradientScale

FocusGradientScale


class in UnityEngine.UI.iMenu / Inherits from:IFocusTweenGradient

Description

Let the players know the gradient scaling components of the current focus button.

Variables


delta The amount of the scaling of a decrement (or power down) by one unit per distance to the focus button.

focus The scale when the button is focused.

target To change scale of the Transform.

Inherited members


Variables


curve Focus on the lerp curve.

durationFocus Focus time in seconds.

durationDefocus Defocus time in seconds.

gradientType Type of Gradient.

ignoreTimeScale Whether to ignore the time zoom.

onBegin Start focusing and defocusing events.

onFinished Focus and defocus end event.

Public Functions


QuickSetStatus Set the focus state. Ignore the tween process.

Recover Revert to the state before focusing.

SetStatus Set the focus state.

FocusPosition

FocusPosition


class in UnityEngine.UI.iMenu / Inherits from:IFocusTweenTransform

Description

Let the players know the position of the current focus button to change the component.

Variables


focusOffset The position offset when the target position is in the focus state.

target To change the target transform of the position offset.

Inherited members


Variables


curve Focus on the lerp curve.

defocusAfterFocusing Defocused immediately after focusing.

durationFocus Focus time in seconds.

durationDefocus Defocus time in seconds.

ignoreTimeScale Whether to ignore the time zoom.

onBegin Start focusing and defocusing events.

onFinished Focus and defocus end event.

refocus Whether to re-focus the effect. When the button is already in focus, whether to re-focus effect while clicking.

Public Functions


QuickSetStatus Set the focus state. Ignore the tween process.

Recover Revert to the state before focusing.

SetStatus Set the focus state.




Scripting

CursorTranslate

CursorTranslate


class in UnityEngine.UI.iMenu / Inherits from:ICursor

Description

Let the players know the cursor components of the current focus button.

Variables



ignoreTimeScale Whether to ignore the time scale.

speed The speed of the cursor movement.


Inherited members



Public Functions


Hide Hide the cursor.

Show Show the cursors.

FocusScale

FocusScale


class in UnityEngine.UI.iMenu / Inherits from:IFocusTweenTransform

Description

Let the players know the scale of the current focus button to change the component.

Variables


focus The scale when the target is focused.

normal The scale when the target is in the normal state.

target To change the target transform of the scale.

Inherited members


Variables


curve Focus on the lerp curve.

defocusAfterFocusing Defocused immediately after focusing.

durationFocus Focus time in seconds.

durationDefocus Defocus time in seconds.

ignoreTimeScale Whether to ignore the time zoom.

onBegin Start focusing and defocusing events.

onFinished Focus and defocus end event.

refocus Whether to re-focus the effect. When the button is already in focus, whether to re-focus effect while clicking.

Public Functions


QuickSetStatus Set the focus state. Ignore the tween process.

Recover Revert to the state before focusing.

SetStatus Set the focus state.




Scripting

FocusRotation

FocusRotation


class in UnityEngine.UI.iMenu / Inherits from:IFocusTweenTransform

Description

Let the players know the rotation of the current focus button changes the component.

Variables


focus Rotation when the target is in focus.

normal Rotation of the target in the normal state.

target To change the target transform of the rotation.


Inherited members


Variables


curve Focus on the lerp curve.

defocusAfterFocusing Defocused immediately after focusing.

durationFocus Focus time in seconds.

durationDefocus Defocus time in seconds.

ignoreTimeScale Whether to ignore the time zoom.

onBegin Start focusing and defocusing events.

onFinished Focus and defocus end event.

refocus Whether to re-focus the effect. When the button is already in focus, whether to re-focus effect while clicking.

Public Functions


QuickSetStatus Set the focus state. Ignore the tween process.

Recover Revert to the state before focusing.

SetStatus Set the focus state.




Scripting