- Home /
 
Activate/Deactivate UI Image using C#
Hey
New unity user, first time post. Im trying to make a simple UI chatbox conversation between my player and my cylindrical NPC. When my character enters the Child Collision Box, and presses the F key. My Dialogue (horribly spelt in code fare warning) box with text should open up, scroll through the following text lines, and close.
Everything but one tiny detail i cant seem to clamp is working. My Dialogue Box will not activate on its own. But the text continues to the next panel the way i want it to function, Then closes properly.
My Ui is set as such: 
Canvas //checkmarked Script //checkmarked dBox //Unchecked text // text //
The scripts i'm using are:
 public GameObject dBox;
 public Text dText;
 public bool dialougActive = false;
 public string[] dialougLines;
 public int currentLine;
 void Start () {
     
 }
 // Update is called once per frame
 void Update () {
     if (dialougActive = true && Input.GetKeyDown(KeyCode.F))
     {
         //dBox.SetActive (true);
         //dialougActive = true;
         currentLine++; 
     }
     if (currentLine >= dialougLines.Length) 
     {
         dBox.SetActive (false);
         dialougActive = false;
         currentLine = 0;
     }
     dText.text = dialougLines [currentLine];
 }
 public void ShowDialoug ()
 {
     dialougActive = true;
     dBox.SetActive (true);
 }
 
               }
Second Script:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Dialoug_holder : MonoBehaviour {
 public string Dialoug;
 private DialougToggle dMAN;
 // Use this for initialization
 void Start () {
     dMAN = FindObjectOfType<DialougToggle> ();
 }
 void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.name == "Player")
     {
         if (Input.GetKeyDown (KeyCode.F)) 
         {
             //dMAN.ShowBox (Dialoug);
             if (!dMAN.dialougActive) 
             {
                 dMAN.dialougActive = true;
                 dMAN.currentLine = 0;
                 dMAN.ShowDialoug ();
             }
         }
     }
 }
 
               }
I have the triggers on collision set up properly I have tried several different overhauls on the script, the original comes from "#29 make a 2D rpg" but was modified for 3D. The Original script did not work at all. But placing his bool conditions backwards has so far gotten the best results .
I have been over my script 100 times and been through the tutorials again trying his codes TO THE MICRO PIXEL!!! (new catch phrase) and those don't work. So here i am for my first time. Appreciate any help getting this forward, my teeth are getting sharp from ginding, cheers.
triedusing UnityEngine; using System.Collections; using UnityEngine.UI;
public class DialougToggle : $$anonymous$$onoBehaviour {
 public GameObject dBox;
 public Text dText;
 public bool dialougActive = false;
 public string[] dialougLines;
 public int currentLine;
 void Start () {
     
 }
 // Update is called once per frame
 void Update () {
     if (dialougActive = true && Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.F))
     {
         dBox.SetActive (true);
         dialougActive = true;
         currentLine++; 
     }
     if (currentLine >= dialougLines.Length) 
     {
         dBox.SetActive (false);
         dialougActive = false;
         currentLine = 0;
     }
     dText.text = dialougLines [currentLine];
 }
 public void ShowDialoug ()
 {
     dialougActive = true;
     dBox.SetActive (true);
 }
 
                  } just after posting and the box now goes through all phases properly but i can do it anywhere and replay the same conversation
Your answer