Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - vigesimo

#1
General (Antiguo) / (SOLUCIONADO) duda con TextAsset
Marzo 31, 2017, 12:03:35 AM
Cita de: lightbug date=1490824994TextAsset es un asset como cualquier otro, con .text te devuelve el texto (una string) que contiene. Es parte de tus assets por lo que lo podrias cargar en cualquier momento con Resources.Load. Se me hace que lo que te pasa es mala organizacion, aunque no entendi que quisiste hacer con eso del Space.
   
   
      Si queres mostrar el correspondiente texto (textAsset.text) del GO debes accedes al componente del GO que contiene dicha string, puede ser cualquier tipo de script, por lo tanto depende de como lo cargaste en primer lugar. 
   
   
      El como lo accedes ya es cosa tuya, si estas usando triggers debes tener en cuenta las strings que vas a mostrar, podes decir que se muestre la ultima que entro, la primera, o ir juntandos las strings en caso de que haya varios GO's juntos con texto, e ir mostrandolas todas.
   
   
       
   


Entiendo, ya se como acceder en el trigger de los npc y a sus asset, eso mismo, fue mala organizacion pero ya lo solucione, gracias.
#2
General (Antiguo) / (SOLUCIONADO) duda con TextAsset
Marzo 29, 2017, 07:26:34 PM
Buenas, tengo una duda con TextAsset, 
 



   
      public TextAsset eltexto;
   

[/quote]
 
cuando se le attacha un texto.txt al script que esta attachado al gameobject, ese "texto.txt" es global? por ejemplo si coloco una colision con trigger a un gameobjet y cuando le aprete el boton Space  se muestre el dialogo de texto.txt, pero si coloco 2 gameobject y cada uno con diferente texto "texto1.txt" "texto2.txt" se activaran para cada uno? por lo que vi estas activan desordenamente no respetanto el trigger de cada uno.
 
 
 
por ejemplo me acerco al trigger del gameobject 2 y me muestra el texto1.txt del gameobject 1 :$$
 
 
 
esa duda me atormenta, el TextAsset, como funciona? y como lo puedo utilizar, espero una ayudita :(
#3
Buenas a todos, mi problema en el que me quede estancado es sobre un sistema dedialogos que usa " public AssetText text " para colocar mi texto text.txt
 
Por ejemplo tenemos 2 NPC o 3(gameObject), a cada uno le asignamos  un text.txt  con su dialogo en su interior y una collision 2d trigger, en el que el player cuando se acerca y luego apretamos espacio se muestra el dialogo, hasta ahi todo perfecto, pero el problema es que al activar uno me sale el dialogo de otro npc y me acero a otro npc y me sale el mismo dialogo, los 3 npc me sale el mismo dialogo siendo que le asigne diferentes textos
 
 
 
este es el que atacho a los npc
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ActivateTextAtLine : MonoBehaviour {
 
public TextAsset theText;
public int startLine;
public int endLine;
public textBoxManager theTextBox;
public bool destroyWhenActivate;
public bool requireButtomPress;
public static bool waitForPress;
 
public string nombreNpc;
 
// Use this for initialization
void Start () {
   theTextBox = FindObjectOfType<textBoxManager> ();
}

// Update is called once per frame
void Update () {
   
   if (waitForPress && Input.GetKeyDown(KeyCode.Space)) {
      
      waitForPress = false;
      theTextBox.ReloadScripts (theText);
      theTextBox.currentLine = startLine;
      theTextBox.endAtLine = endLine;
      //theTextBox.EnableTextBox ();
 
      if (destroyWhenActivate) {
         Destroy (gameObject);
      }
 
   }
      
}
void OnTriggerEnter2D(Collider2D other)
{
   
   if (other.gameObject.name == "Player") {
      
         if (requireButtomPress) {
            waitForPress = true;
            return;
         }
 
         theTextBox.ReloadScripts (theText);
         theTextBox.currentLine = startLine;
         theTextBox.endAtLine = endLine;
         theTextBox.EnableTextBox ();
         if (destroyWhenActivate) {
            Destroy (gameObject);
      
         }
      }
   }
   
   
   void OnTriggerExit2D(Collider2D other)
{
 
   if (other.name == "Player") {
         waitForPress = false;
      }
   }
}

 
 
 
 
 
y este el manager, motor de dialogo
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class textBoxManager : MonoBehaviour {
public TextAsset textFile;
public GameObject textBox;
public Text theText;
public int currentLine;
public int endAtLine;
public movement player;
public bool isActive;
public bool stopPlayerMovement;
 
public string[] textLines;
// Use this for initialization
void Start () {
   player = FindObjectOfType<movement> ();
   if (textFile != null) {
      textLines = (textFile.text.Split('\n'));
   }
   if (endAtLine == ) {
      endAtLine = textLines.Length - 1;
   }
   //theText.text = textLines [currentLine];
   if (isActive) {
      EnableTextBox ();
   } else {
      DisableTextBox ();
   }
}
void Update()
{
       
   if (!isActive) {
      return;   
   }
   theText.text = textLines [currentLine];
 
   if (currentLine > endAtLine) {
      
      DisableTextBox ();
      ActivateTextAtLine.waitForPress = true;
   
   } else {
      if (Input.GetKeyDown (KeyCode.Space)) {
      
         currentLine += 1;
      }
   }
          
}
public void EnableTextBox()
{
   textBox.SetActive (true);
   stopPlayerMovement = true;
   isActive = true;
   if(stopPlayerMovement){
      player.canMove = false;
   }
}
public void DisableTextBox()
{
   textBox.SetActive (false);
   stopPlayerMovement = false;
   isActive = false;
   if (!stopPlayerMovement) {
      player.canMove = true;
   }
}
public void ReloadScripts(TextAsset theText){
   if (theText != null) {
      textLines = new string[1];
      textLines = (theText.text.Split ('\n'));
      EnableTextBox ();
   }
}
}

 
no se que hacer, me gustaria que cada sea indivual para uno mismo y no se este mesclando dialogo entre npc.
 
 
 
gracias de antemano.
#4
General (Antiguo) / Buenas a todos
Marzo 27, 2017, 12:19:17 AM
Buenas a todos, soy estudiante de ingenieria mec y  me gustaria aprender a hacer videojuegos como hobby ,  espero que nos llevemos bien
#5
lo mismo que dice el titulo, no me deja seleccionar ese tema pero si offtopic y presentacion