SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[Projeto] Line Battle
Procuro Equipe Para Criação de Jogo [PAGO]
BUG UNITY 3D ROSA A SCENE E GAME
iniciar jogo com uma cena desativada e ativá-la ao colidir com bloco desativando as outras
Salvar e carregar dados json player pref
[TUTORIAL] Desbloqueio e Escolha de Personagens.
(UNITY) Erro ao compilar a Build Android
[RESOLVIDO] Problema com o navmesh agent
[RESOLVIDO] Registro cadrastando uma vez?
Programação Unity android 2D
(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.
[TUTORIAL] Barra de vida usando a UI da Unity(Slider)
Como Faz pra barra de vida aparecer de uma cena pra outra?
Sistema de Grau Realista - Jogo de Moto
[TUTORIAL] Como spawnar inimigos [Tutorial simples]
Vaga de modelador 3D, com remuneração...
Problemas com Colisores
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Como criar Atlas de textura com modelos exportados do Sketchup?
Unity - Sistema de Pagamento
[RESOLVIDO] iniciar áudio ao passar por uma área da cena
[RESOLVIDO] como envia asset para asset store
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
codigo não deleta prefab e não respeita o if
[TUTORIAL] Filtros de áudio para AudioListner (Low pass filter, High pass filter, etc)
[____CICLO DE TRABALHO DA UNITY____]
Meu jogo não está abrindo em outro PC
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
[TUTORIAL] Sistema de vida,morte,dano
Discord para desenvolvimento de jogos
FAB in WWII (Novo jogo na Play Storee é Free :D)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de PORTAS e CHAVES
Criar uma Array ou List com as resoluções suportadas
Alguem traz esse tutorial pro forum?
Realistic fps prefab tenho esses erros ao tentar colocar um script de entrar sair do carro
[RESOLVIDO] Alguem pode me ajudar? tenho esse erro aqui em um script
[RESOLVIDO] Personagem 2d batendo na borda e voando.
[RESOLVIDO] Não consigo usar o Sphere collider.
[RESOLVIDO] Como usa o UI.Text do unity?
Como criar botão de nova tentativa
[RESOLVIDO] Duvida em Jogo de tiro 2D
[TUTORIAL] Barra de VIDA / HP contínua
[RESOLVIDO] duvida com PlayerPrefs
Iniciar animação em determinado frame
Sistema De Troca De Armas 2D
[TUTORIAL] Script de arma completo! [FREE]
[TUTORIAL] Ordenar valores de uma array[] em ordem CRESCENTE OU DECRESCENTE
Meu jogo de runner em primeira pessoa !
[RESOLVIDO] Timer pra mudar de cena na unity 2018
Atualizar Build
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Como usar Vector3.Angles para detectar que algo está na frente de outro objeto?
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão?
Script nao funciona
Como desativar scripts em objetos distantes
[RESOLVIDO] Bug Da Unity ?
[AULA] HTML - Aula 1: Introdução
Raycast
[TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
Problema com a unity ads
como eu faço para a camera orbitar um objeto atraves de um joystick?????
[PROJETO MOBILE] Defeat the Illuminatis
XML, suporte e utilização.
Arrastar objetos em plano 2D (ArrastarT).
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Participe da Game Jam - Jaaj do canal Amdré Young!
Criar sistema de arrastar e soltar objetos em determinado lugar
AWM Champions I
[RESOLVIDO] Como verificar se o objeto é diferente de null
COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
[TUTORIAL] Snake com Unity + C#
Sobre Som (Ouvir som do sistema , duas caixas de som ... )
Configurar NPCs
[RESOLVIDO] Script Carta
[TUTORIAL] Texto Legenda Character Por Character Para Uso Básico
Ajuda com script movimento por Grid Tile no Navmesh
[Devlog] Lost in the world 05/10
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
inimigo nao persegue player
[RESOLVIDO] Build setting não entra
[RESOLVIDO] Player Sair Da animaçao
[RESOLVIDO] Erro colider
Dúvida sobre Resolução
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ENQUETE____] Eleições para presidente 2018
[Plugin dll] DigData basico save data Para Unity
Conquistas Steam? Adicionar
Montando equipe! [Game survival]
[TUTORIAL] Banco de dados || MySQL
[RESOLVIDO] Rotação com Mouse Vídeo 360
Problema com a velocidade do objeto
ANIMAÇÃO INIMIGO AI
Alguem sabe explicar o que é o C# Job System e para o que ele serve
[RESOLVIDO] Comando ScreenToWorldPoint.
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
[TUTORIAL] Como salvar dados em arquivos de texto .txt, .ini ou . qualquer coisa.
Firebase e Unity 5
[ASSET] Modelo de casa
Ontem à(s) 11:21 pm
Ontem à(s) 9:56 pm
Ontem à(s) 9:48 pm
Ontem à(s) 9:00 pm
Ontem à(s) 4:05 pm
Ontem à(s) 3:34 pm
Ontem à(s) 12:47 pm
Ontem à(s) 12:41 pm
Ontem à(s) 11:48 am
Ontem à(s) 12:57 am
Seg Out 15, 2018 11:36 pm
Seg Out 15, 2018 9:39 pm
Seg Out 15, 2018 8:31 pm
Seg Out 15, 2018 8:18 pm
Seg Out 15, 2018 6:51 pm
Seg Out 15, 2018 5:34 pm
Seg Out 15, 2018 5:03 pm
Seg Out 15, 2018 2:46 pm
Seg Out 15, 2018 1:19 pm
Seg Out 15, 2018 12:56 pm
Seg Out 15, 2018 11:34 am
Seg Out 15, 2018 6:17 am
Seg Out 15, 2018 12:30 am
Seg Out 15, 2018 12:18 am
Dom Out 14, 2018 12:52 am
Sab Out 13, 2018 9:08 pm
Sab Out 13, 2018 5:24 pm
Sab Out 13, 2018 4:00 pm
Sex Out 12, 2018 10:42 pm
Sex Out 12, 2018 6:00 pm
Sex Out 12, 2018 2:56 pm
Sex Out 12, 2018 2:55 pm
Sex Out 12, 2018 2:42 pm
Qui Out 11, 2018 8:59 pm
Qui Out 11, 2018 8:32 pm
Qui Out 11, 2018 3:09 pm
Qui Out 11, 2018 2:32 pm
Qui Out 11, 2018 12:15 pm
Qui Out 11, 2018 11:35 am
Qui Out 11, 2018 10:50 am
Qui Out 11, 2018 8:24 am
Qua Out 10, 2018 11:31 pm
Qua Out 10, 2018 11:11 pm
Qua Out 10, 2018 10:43 pm
Qua Out 10, 2018 8:22 pm
Qua Out 10, 2018 4:53 pm
Qua Out 10, 2018 4:44 pm
Qua Out 10, 2018 3:48 pm
Qua Out 10, 2018 12:40 pm
Ter Out 09, 2018 9:51 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:10 pm
Ter Out 09, 2018 8:09 pm
Ter Out 09, 2018 7:38 pm
Ter Out 09, 2018 2:55 pm
Seg Out 08, 2018 6:13 pm
Seg Out 08, 2018 4:40 pm
Seg Out 08, 2018 2:39 pm
Seg Out 08, 2018 12:52 pm
Seg Out 08, 2018 12:16 pm
Seg Out 08, 2018 10:33 am
Seg Out 08, 2018 9:22 am
Dom Out 07, 2018 1:59 pm
Dom Out 07, 2018 11:53 am
Dom Out 07, 2018 10:53 am
Sab Out 06, 2018 11:14 pm
Sab Out 06, 2018 10:55 pm
Sab Out 06, 2018 8:50 pm
Sab Out 06, 2018 8:41 pm
Sab Out 06, 2018 2:21 pm
Sab Out 06, 2018 1:33 pm
Sab Out 06, 2018 2:04 am
Sex Out 05, 2018 8:22 pm
Sex Out 05, 2018 7:39 pm
Sex Out 05, 2018 6:35 pm
Sex Out 05, 2018 11:27 am
Sex Out 05, 2018 11:22 am
Sex Out 05, 2018 9:35 am
Sex Out 05, 2018 12:53 am
Qui Out 04, 2018 11:40 pm
Qui Out 04, 2018 10:43 pm
Qui Out 04, 2018 6:23 pm
Qui Out 04, 2018 3:36 pm
Qui Out 04, 2018 3:12 pm
Qui Out 04, 2018 3:11 pm
Qui Out 04, 2018 3:11 pm
Qui Out 04, 2018 3:07 pm
Qui Out 04, 2018 12:45 am
Qua Out 03, 2018 10:50 pm
Qua Out 03, 2018 7:15 pm
Qua Out 03, 2018 4:18 pm
Qua Out 03, 2018 3:16 pm
Qua Out 03, 2018 9:07 am
Qua Out 03, 2018 8:47 am
Ter Out 02, 2018 11:12 pm
Ter Out 02, 2018 8:22 pm
Ter Out 02, 2018 12:27 pm
Seg Out 01, 2018 10:40 pm
Daniel Dória
MRX
MRX
Daniel Dória
JuR
ismarspn
francisco barroso
Jmspp
Callyde Jr
dhy paulo
rafaelllsd
dstaroski
francisco barroso
Duarte
francisco barroso
igorobm
conceptfac
Dom3000
Isabela
Callyde Jr
Daniel Dória
diegopds
MarcosSchultz
igorobm
MarcosSchultz
MarcosSchultz
Flávio
francisco barroso
Callyde Jr
SuperGamer
SoullSec
SoullSec
SoullSec
Flávio
francisco barroso
Samuelostgamer
Samuelostgamer
gurgelg752
luansantos
guimaraf
theus.mors
TecnoGames
francisco barroso
Eduardoro39
QueriaStarMorto
QueriaStarMorto
mecjo
NyanHeavyBR
CaioItz
RodriGO3477
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
FelipeSouza11
FelipeSouza11
QueriaStarMorto
Tegh
Jmspp
Callyde Jr
Jmspp
Gabryellx007
dstaroski
Tegh
Tegh
SuperGamer
Luizdanhp
MarcosSchultz
TioUV
QueriaStarMorto
KAYKETHEO27
NKKF
MarcosSchultz
Callyde Jr
francisco barroso
FelipeSouza11
Nowsfeky
Mateus2583
FelipeSouza11
Callyde Jr
Daniel Dória
marcosdanielnerydasilva
francisco barroso
NKKF
dstaroski
dstaroski
dstaroski
dstaroski
PedroSilva
igorobm
natanael.olimpio
Socates
francisco barroso
Madson
gurgelg752
francisco barroso
efsbio
brunocvz
TioUV

Entrar no carro com ThirdPerson [C#]

Ir em baixo

DÚVIDA Entrar no carro com ThirdPerson [C#]

Mensagem por thiagotmi em Ter Dez 19, 2017 6:23 pm

Quero fazer um sistema para entrar no carro em C# com o meu player ThirdPerson(no caso eu tenho um asset chamado Invector TPC).
avatar
thiagotmi
Avançado
Avançado

Masculino PONTOS : 411
REPUTAÇÃO : 14
Idade : 19
Áreas de atuação : Design, animação, programação básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por recagonlei em Ter Dez 19, 2017 6:49 pm

Se tu quer é só começar então... Qual o problema? Dúvidas? Já começou a criar alguma coisa? Estamos aqui para ajudar a criar e tirar dúvidas, não para criarmos ou pesquisarmos a criação para ti! Abraços, sucesso velho!
avatar
recagonlei
MembroAvançado

Masculino PONTOS : 1402
REPUTAÇÃO : 180
Idade : 99
Áreas de atuação :
~Programação (C#, HTML, CSS3)
~Spriter
~Modelagem
~Produtor de rap/hip hop e eletrônico
Respeito as regras :

Ver perfil do usuário http://stwodio.ga

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por thiagotmi em Ter Dez 19, 2017 9:14 pm

@recagonlei escreveu:Se tu quer é só começar então... Qual o problema? Dúvidas? Já começou a criar alguma coisa? Estamos aqui para ajudar a criar e tirar dúvidas, não para criarmos ou pesquisarmos a criação para ti! Abraços, sucesso velho!
Opa eu esqueci de adicionar a duvida... É que eu tenho um asset de controle (se chama invector TPC) mas não consigo acoplar um script que o faça entrar no carro, ou um script sei lá que desative os scripts do Player e ative os scripts do Carro.
avatar
thiagotmi
Avançado
Avançado

Masculino PONTOS : 411
REPUTAÇÃO : 14
Idade : 19
Áreas de atuação : Design, animação, programação básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por recagonlei em Ter Dez 19, 2017 11:19 pm

Entendi velho... Puts, ai fica complicado cara, pois é um assets de terceiros! Tu deveria pedir suporte para os criadores, que eles entendem melhor do asset e conseguem te ajudar. Mas como tu não consegue desativar os scripts do player? Cacheie todos eles em um outro script e passe uma função para desativa-los... Qual seria o erro?
avatar
recagonlei
MembroAvançado

Masculino PONTOS : 1402
REPUTAÇÃO : 180
Idade : 99
Áreas de atuação :
~Programação (C#, HTML, CSS3)
~Spriter
~Modelagem
~Produtor de rap/hip hop e eletrônico
Respeito as regras :

Ver perfil do usuário http://stwodio.ga

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por Phph09 em Qua Dez 20, 2017 6:41 pm

Mande uma foto dos scripts do player e outra dos scripts do carro para podermos te ajudar;
avatar
Phph09
ProgramadorMaster

Masculino PONTOS : 1580
REPUTAÇÃO : 233
Idade : 13
Áreas de atuação :

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por thiagotmi em Qui Dez 21, 2017 6:17 pm

Código:
using UnityEngine;
using System.Collections;

namespace Invector.CharacterController
{
    [vClassHeader("Third Person Controller")]
    public class vThirdPersonController : vThirdPersonAnimator
    {
        #region Variables

        public static vThirdPersonController instance;

        #endregion
     
        protected virtual void Awake()
        {
            StartCoroutine(UpdateRaycast()); // limit raycasts calls for better performance           
        }

        protected virtual void Start()
       {
          if (instance == null)
          {
             instance = this;
             DontDestroyOnLoad(this.gameObject);
             this.gameObject.name = gameObject.name + " Instance";
          }
          else
          {
             Destroy(this.gameObject);
             return;
          }             

            #if !UNITY_EDITOR
                Cursor.visible = false;
            #endif
        }               
     
        #region Locomotion Actions
       
        public virtual void Sprint(bool value)
        {
            if(value)
            {
                if (currentStamina > 0 && input.sqrMagnitude > 0.1f)
                {
                    if (isGrounded && !isCrouching)
                        isSprinting = !isSprinting;
                }
            }
            else if (currentStamina <= 0 || input.sqrMagnitude < 0.1f || actions || isStrafing && !strafeWalkByDefault && (direction >= 0.5 || direction <= -0.5 || speed <= 0))
            {               
                isSprinting = false;
            }               
        }

        public virtual void Crouch()
        {                                   
            if (isGrounded && !actions)
            {
                if (isCrouching && CanExitCrouch())
                    isCrouching = false;
                else
                    isCrouching = true;
            }               
        }

        public virtual void Strafe()
        {
            isStrafing = !isStrafing;
        }

        public virtual void Jump()
        {
            if (customAction) return;
                     
            // know if has enough stamina to make this action
           bool staminaConditions = currentStamina > jumpStamina;
            // conditions to do this action
            bool jumpConditions = !isCrouching && isGrounded && !actions && staminaConditions && !isJumping;
            // return if jumpCondigions is false
            if (!jumpConditions) return;          
           // trigger jump behaviour
           jumpCounter = jumpTimer;
           isJumping = true;
            // trigger jump animations
            if (input.sqrMagnitude < 0.1f)
               animator.CrossFadeInFixedTime("Jump", 0.1f);
            else
               animator.CrossFadeInFixedTime("JumpMove", .2f);          
           // reduce stamina
            ReduceStamina(jumpStamina, false);
            currentStaminaRecoveryDelay = 1f;
        }

        public virtual void Roll()
        {
            if (animator.IsInTransition(0)) return;

           bool staminaCondition = currentStamina > rollStamina;
            // can roll even if it's on a quickturn or quickstop animation
            bool actionsRoll = !actions || (actions && (quickStop));
            // general conditions to roll
            bool rollConditions = (input != Vector2.zero || speed > 0.25f) && actionsRoll && isGrounded && staminaCondition && !isJumping;

           if (!rollConditions || isRolling) return;
          
           animator.SetTrigger("ResetState");
            animator.CrossFadeInFixedTime("Roll", 0.1f);
            ReduceStamina(rollStamina, false);
            currentStaminaRecoveryDelay = 2f;
        }     

        /// <summary>
        /// Use another transform as  reference to rotate
        /// </summary>
        /// <param name="referenceTransform"></param>
        public virtual void RotateWithAnotherTransform(Transform referenceTransform)
        {
            var newRotation = new Vector3(transform.eulerAngles.x, referenceTransform.eulerAngles.y, transform.eulerAngles.z);
            transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(newRotation), strafeRotationSpeed * Time.fixedDeltaTime);
            targetRotation = transform.rotation;
        }

        #endregion

        #region Check Action Triggers
       
        /// <summary>
        /// Call this in OnTriggerEnter or OnTriggerStay to check if enter in triggerActions   
        /// </summary>
        /// <param name="other">collider trigger</param>                       
        public virtual void CheckTriggers(Collider other)
        {
            try
            {
                CheckForAutoCrouch(other);
            }
            catch (UnityException e)
            {
                Debug.LogWarning(e.Message);
            }
        }

        /// <summary>
        /// Call this in OnTriggerExit to check if exit of triggerActions
        /// </summary>
        /// <param name="other"></param>
        public virtual void CheckTriggerExit(Collider other)
        {           
            AutoCrouchExit(other);
        }

        #region Update Raycasts 

        protected IEnumerator UpdateRaycast()
        {
            while (true)
            {
                yield return new WaitForEndOfFrame();

                AutoCrouch();
                StopMove();
            }
        }   
     
        #endregion

        #region Crouch Methods

        protected virtual void AutoCrouch()
        {
            if (autoCrouch)
                isCrouching = true;

            if (autoCrouch && !inCrouchArea && CanExitCrouch())
            {
                autoCrouch = false;
                isCrouching = false;
            }
        }

        protected virtual bool CanExitCrouch()
        {
            // radius of SphereCast
            float radius = _capsuleCollider.radius * 0.9f;
            // Position of SphereCast origin stating in base of capsule
            Vector3 pos = transform.position + Vector3.up * ((colliderHeight * 0.5f) - colliderRadius);
            // ray for SphereCast
            Ray ray2 = new Ray(pos, Vector3.up);

            // sphere cast around the base of capsule for check ground distance
            if (Physics.SphereCast(ray2, radius, out groundHit, headDetect - (colliderRadius * 0.1f), autoCrouchLayer))
                return false;
            else
                return true;
        }

        protected virtual void AutoCrouchExit(Collider other)
        {
            if (other.CompareTag("AutoCrouch"))
            {
                inCrouchArea = false;
            }
        }

        protected virtual void CheckForAutoCrouch(Collider other)
        {
            if (other.gameObject.CompareTag("AutoCrouch"))
            {
                autoCrouch = true;
                inCrouchArea = true;
            }
        }

        #endregion

        #endregion
    }
}


Esse aqui é o controller do Player
avatar
thiagotmi
Avançado
Avançado

Masculino PONTOS : 411
REPUTAÇÃO : 14
Idade : 19
Áreas de atuação : Design, animação, programação básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por thiagotmi em Qui Dez 21, 2017 6:19 pm

Código:
//----------------------------------------------
//            Realistic Car Controller
//
// Copyright ©️ 2015 BoneCracker Games
// http://www.bonecrackergames.com
//
//----------------------------------------------

using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

[AddComponentMenu("BoneCracker Games/Realistic Car Controller/AI/AI Controller")]
public class RCC_AICarController : MonoBehaviour {

   private RCC_CarControllerV3 carController;
   private Rigidbody rigid;
   
   // Waypoint Container.
   private RCC_AIWaypointsContainer waypointsContainer;
   public int currentWaypoint = 0;
   
   // Raycast distances.
   public LayerMask obstacleLayers = -1;
   public int wideRayLength = 20;
   public int tightRayLength = 20;
   public int sideRayLength = 3;
   private float rayInput = 0f;
   private bool  raycasting = false;
   private float resetTime = 0f;
   
   // Steer, motor, and brake inputs.
   private float steerInput = 0f;
   private float gasInput = 0f;
   private float brakeInput = 0f;

   public bool limitSpeed = false;
   public float maximumSpeed = 100f;

   public bool smoothedSteer = true;
   
   // Brake Zone.
   private float maximumSpeedInBrakeZone = 0f;
   private bool inBrakeZone = false;
   
   // Counts laps and how many waypoints passed.
   public int lap = 0;
   public int totalWaypointPassed = 0;
   public int nextWaypointPassRadius = 40;
   public bool ignoreWaypointNow = false;
   
   // Unity's Navigator.
   private UnityEngine.AI.NavMeshAgent navigator;
   private GameObject navigatorObject;

   void Awake() {

      carController = GetComponent<RCC_CarControllerV3>();
      rigid = GetComponent<Rigidbody>();
      carController.AIController = true;
//      carController.canEngineStall = false;
//      carController.autoReverse = true;
      waypointsContainer = FindObjectOfType(typeof(RCC_AIWaypointsContainer)) as RCC_AIWaypointsContainer;

      navigatorObject = new GameObject("Navigator");
      navigatorObject.transform.parent = transform;
      navigatorObject.transform.localPosition = Vector3.zero;
      navigatorObject.AddComponent<UnityEngine.AI.NavMeshAgent>();
      navigatorObject.GetComponent<UnityEngine.AI.NavMeshAgent>().radius = 1;
      navigatorObject.GetComponent<UnityEngine.AI.NavMeshAgent>().speed = 1f;
      navigatorObject.GetComponent<UnityEngine.AI.NavMeshAgent>().height = 1;
      navigatorObject.GetComponent<UnityEngine.AI.NavMeshAgent>().avoidancePriority = 99;
      navigator = navigatorObject.GetComponent<UnityEngine.AI.NavMeshAgent>();

   }
   
   void Update(){
      
      navigator.transform.localPosition = new Vector3(0, carController.FrontLeftWheelCollider.transform.localPosition.y, carController.FrontLeftWheelCollider.transform.localPosition.z);
      
   }
   
   void  FixedUpdate (){

      if(!carController.canControl)
         return;

      Navigation();
      FixedRaycasts();
      ApplyTorques();
      Resetting();

   }
   
   void Navigation (){
      
      if(!waypointsContainer){
         Debug.LogError("Waypoints Container Couldn't Found!");
         enabled = false;
         return;
      }
      if(waypointsContainer && waypointsContainer.waypoints.Count < 1){
         Debug.LogError("Waypoints Container Doesn't Have Any Waypoints!");
         enabled = false;
         return;
      }
      
      // Next waypoint's position.
      Vector3 nextWaypointPosition = transform.InverseTransformPoint( new Vector3(waypointsContainer.waypoints[currentWaypoint].position.x, transform.position.y, waypointsContainer.waypoints[currentWaypoint].position.z));
      float navigatorInput = Mathf.Clamp(transform.InverseTransformDirection(navigator.desiredVelocity).x * 1.5f, -1f, 1f);

      navigator.SetDestination(waypointsContainer.waypoints[currentWaypoint].position);

      //Steering Input.
      if(carController.direction == 1){
         if(!ignoreWaypointNow)
            steerInput = Mathf.Clamp((navigatorInput + rayInput), -1f, 1f);
         else
            steerInput = Mathf.Clamp(rayInput, -1f, 1f);
      }else{
         steerInput = Mathf.Clamp((-navigatorInput - rayInput), -1f, 1f);
      }
      
      if(!inBrakeZone){
         if(carController.speed >= 25){
            brakeInput = Mathf.Lerp(0f, .25f, (Mathf.Abs(steerInput)));
         }else{
            brakeInput = 0f;
         }
      }else{
         brakeInput = Mathf.Lerp(0f, 1f, (carController.speed - maximumSpeedInBrakeZone) / maximumSpeedInBrakeZone);
      }

      if(!inBrakeZone){
         
         if(carController.speed >= 10){
            if(!carController.changingGear)
               gasInput = Mathf.Clamp(1f - (Mathf.Abs(navigatorInput / 5f)  - Mathf.Abs(rayInput / 5f)), .5f, 1f);
            else
               gasInput = 0f;
         }else{
            if(!carController.changingGear)
               gasInput = 1f;
            else
               gasInput = 0f;
         }

      }else{
         
         if(!carController.changingGear)
            gasInput = Mathf.Lerp(1f, 0f, (carController.speed) / maximumSpeedInBrakeZone);
         else
            gasInput = 0f;

      }
      
      // Checks for the distance to next waypoint. If it is less than written value, then pass to next waypoint.
      if (nextWaypointPosition.magnitude < nextWaypointPassRadius){
         currentWaypoint ++;
         totalWaypointPassed ++;
         
         // If all waypoints are passed, sets the current waypoint to first waypoint and increase lap.
         if (currentWaypoint >= waypointsContainer.waypoints.Count){
            currentWaypoint = 0;
            lap ++;
         }
      }
      
   }
   
   void Resetting (){
      
      if(carController.speed <= 5 && transform.InverseTransformDirection(rigid.velocity).z < 1f)
         resetTime += Time.deltaTime;
      
      if(resetTime >= 4)
         carController.direction = -1;

      if(resetTime >= 6 || carController.speed >= 25){
         carController.direction = 1;
         resetTime = 0;
      }
      
   }
   
   void FixedRaycasts(){
      
      Vector3 forward = transform.TransformDirection ( new Vector3(0, 0, 1));
      Vector3 pivotPos = new Vector3(transform.localPosition.x, carController.FrontLeftWheelCollider.transform.position.y, transform.localPosition.z);
      RaycastHit hit;
      
      // New bools effected by fixed raycasts.
      bool  tightTurn = false;
      bool  wideTurn = false;
      bool  sideTurn = false;
      bool  tightTurn1 = false;
      bool  wideTurn1 = false;
      bool  sideTurn1 = false;
      
      // New input steers effected by fixed raycasts.
      float newinputSteer1 = 0f;
      float newinputSteer2 = 0f;
      float newinputSteer3 = 0f;
      float newinputSteer4 = 0f;
      float newinputSteer5 = 0f;
      float newinputSteer6 = 0f;
      
      // Drawing Rays.
      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(25, transform.up) * forward * wideRayLength, Color.white);
      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-25, transform.up) * forward * wideRayLength, Color.white);
      
      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(7, transform.up) * forward * tightRayLength, Color.white);
      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-7, transform.up) * forward * tightRayLength, Color.white);

      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(90, transform.up) * forward * sideRayLength, Color.white);
      Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-90, transform.up) * forward * sideRayLength, Color.white);
      
      // Wide Raycasts.
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(25, transform.up) * forward, out hit, wideRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(25, transform.up) * forward * wideRayLength, Color.red);
         newinputSteer1 = Mathf.Lerp (-.5f, 0f, (hit.distance / wideRayLength));
         wideTurn = true;
      }
      
      else{
         newinputSteer1 = 0f;
         wideTurn = false;
      }
      
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(-25, transform.up) * forward, out hit, wideRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-25, transform.up) * forward * wideRayLength, Color.red);
         newinputSteer4 = Mathf.Lerp (.5f, 0f, (hit.distance / wideRayLength));
         wideTurn1 = true;
      }else{
         newinputSteer4 = 0f;
         wideTurn1 = false;
      }
      
      // Tight Raycasts.
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(7, transform.up) * forward, out hit, tightRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(7, transform.up) * forward * tightRayLength , Color.red);
         newinputSteer3 = Mathf.Lerp (-1f, 0f, (hit.distance / tightRayLength));
         tightTurn = true;
      }else{
         newinputSteer3 = 0f;
         tightTurn = false;
      }
      
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(-7, transform.up) * forward, out hit, tightRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-7, transform.up) * forward * tightRayLength, Color.red);
         newinputSteer2 = Mathf.Lerp (1f, 0f, (hit.distance / tightRayLength));
         tightTurn1 = true;
      }else{
         newinputSteer2 = 0f;
         tightTurn1 = false;
      }

      // Side Raycasts.
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(90, transform.up) * forward, out hit, sideRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(90, transform.up) * forward * sideRayLength , Color.red);
         newinputSteer5 = Mathf.Lerp (-1f, 0f, (hit.distance / sideRayLength));
         sideTurn = true;
      }else{
         newinputSteer5 = 0f;
         sideTurn = false;
      }
      
      if (Physics.Raycast (pivotPos, Quaternion.AngleAxis(-90, transform.up) * forward, out hit, sideRayLength, obstacleLayers) && !hit.collider.isTrigger && hit.transform.root != transform) {
         Debug.DrawRay (pivotPos, Quaternion.AngleAxis(-90, transform.up) * forward * sideRayLength, Color.red);
         newinputSteer6 = Mathf.Lerp (1f, 0f, (hit.distance / sideRayLength));
         sideTurn1 = true;
      }else{
         newinputSteer6 = 0f;
         sideTurn1 = false;
      }
      
      if(wideTurn || wideTurn1 || tightTurn || tightTurn1 || sideTurn || sideTurn1)
         raycasting = true;
      else
         raycasting = false;
      
      if(raycasting)
         rayInput = (newinputSteer1 + newinputSteer2 + newinputSteer3 + newinputSteer4 + newinputSteer5 + newinputSteer6);
      else
         rayInput = 0f;
      
      if(raycasting && Mathf.Abs(rayInput) > .5f)
         ignoreWaypointNow = true;
      else
         ignoreWaypointNow = false;
      
   }

   void ApplyTorques(){

      if(carController.direction == 1){
         if(!limitSpeed){
            carController.gasInput = gasInput;
         }else{
            carController.gasInput = gasInput * Mathf.Clamp01(Mathf.Lerp(10f, 0f, (carController.speed) / maximumSpeed));
         }
      }else{
         carController.gasInput = 0f;
      }

      if(smoothedSteer)
         carController.steerInput = Mathf.Lerp(carController.steerInput, steerInput, Time.deltaTime * 20f);
      else
         carController.steerInput = steerInput;

      if(carController.direction == 1)
         carController.brakeInput = brakeInput;
      else
         carController.brakeInput = gasInput;

   }
   
   void OnTriggerEnter (Collider col){
      
      if(col.gameObject.GetComponent<RCC_AIBrakeZone>()){
         inBrakeZone = true;
         maximumSpeedInBrakeZone = col.gameObject.GetComponent<RCC_AIBrakeZone>().targetSpeed;
      }
      
   }
   
   void OnTriggerExit (Collider col){
      
      if(col.gameObject.GetComponent<RCC_AIBrakeZone>()){
         inBrakeZone = false;
         maximumSpeedInBrakeZone = 0;
      }
      
   }
   
}

E esse é do Carro
avatar
thiagotmi
Avançado
Avançado

Masculino PONTOS : 411
REPUTAÇÃO : 14
Idade : 19
Áreas de atuação : Design, animação, programação básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por Madness em Qui Dez 21, 2017 11:14 pm

Esses sistemas possuem suporte através dos desenvolvedores, e tenho certeza que se pedir eles vão ajudar você :D aqui é o lugar errado para pedir isso!
avatar
Madness
Designer

Masculino PONTOS : 1326
REPUTAÇÃO : 196
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#



Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Entrar no carro com ThirdPerson [C#]

Mensagem por thiagotmi em Sex Dez 22, 2017 3:48 am

@Madness escreveu:Esses sistemas possuem suporte através dos desenvolvedores, e tenho certeza que se pedir eles vão ajudar você :D aqui é o lugar errado para pedir isso!


Ok! Obrigado!
avatar
thiagotmi
Avançado
Avançado

Masculino PONTOS : 411
REPUTAÇÃO : 14
Idade : 19
Áreas de atuação : Design, animação, programação básica.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum