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 - KevinLastra

#31
General (Antiguo) / Problemas con Linq
Marzo 29, 2017, 11:01:19 AM
Hola, estoy estudiando la programacion siguiendo un libro que es de Unity, y llegue a un capitulo referente a la IA de Unity, este libro da ejemplos para poder comprender todo, entonses yo los tomo y practico un poco pero tengo un error en el uso de Linq al transformar un GameObject en transform, estaria muy agradecido de que me ayuden con el error, aqui les dejo el codigo y el error.
 
 
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine.AI;
using UnityEngine;
using System.Linq;
public class Enemy_IA : MonoBehaviour {
    public enum Enemy_AI_State
    {
        IDLE = 2081823275, PATROL = 207038023,
        CHASE = 1463555229, SEEKHEALTH = -833380208,
        ATTACK = 1080829965
    }
    public Enemy_AI_State CurrentState = Enemy_AI_State.IDLE;
    public bool CanSeePlayer = false;
    public float DistEps = 0;
    public float FieldOfView;
    public int ChaseTimeOut = 2;
    public LayerMask SightMask;
    private GameObject[] waypoints;
    private Animator ThisAnimator;
    private Transform PlayerTransform;
    private Transform ThisTransform;
    private Collider ThisCollider;
    private NavMeshAgent ThisAgent;
    private bool HaveLineSightToPlayer(Transform Player)
    {
        float Angle = Mathf.Abs(Vector3.Angle(ThisTransform.forward,(Player.position-ThisTransform.position).normalized));
        if (Angle > FieldOfView) return false;
        if (Physics.Linecast(ThisTransform.position, Player.position, SightMask)) return false;
        return true;
    }
    private void Awake()
    {
        ThisAnimator = GetComponent<Animator>();
        ThisAgent = GetComponent<NavMeshAgent>();
        ThisTransform = transform;
        PlayerTransform = GameObject.FindGameObjectWithTag("Player").transform;
        ThisCollider = GetComponent<BoxCollider>();
        waypoints = GameObject.FindGameObjectsWithTag("Waypoints");
           
         
         
          //ERROR
        waypoints = (from GameObject GO in waypoints select GO.transform).ToArray(); //AQUI ESTA EL ERROR
          //ERROR
         
         
    }
    private void Update()
    {
        CanSeePlayer = false;
        if (!ThisCollider.bounds.Contains(PlayerTransform.position)) return;
        CanSeePlayer = HaveLineSightToPlayer(PlayerTransform);
    }
    public IEnumerator State_Idle()
    {
        CurrentState = Enemy_AI_State.IDLE;
        ThisAnimator.SetTrigger((int)Enemy_AI_State.IDLE);
        ThisAgent.Stop();
        while(CurrentState == Enemy_AI_State.IDLE)
        {
            if (CanSeePlayer)
            {
                StartCoroutine(State_Chase());
                yield break;
            }
            yield return null;
        }
    }
    public IEnumerator State_Patrol()
    {
        CurrentState = Enemy_AI_State.PATROL;
        ThisAnimator.SetTrigger((int)Enemy_AI_State.PATROL);
        Transform RandomDest = waypoints[Random.Range(0,waypoints.Length)];
        ThisAgent.SetDestination(RandomDest.position);
        while (CurrentState == Enemy_AI_State.PATROL)
        {
            if (CanSeePlayer)
            {
                StartCoroutine(State_Chase());
                yield break;
            }
            if (Vector3.Distance(ThisTransform.position,RandomDest.position) <= DistEps)
            {
                StartCoroutine(State_Idle());
                yield break;
            }
            yield return null;
        }
    }
    public IEnumerator State_Chase()
    {
        CurrentState = Enemy_AI_State.CHASE;
        ThisAnimator.SetTrigger((int) Enemy_AI_State.CHASE);
        while (!CanSeePlayer)
        {
            float ElapsedTime = 0f;
            while (true)
            {
                ElapsedTime += Time.deltaTime;
                ThisAgent.SetDestination(PlayerTransform.position);
                yield return null;
                if(ElapsedTime >= ChaseTimeOut)
                {
                    if (!CanSeePlayer)
                    {
                        StartCoroutine(State_Idle());
                        yield break;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
        if(Vector3.Distance(ThisTransform.position,PlayerTransform.position) <= DistEps)
        {
            StartCoroutine(State_Attack());
            yield break;
        }
        yield return null;
    }
    IEnumerator State_Attack()
    {
        yield return null;
    }
}

 
error recibido en la consola:
 
Assets/Enemy_AI.cs(46,75): error CS0029: Cannot implicitly convert type `UnityEngine.Transform[]' to `UnityEngine.GameObject[]'
 
 
 
Grasias por su atencion.
 
 
 
 
#32
General (Antiguo) / Duda con systema de pagos
Febrero 01, 2017, 09:45:31 PM
Si ya ayer encontre un post que lo mencionaba grasias con todo :)
#33
General (Antiguo) / Duda con systema de pagos
Enero 26, 2017, 09:08:01 PM
Buenas a todos, tengo una duda estaba entrando a investigar sobre los sistemas de pagos y solo encuentro la forma que ofrece unity con Unity Ads pero me pregunte como se haria para crear un menu con mini pagos como comprar gemasy asi para poner un ejemplo.
 
si alguien me quiere explicar o pasar algun tutorial estaria encantado.
 
 
 
Grasias
#34
General (Antiguo) / ¿De donde sois? solo para el foro
Noviembre 24, 2016, 11:41:51 AM
Frances y vivo en Lunel, languedoc roussillon 
#35
General (Antiguo) / Mi escena carga extraño
Noviembre 22, 2016, 03:18:31 PM
no es un nivel especifico es cualquier nivel aveces si aveces no 
#36
General (Antiguo) / Mi escena carga extraño
Noviembre 22, 2016, 02:39:07 PM

public bool Open = false;    //este bool es pasado a true en otro script al usar el boton enter
    public bool WithCollider;   //este bool lo coloco manualmente para otras situasiones
    public bool Starter;    //este es para un boton del inicio para que vaya al ultimo nivel iniciado cuando es true , cuando es false carga el nivel indicado
    public int levelToLoad;  //nivel indicado
    private AsyncOperation o;
    private GameMaster gm;
    void Start()
    {
        gm = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<GameMaster>();
    }
void Update()
    {
        if (Open)
        {
            Load();
            Open = false;
        }            
    }
void Load()
    {
        if (Starter)
        {
            if (gm.Uno)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("A",1));
            }
            if (gm.Dos)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("B", 1));
            }
            if (gm.Tres)
            {
                o = SceneManager.LoadSceneAsync(PlayerPrefs.GetInt("C", 1));
            }
        }
        else
        {
            o = SceneManager.LoadSceneAsync(levelToLoad);    // starter = false
        }
       
    }
