Mobile dialogue system help
Hey all,
I'm pretty new in all honesty but ive managed to ALMOST make a game following tutorials and findin answers online, but i'm just stuck on one last hurdle. I'm trying to get my Player to enter into a dialogue with an NPC by pressing the on screen Jump key. The problem is it doesn't work no matter what I try. The problem lies somewhere in these three codes:
TextBoxManager:
public class TextBoxManager : MonoBehaviour {
public GameObject textBox;
public Text theText;
public TextAsset textFile;
public string[] textLines;
public int currentLine;
public int endAtLine;
public PlayerController player;
public bool isActive;
public bool stopPlayerMovement;
// Use this for initialization
void Start ()
{
player = FindObjectOfType<PlayerController> ();
if (textFile != null)
{
textLines = (textFile.text.Split ('\n'));
}
if (endAtLine == 0)
{
endAtLine = textLines.Length - 1;
}
if (isActive)
{
EnableTextBox ();
}
else
{
DisableTextBox ();
}
}
void Update()
{
if (!isActive) {
return;
}
theText.text = textLines [currentLine];
if (Input.GetMouseButtonDown(0))
{
currentLine += 1;
}
if (currentLine > endAtLine)
{
DisableTextBox ();
}
}
public void EnableTextBox()
{
textBox.SetActive (true);
isActive = true;
if (stopPlayerMovement)
{
player.canMove = false;
}
}
public void DisableTextBox()
{
textBox.SetActive (false);
isActive = false;
player.canMove = true;
}
public void ReloadScript(TextAsset theText)
{
if (theText != null)
{
textLines = new string[1];
textLines = (theText.text.Split ('\n'));
}
}
}
ActivateTextAtLines:
public class ActivateTextAtLine : MonoBehaviour {
public TextAsset theText;
public int startLine;
public int endLine;
public TextBoxManager theTextBox;
public bool destroyWhenActivated;
public bool requireButtonPress;
private bool waitForPress;
// Use this for initialization
void Start () {
theTextBox = FindObjectOfType<TextBoxManager> ();
}
// Update is called once per frame
void Update () {
if (waitForPress && Input.GetKeyDown(KeyCode.J))
{
theTextBox.ReloadScript (theText);
theTextBox.currentLine = startLine;
theTextBox.endAtLine = endLine;
theTextBox.EnableTextBox ();
if (destroyWhenActivated)
{
Destroy (gameObject);
}
}
}
public void JumpTalk()
{
if (waitForPress)
{
theTextBox.ReloadScript (theText);
theTextBox.currentLine = startLine;
theTextBox.endAtLine = endLine;
theTextBox.EnableTextBox ();
if (destroyWhenActivated) {
Destroy (gameObject);
}
}
}
void OnTriggerEnter2D (Collider2D other)
{
if (other.name == "Player")
{
if (requireButtonPress)
{
waitForPress = true;
return;
}
theTextBox.ReloadScript (theText);
theTextBox.currentLine = startLine;
theTextBox.endAtLine = endLine;
theTextBox.EnableTextBox ();
if (destroyWhenActivated)
{
Destroy (gameObject);
}
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.name == "Player")
{
waitForPress = false;
}
}
}
or finally TouchControls:
public class TouchControls : MonoBehaviour {
private PlayerController thePlayer;
public ActivateTextAtLine textEnter;
private LevelLoader levelExit;
private PauseMenu thePauseMenu;
// Use this for initialization
void Start ()
{
thePlayer = FindObjectOfType<PlayerController>();
levelExit = FindObjectOfType<LevelLoader>();
thePauseMenu = FindObjectOfType<PauseMenu>();
}
public void LeftArrow()
{
thePlayer.Move(-1);
}
public void RightArrow()
{
thePlayer.Move(1);
}
public void UnpressedArrow()
{
thePlayer.Move(0);
}
public void Sword()
{
thePlayer.Sword();
}
public void ResetSword()
{
thePlayer.ResetSword();
}
public void Star()
{
thePlayer.FireStar();
}
public void Jump()
{
thePlayer.Jump ();
if(levelExit.playerInZone)
{
levelExit.LoadLevel();
}
}
public void JumpTalk()
{
textEnter.JumpTalk ();
}
public void Pause()
{
thePauseMenu.PauseUnpause();
}
}
Sorry for the long (and probably stupid) question, but if you could solve it you would literally be my hero. Thank you
Your answer
Follow this Question
Related Questions
Help!--How to make player follow finger touch position in Space Shooter? 0 Answers
How to detect a swipe in ANY direction? 1 Answer
touch.position values clearification 0 Answers
How to convert Mouse input to touch input for android devices ? 1 Answer
Android Touch Input not working in Build 3 Answers