public void InsereElementosDeControle(GameObject oControlado, Transform ondeChegar, float velocidadeAndando = 6)
    {
        this.oControlado = oControlado;
        if (!oControlado.GetComponent <CharacterController>())
        {
            CharacterController Cc = oControlado.AddComponent <CharacterController>();
            Cc.center = new Vector3(0, 1.05f, 0);
        }

        anima = new AnimadorHumano(oControlado.GetComponent <Animator>());
        mov   = new MovimentacaoBasica(
            new CaracteristicasDeMovimentacao()
        {
            velocidadeAndando = velocidadeAndando,
            caracPulo         = new CaracteristicasDePulo()
        },
            new ElementosDeMovimentacao(oControlado.transform, anima)
            );

        path = new NavMeshPath();
        NavMeshHit navHit = new NavMeshHit();

        if (NavMesh.SamplePosition(ondeChegar.position, out navHit, 10, 1))
        {
            Debug.Log(
                NavMesh.CalculatePath(oControlado.transform.position, navHit.position, 1, path));
        }

        Debug.Log("cantos da Path: " + path.corners.Length);

        indiceDaDirecao = 1;
    }
Esempio n. 2
0
 // Use this for initialization
 void Start()
 {
     mov = null;
     ia.Start(this);
     comandR = GameController.g.CommandR;
     //personagemG2.Start();
 }
Esempio n. 3
0
 void SetaMov()
 {
     mov = new MovimentacaoBasica(
         meuCriatureBase.Mov, new ElementosDeMovimentacao()
     {
         animador  = new AnimadorHumano(GetComponent <Animator>()),
         controle  = GetComponent <CharacterController>(),
         transform = transform
     }
         );
 }
    // Update is called once per frame
    public bool Update(MovimentacaoBasica mov, Vector3 vetorDirecao)
    {
        Transform transform = controle.transform;

        tempoDeDano += Time.deltaTime;

        alturaAtual = transform.position.y;
        //direcao = Vector3.zero;

        if ((alturaAtual < posInicial.y + alturaAlvo) &&
            Mathf.Abs(transform.position.x - posInicial.x) < distanciaAlvo
            )
        {
            if (tempoDeDano < tempoBase)
            {
                controle.velocity = new Vector2(direcao.x, direcao.y) * m_MaxSpeed;
            }
            else
            {
                vetorDirecao = vetorDirecao + direcao.normalized;
                mov.AplicadorDeMovimentos(vetorDirecao.normalized, false, false);
            }
        }

        if (tempoDeDano < tempoFinal)
        {
            return(false);
        }

        /*
         * if (alturaAtual < alturaDoDano + 0.5f)
         * {
         *  direcao += 12 * Vector3.up;
         * }
         * if ((transform.position - posInicial).sqrMagnitude < esseGolpe.DistanciaDeRepulsao)
         *  direcao += esseGolpe.VelocidadeDeRepulsao * esseGolpe.DirDeREpulsao;
         *
         * vMove = Vector3.Lerp(vMove, direcao, 10 * Time.deltaTime);
         * controle.Move(vMove * Time.deltaTime);
         *
         *
         * if (tempoDeDano > esseGolpe.TempoNoDano)
         * {
         *  return false;
         *
         * }*/

        return(true);
    }
Esempio n. 5
0
        // Use this for initialization
        void Start()
        {
            if (ExistenciaDoController.AgendaExiste(Start, this))
            {
                comandR = GameController.g.CommandR;
                mov     = new MovimentacaoBasica(caracMov, elementos);
                //controle = FindObjectOfType<AndroidController>();
                if (Estado == EstadoDePersonagem.naoIniciado)
                {
                    dados.InicializadorDosDados();

                    if (CriatureAtivo == null)
                    {
                        SeletaDeCriatures();
                    }
                }
            }
        }
    // Use this for initialization
    void Start()
    {
        mov      = new MovimentacaoBasica(caracMov, elementos);
        controle = FindObjectOfType <AndroidController>();
        if (Estado == EstadoDePersonagem.naoIniciado)
        {
            dados.InicializadorDosDados();

            if (!GameController.g.MyKeys.VerificaAutoShift(KeyShift.estouNoTuto))
            {
                InserirCriatureEmJogo();
                Estado = EstadoDePersonagem.aPasseio;
            }
            else
            {
                GameController.g.HudM.InicializaPaineisCriature(this);
                GameController.g.HudM.HudCriatureAtivo.container.transform.parent.gameObject.SetActive(false);
                Estado = EstadoDePersonagem.aPasseio;
            }
        }
    }
Esempio n. 7
0
    // Update is called once per frame
    public void Update()
    {
        //if (!pausaJogo.pause)
        {
            if (!luta)
            {
                posHeroi = manager.transform.position;
            }

            //  if (!heroiMB)
            //    heroiMB = tHeroi.GetComponent<movimentoBasico>();

            if (!LugarSeguro() && !luta && MovimentacaoBasica.noChaoS(manager.Mov.Controle, 0.01f) && contarPassos)
            {
                andado     += (posHeroi - posAnterior).magnitude;
                posAnterior = posHeroi;
            }


            if (!luta && andado >= proxEncontro)
            {
                IniciaEncontro();
            }

            if (gerenteDeEncontro.Update() && luta)
            {
                RetornaParaModoPasseio();
                AplicadorDeCamera.cam.GetComponent <Camera>().farClipPlane = 1000;
                GameController.g.Salvador.SalvarAgora();
                //System.GC.Collect();
                //Resources.UnloadUnusedAssets();
            }


            Debug.DrawRay(posHeroi - 40f * manager.transform.forward, 1000f * Vector3.up, Color.yellow);
        }
    }
Esempio n. 8
0
 // Use this for initialization
 void Start()
 {
     mov = null;
     ia.Start(this);
     //personagemG2.Start();
 }
Esempio n. 9
0
 public ExternalPositionRequest(Transform dono, MovimentacaoBasica mov)
 {
     this.dono = dono;
     this.mov  = mov;
 }