void OnGUI()
    {
            if (o != null)
            {
                GUI.Box(new Rect(0, Screen.height - 40, o.progress * Screen.width, 40), "");     //barra de progreso o carga de nivel
            }
    }
    void OnTriggerEnter2D(Collider2D col)
    {
        if (WithCollider) {
            if (col.CompareTag("Player"))
            {
                Open = true;
            }
        }
    }

 
este es el codigo que carga los niveles
#37
General (Antiguo) / Mi escena carga extraño
Noviembre 22, 2016, 02:27:46 PM
el bound le paso a true de forma manual para que funcione, y no tengo ningun asset 
#38
General (Antiguo) / Mi escena carga extraño
Noviembre 22, 2016, 02:13:32 PM
este es el codigo pero la verdad no creo que sea el error porque este codigo lo tengo desde el inicio y este error es mas reciente de la actualizacion de unity
 

private Vector2 velocity;
    public float smothTimeY;
    public float smothTimeX;
    public GameObject player;
    public bool Bound;
    public Vector3 minCamaraPos;
    public Vector3 maxCamaraPos;
 
    void Start () {
        player = GameObject.FindGameObjectWithTag("Player");
}


void FixedUpdate () {
        float posX = Mathf.SmoothDamp(transform.position.x, player.transform.position.x, ref velocity.x, smothTimeX);
        float posY = Mathf.SmoothDamp(transform.position.y, player.transform.position.y, ref velocity.y, smothTimeY);
        transform.position = new Vector3(posX, posY, transform.position.z);
        if (Bound)
        {
            transform.position = new Vector3(Mathf.Clamp(transform.position.x, minCamaraPos.x, maxCamaraPos.x),
                Mathf.Clamp(transform.position.y, minCamaraPos.y, maxCamaraPos.y),
                Mathf.Clamp(transform.position.z, minCamaraPos.z, maxCamaraPos.z));
        }
    }

 
 
