コード例 #1
0
 /// <summary>
 /// Initializes the AttatchedTrigger instance.
 /// </summary>
 public void Initialize(Chatbot.Core tmpbot, Trigger tmpTrigger)
 {
     // Throw exception if tmpTrigger is not assigned
     if (tmpTrigger == null)
     {
         Debug.LogWarning("Trigger == null");
     }
     // Register Trigger instance
     trigger = tmpTrigger;
     // Set last time active to now and
     // subtract timeoutintervall, to be able
     // to recieve trigger from helperfunction
     // immediately.
     timelastactive = System.DateTime.Now.Subtract(TimeSpan.FromMilliseconds(tmpTrigger.timeoutintervall));
     // Check, wether bot exists
     if (tmpbot == null)
     {
         Debug.LogWarning("Passed Chatbot.Core instance == null");
     }
     // Retrieve Chatbor.Core instance
     bot = tmpbot;
     // Settings resetted to default (code below)
     isresetted = true;
     //Check if there are assigned settings
     if (trigger.Settings != null)
     {
         // Settings string array should have same size
         // as Settings GameObject array.
         Settings = new string[trigger.Settings.Length];
         // Set settings name and value to default
         for (int i = 0; i < Settings.Length; i++)
         {
             // First check if user already assigned Setting GameObject
             // and wether it has Setting instance attatched
             if (trigger.Settings[i] != null && trigger.Settings[i].gameObject.GetComponent <Setting>())
             {
                 // Retrieve settings name
                 Settings[i] = trigger.Settings[i].gameObject.name;
                 // And set settings value to defaultSetting
                 bot.SetGlobalSetting(Settings[i], defaultSetting);
                 // Also change Settings in Unity scene to default
                 trigger.Settings[i].gameObject.GetComponent <Setting>().value = defaultSetting;
             }
         }
     }
     // Grab Trigger values from Scene
     RetrieveTriggerSettingsFromScene();
 }
コード例 #2
0
 /// <summary>
 /// Retrieve information from Unity Scenes Trigger instance
 /// </summary>
 /// <param name="item">Item.</param>
 public void RetrieveTriggerSettingsFromScene()
 {
     // If trigger and bot is assigned
     if (bot != null && trigger != null)
     {
         // Transfer name to tmpTriggerItem
         name = trigger.gameObject.name;
         // Get motive if assigned
         if (trigger.Motive != null)
         {
             // Get Motive name
             Motive = trigger.Motive;
         }
         // Retrieve default and enabled string
         defaultSetting = trigger.defaultSetting;
         enabledSetting = trigger.enabledSetting;
         // Retrieve Timeintervalls
         timeoutintervall = trigger.timeoutintervall;
         timetoreset      = trigger.timetoreset;
         // Erase existing settings when
         // there are no more settings left
         // in the scene
         if (trigger.Settings == null)
         {
             // And set to null, no need to destroy array in C#. Just set to null.
             Settings = null;
         }
         else
         {
             // If array length differs
             if (trigger.Settings.Length != Settings.Length)
             {
                 int oldarraysize = Settings.Length;
                 // Use Systems array resize function to do it fast
                 System.Array.Resize <String>(ref Settings, trigger.Settings.Length);
                 // Calculate region to retrieve settings from
                 int tmpsize = oldarraysize;
                 if (trigger.Settings.Length < oldarraysize)
                 {
                     tmpsize = trigger.Settings.Length;
                 }
                 // We know that arraysize!=null, so get settings in old size area.
                 for (int i = 0; i < tmpsize; i++)
                 {
                     // First check if user already assigned Setting GameObject
                     // and wether it has Setting instance attatched
                     if (trigger.Settings[i] &&
                         trigger.Settings[i].gameObject.GetComponent <Setting>())
                     {
                         // Retrieve settings name
                         Settings[i] = trigger.Settings[i].gameObject.name;
                         // And set settings value to existing value
                         bot.SetGlobalSetting(Settings[i], trigger.Settings[i].gameObject.GetComponent <Setting>().value);
                         // Settings in Unity scene remains the same
                     }
                 }
                 // If new array is bigger than old one, set new arising
                 // Settings to default
                 if (Settings.Length > oldarraysize)
                 {
                     // if oldarraysize==7 start at element 6
                     for (int i = oldarraysize - 1; i < trigger.Settings.Length; i++)
                     {
                         // First check if user already assigned Setting GameObject
                         // and wether it has Setting instance attatched
                         if (trigger.Settings[i] &&
                             trigger.Settings[i].gameObject.GetComponent <Setting>())
                         {
                             // Retrieve settings name
                             Settings[i] = trigger.Settings[i].gameObject.name;
                             // And set settings value to defaultSetting
                             bot.SetGlobalSetting(Settings[i], defaultSetting);
                             // Also change Settings in Unity scene to default
                             trigger.Settings[i].gameObject.GetComponent <Setting>().value = defaultSetting;
                         }
                     }
                 }
             }
             // If array sizes equal
             else
             {
                 // We know that arraysize!=null and arry.length equals.
                 // So simple get settings from scenes settings.
                 for (int i = 0; i < Settings.Length; i++)
                 {
                     // First check if user already assigned Setting GameObject
                     // and wether it has Setting instance attatched
                     if (trigger.Settings[i] &&
                         trigger.Settings[i].gameObject.GetComponent <Setting>())
                     {
                         // Retrieve settings name
                         Settings[i] = trigger.Settings[i].gameObject.name;
                         // And set settings value to existing value
                         bot.SetGlobalSetting(Settings[i], trigger.Settings[i].gameObject.GetComponent <Setting>().value);
                         // Settings in Unity scene remains the same
                     }
                 }
             }
         }
     }
 }