Muy buenas tengo una duda sencilla quiero crear como un buscador que cuando ponga una palabra el sistema busque a ver si esta existente y si existe que haga una acción esto tengo al momento
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Sistema : MonoBehaviour
{
public void Start()
{
Items();
}
public void Items()
{
List<string> items = new List<string>();
items.Add("Obj1"); ---------------------------------------Los objetos son palabras q aun no defino
items.Add("Obj2"); ---------------------------------------
foreach (string learn in items)
{
Debug.Log(learn);
}
}
}
como aria para hacer que digamos en un texto en el programa ponga Obj1 y diga existe y cuando ponga Obj3 diga no existe
o en ves de pones existe o no existe que haga una acción cualquiera------- y por ultimo como pregunta secundaria hay una forma mas sencilla para el código es que voy a utilizar muchas palabras
Podrías utilizar las funciones de la clase string para localizar texto: https://msdn.microsoft.com/es-es/library/system.string(v=vs.110).aspx (https://msdn.microsoft.com/es-es/library/system.string(v=vs.110).aspx) como el método IndexOf.
Ya mas o menos lo tengo pero ahora tengo un error que sabia solucionar pero no me acuerdo tengo esto
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Sistema : MonoBehaviour
{
public List<string> items = new List<string>();
public List<string> HowMuchThinksYouHave = new List<string>();
public string WritedItem;
public bool WritedItemIs = false;
void Start()
{
Items();
}
void Update()
{
if(WritedItem == "")
{
WritedItemIs = false;
}
else
{
WritedItemIs = true;
}
if (Input.GetKey(KeyCode.Space) && WritedItemIs)
{
HowMuchThinksYouHave.Add(WritedItem);
WritedItem = "";
}
foreach(string on in items)
{
if (WritedItem == on)
{
}
}
}
void Items()
{
items.Add("Obj1");
items.Add("Obj2");
}
}
lo que esta pintado de rojo es el problema, esque cuando aplico el espacio por la velocidad de los frames me sale como 4 obj1 o obj2 a la vez como ago para que solo sea uno
Utiliza Input.GetKeyDown
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Sistema : MonoBehaviour
{
public List<string> items = new List<string>();
public List<string> HowMuchThinksYouHave = new List<string>();
public string WritedItem;
public string YouCanDo;
public bool WritedItemIs = false;
public bool touched = false;
public bool can;
void Start()
{
Items();
}
void Update()
{
if(WritedItem == "")
{
WritedItemIs = false;
}
else
{
WritedItemIs = true;
}
if (touched && WritedItemIs && can)
{
HowMuchThinksYouHave.Add(WritedItem);
WritedItem = "";
touched = false;
}
CompliteItem();
}
void Items()
{
items.Add("Obj1");
items.Add("Obj2");
}
public void CompliteItem()
{
foreach (string on in HowMuchThinksYouHave)
{
if (on == "Obj1" && on == "Obj2")
{
YouCanDo = "Obj3";
}
}
}
}
ultima pregunta ya termine, esto es solo por añadido, en la parte ultima estoy utilizando mal el código foreach como hago que lo que estoy intentando hacer sirva, osea identificar objetos o palabras dentro de la lista y si las palabras existen diga en el YouCanDo el obj que se puede hacer en este caso Obj3.????
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
public class Sistema : MonoBehaviour
{
List<string> items = new List<string>();
public void Start()
{
Items();
}
public void Items()
{
items.Add("Obj1"); ---------------------------------------Los objetos son palabras q aun no defino
items.Add("Obj2"); ---------------------------------------
foreach (string learn in items)
{
Debug.Log(learn);
}
}
public bool BuscarPalabra(string palabras){
return items.Contains(palabras)
}
}
así lo haría yo, hago la lista items global, y luego con el método buscar verifico si tengo la palabra
no entiendo lo que me quieres decir, con todo ahora tengo un error que me saca de quicio y es de la misma cosa tengo esto
using System.Collections.Generic;
using UnityEngine;
public class Sistema : MonoBehaviour
{
public List<string> items = new List<string>();
public List<string> HowMuchThinksYouHave = new List<string>();
public List<int> HowMuchThinksYouCanDo = new List<int>();
public string WritedItem;
public string YouCanDo;
public string txtt;
public bool WritedItemIs = false;
public bool touched = false;
public bool dubletouched = false;
void Start()
{
Items();
}
void Update()
{
if(WritedItem == "")
{
WritedItemIs = false;
}
else
{
WritedItemIs = true;
}
if (touched && WritedItemIs)
{
HowMuchThinksYouHave.Add(WritedItem);
touched = false;
}
if (dubletouched)
{
ItemforDo();
learnItems();
//dubletouched = false;
}
}
void Items()
{
items.Add("arroz");
items.Add("atun");
items.Add("pasta");
items.Add("fideo");
items.Add("zanahoria");
items.Add("pimiento");
items.Add("col");
items.Add("huevo");
items.Add("piña");
items.Add("cerveza");
items.Add("a");
items.Add("b");
}
public void