#39
General (Antiguo) / Músico a vuestra disposición.
Noviembre 22, 2016, 01:43:58 PM
Hola Probe2 me gusta tu trabajo, estoy creando un juego tipo fantasia 2d  y voy a nesecitar musicas y sonidos, si quieres participar a la creacion del juego, o me vas a dar un precio por musica , te dejo mi gmail si te interesa.!! Pliskalm@gmail.com 
#40
General (Antiguo) / Mi escena carga extraño
Noviembre 22, 2016, 01:28:52 PM
cargo la escena asi:
 

int leveltoload;
void nivel (){
   SceneManager.LoadLevel(leveltoload);
}

 
 
 
no es por colliders ni por camara shaker la vibracion es al instante del inicio es solo un momento de ahi va todo normal, me doy cuenta de que se crea en la barra de objetos 5 veces el nivel 2 digamos.
 
#41
General (Antiguo) / Mi escena carga extraño
Noviembre 21, 2016, 10:41:05 PM
Muy buenas a todos tengo un problema bastante raro que nunca me habia pasado antes, résulta que al cargar alguna escena del juego aveces me vibra extrañamente el juego, investigue la razon y de alguna forma se generan varias veces el nivel y despues se destruyen es muy raro no se si soy el unico??
 
 
 
Grasias por su atencion..
#42
General (Antiguo) / Instanciacion dentro de un intervalo
Noviembre 12, 2016, 01:43:25 PM
tengo otra pregunta referente al mismo tema, haciendo cuenta que el intervalo es el radio osea de un circulo para que los proyectiles aparescan dentro de este circulo como funcionaria..??
#43
General (Antiguo) / Triple Click
Noviembre 12, 2016, 01:02:23 PM
Mira si lo piensas no es tan dificil, abres una condicion con el click detro sumas clicks y inicias un contador;
 

if(Input.getkey(keycode.teclacualquiera)){
  click++;
   Contador = true;
   tiempo = ;
}
---------al tener esto cuando aga click iniciara un tiempo
if(contador){
  tiempo = tiempo * segundo * Time.deltaTime;      -----la variable segundo debe ser igual a 1 y el tiempo igual a ;
if(tiempo == 2){                                ---el 2 es por poner algo---
contador = false;
click = ;
}
}
-----ya echo el tiempo y los clicks ahora hacemos a cada click que hacemos esto es muy facil------
switch(click > ){
    case 1:
        //colocar que hacer
       break;
   case 2:
      //colocar que hacer
      break;
   case 3:
      //colocar que hacer
      break
}

 
y listo esta es mi gran pista ojala te sirva
#44
General (Antiguo) / Instanciacion dentro de un intervalo
Noviembre 10, 2016, 09:26:54 PM
Muy buenas a todos, tengo un problema, veran lo que pasa esque yo quiero que un objeto instanciado con el mouse(se crea el objeto donde el mouse iso click) instancie varios objetos mas pero dentro de un intervalo en x, para que me entiendan mejor es un ataque que al hacer click donde tu quieras crea una nube que crea bolas de fuego que caen al suelo.
 
 
 
                                                       |-------------0---------------|             el cerro es donde se iso click y las barras laterales son el minimo y el maximo del intervalo
 
 
 
como ago esto.???
 
porque lo que yo tengo es esto y me sale error y ya no se que hacer...
 
Instantiate(atatque, Random.Range(min.transform ,max.transform), Quaternion.Identity);
 
 
 
 
 
Grasias por su atencion
#45
General (Antiguo) / [Duda] KeyCode
Noviembre 10, 2016, 09:14:46 PM
osea para algo basico alfabatico como letra de teclado sirve el segundo pero al momento de hacer algo mas complejo o de usar numeros ya no te sirve el segundo si no mas el primero.