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:
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
[TUTORIAL] Acionar a vibração do dispositivo
Manager Como fazer um jogo nesse estilo?
Como criar conta de publicador na asset store?
Problema de renderização
[Projeto]Simples em Desenvolvimento The Dolls Battle
Scripts !
Problema com script
Como fazer para aparecer um objeto na tela ao clicar com o mouse ou apertar um botão?
Quando a porta estiver trancada dar tipo uma tremedeira
Sorteio Especial GTA V,HELLO NEIGHBOR,PUBG
SonyVegas com qualidade ruim
Cores invertidas/Estranhas no PC
C# Script de Camera
[RESOLVIDO] Compra de asset
criar um app que atende a vários produtos.
Script para abrir e fechar gaveta
Minimap/Radar/GPS Estilo GTA V
Movimento 8 lados e utilização reflexiva de If e Else If (Resolução Transform).
[PROJETO MOBILE] Defeat the Illuminatis
Duvida sobre o unity IAP (compras na google play)
Programação e autonomia
Client Sincronizar objeto sem ser o player ??? (Networking Unet)
[TUTORIAL] AI Enemy ( Jogos de terror )
[____ADMINISTRAÇÃO____] Por que ninguém responde o seu tópico?
Problema de luz com objetos do ProBuilder
PROCURA-SE DESIGNER 2D e ROTEIRISTA PARA PROJETO EM ANDAMENTO!
[RESOLVIDO] Script para textura 3D
[TUTORIAL] Unity 5 - Como utilizar o Animator
Bug com mesh na animação
Formação de Equipe - programadores de C# na unity
Participe da Game Jam - Jaaj do canal Amdré Young!
movimento do porsonagen junto com objeto
[RESOLVIDO] Som na lanterna falhando
imagem transparente
[ AJUDA] Estou com problemas para acessar índice de uma Lista e realizar uma acao
Diferentes tamanhos de Textura afeta o desempenho do jogo?
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Emulador em seu jogo como Descobrir
[GAME JAM] Consegue Fazer um jogo em 15 dias ?
[TUTORIAL] Lanterna
Textura em 3 dimensões na Unity 2018.2??????
Script que ao clicar em um objeto, abra um formulário
[RESOLVIDO] como atualizar o status do perfil na conta unity
[Projeto] Line Battle
Como Posso editar Animação Generic mixamo ?
[TUTORIAL] Sistema de EXP, upar níveis, entre outros
[AULA] Estrutura de repetição while e do while
Como fazer um analogico para rotaciona a camera do jogador? android
Como mudar de Scene sem perder os valores das variáveis
Como mudar alguma configuração de acordo com a resolução da tela?
Timer
Precisa-se de Criador de sprites.
Como criar um Reflexo falso como do Sonic Adventure?
[ FIND ME ] Game em Desenvolvimento
Compilando pra android
[AULA] Estrutura de repetição for
[AULA] Listas (List)
Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
GetActiveScene
[TUTORIAL] C# .NET | Visual Studio - conexão com banco de dados MySQL
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[TUTORIAL] MOVIMENTO NA ARMA PARA FICAR MAIS REAL!
(dúvida) fazer o player cair de paraquedas estilo pubg
[TUTORIAL] Como criar cénarios 2D muito rapido e facil.
Porta "bugada"
[TUTORIAL] C# .NET | Cores aleatorias RGB
RECRUTA-SE DESIGNER PARA JOGO ONLINE..
[RESOLVIDO] Script de porta trancada com audio
Animation Fps
[RESOLVIDO] Problema com StartCoroutine
[RESOLVIDO] Erro ao usar DLL/Biblioteca do Mysql
R7 - GOOH (resident evil 7)
[ NONAME ] Procura de pessoas interessadas
FPS - Armas e balas
Voice Chat
Jogo - Board Challenge Free
[RESOLVIDO] Gerenciador de arquivos CSV
Editor de vídeo gratuito.
Erro ao usar WWW na unity
[RESOLVIDO] color.a diminuir gradualmente
Pack de áudio/ efeitos sonoros gratuitos.
[TUTORIAL] Cursor do mouse não aparecer durante o jogo
Se eu fazer uma animação diferente pra cada personagem,vai pesar ?
Como fazer um sistema de se esconder?
Dragon Bones [software]
Auto-Update de forma rápida, simples e barata.
Como fazer um botão Joystick que controle o First Person Controller?
Cloud Save por arquivo binario no google play services
[RESOLVIDO] Como editar o texto que eu selecionar ? - (InputField)
Como verificar uma colisão constante ?
[TUTORIAL] CONFIGURANDO O UNITY PARA COMPILAR PARA ANDROID
Como fazer ótimo FPSController com full body?
onde publicar os trabalhos prontos.
[RESOLVIDO] Como usar "?" e ":" ?
[RESOLVIDO] Detectar colisão usando if em C#?
[ENQUETE OFICIAL] Você está vendo o CHAT DO FÓRUM?????
Hoje à(s) 12:37 am
Ontem à(s) 8:16 pm
Ontem à(s) 8:14 pm
Ontem à(s) 7:32 pm
Ontem à(s) 6:39 pm
Ontem à(s) 3:16 pm
Ontem à(s) 3:16 pm
Ontem à(s) 3:10 pm
Ontem à(s) 2:56 pm
Ontem à(s) 2:25 pm
Ontem à(s) 2:20 pm
Ontem à(s) 2:14 pm
Ontem à(s) 2:04 pm
Ontem à(s) 11:55 am
Qui Jul 19, 2018 8:06 pm
Qui Jul 19, 2018 5:20 pm
Qui Jul 19, 2018 4:29 pm
Qui Jul 19, 2018 3:13 pm
Qui Jul 19, 2018 2:29 pm
Qui Jul 19, 2018 10:14 am
Qui Jul 19, 2018 10:10 am
Qui Jul 19, 2018 10:06 am
Qui Jul 19, 2018 1:11 am
Qua Jul 18, 2018 9:18 pm
Qua Jul 18, 2018 9:13 pm
Qua Jul 18, 2018 8:04 pm
Qua Jul 18, 2018 5:33 pm
Qua Jul 18, 2018 4:28 pm
Qua Jul 18, 2018 4:26 pm
Qua Jul 18, 2018 4:09 pm
Qua Jul 18, 2018 2:38 pm
Qua Jul 18, 2018 1:52 pm
Qua Jul 18, 2018 11:30 am
Qua Jul 18, 2018 10:10 am
Qua Jul 18, 2018 9:36 am
Ter Jul 17, 2018 11:46 pm
Ter Jul 17, 2018 8:57 pm
Ter Jul 17, 2018 6:44 pm
Ter Jul 17, 2018 5:38 pm
Ter Jul 17, 2018 5:37 pm
Ter Jul 17, 2018 5:34 pm
Ter Jul 17, 2018 3:58 pm
Ter Jul 17, 2018 3:35 pm
Ter Jul 17, 2018 1:51 pm
Ter Jul 17, 2018 12:15 pm
Seg Jul 16, 2018 8:15 pm
Seg Jul 16, 2018 5:01 pm
Seg Jul 16, 2018 4:01 pm
Seg Jul 16, 2018 3:08 pm
Seg Jul 16, 2018 2:11 pm
Seg Jul 16, 2018 1:32 pm
Seg Jul 16, 2018 9:55 am
Dom Jul 15, 2018 11:46 pm
Dom Jul 15, 2018 10:34 pm
Dom Jul 15, 2018 10:32 pm
Dom Jul 15, 2018 10:03 pm
Dom Jul 15, 2018 9:15 pm
Dom Jul 15, 2018 2:05 pm
Dom Jul 15, 2018 12:42 am
Dom Jul 15, 2018 12:35 am
Sab Jul 14, 2018 11:38 pm
Sab Jul 14, 2018 8:06 pm
Sab Jul 14, 2018 6:54 pm
Sab Jul 14, 2018 4:23 pm
Sab Jul 14, 2018 9:44 am
Sab Jul 14, 2018 9:42 am
Sab Jul 14, 2018 12:58 am
Sex Jul 13, 2018 11:09 pm
Sex Jul 13, 2018 10:20 pm
Sex Jul 13, 2018 8:28 pm
Sex Jul 13, 2018 2:11 pm
Sex Jul 13, 2018 12:39 pm
Sex Jul 13, 2018 11:01 am
Sex Jul 13, 2018 10:31 am
Sex Jul 13, 2018 8:53 am
Qui Jul 12, 2018 11:07 pm
Qui Jul 12, 2018 10:52 pm
Qui Jul 12, 2018 10:14 pm
Qui Jul 12, 2018 9:27 pm
Qui Jul 12, 2018 8:05 pm
Qui Jul 12, 2018 7:33 pm
Qui Jul 12, 2018 7:12 pm
Qui Jul 12, 2018 6:29 pm
Qui Jul 12, 2018 6:11 pm
Qui Jul 12, 2018 5:04 pm
Qui Jul 12, 2018 4:10 pm
Qui Jul 12, 2018 3:41 pm
Qui Jul 12, 2018 3:05 pm
Qui Jul 12, 2018 11:38 am
Qui Jul 12, 2018 10:27 am
Qui Jul 12, 2018 10:27 am
Qui Jul 12, 2018 10:05 am
Qui Jul 12, 2018 9:51 am
Qui Jul 12, 2018 1:16 am
Qua Jul 11, 2018 7:25 pm
Qua Jul 11, 2018 6:33 pm
Qua Jul 11, 2018 5:24 pm
Qua Jul 11, 2018 1:44 pm
Ter Jul 10, 2018 7:54 pm
MarcosSchultz
kaufergomi
FelipeSouza11
Callyde Jr
Unidade3d5
vitorhugo
FelipeSouza11
MayLeone
Tiago95
Tiago95
RafaelSquid1
NKKF
Tegh
Callyde Jr
MayLeone
MRX
natanael.olimpio
LucioHenrique890
Isabela
dstaroski
dstaroski
Tegh
QueriaStarMorto
Extreme Craft
Mourao
Tegh
LucasF
rafilkl2
vitorhugo
FelipeSouza11
Dom3000
QueriaStarMorto
Tegh
dstaroski
RafaelSquid1
JohnRambo
Callyde Jr
Dom3000
dstaroski
dstaroski
dstaroski
Dom3000
RafaelSquid1
LucioHenrique890
RandomStuff
marciosilva
MRX
natanael.olimpio
andradetd
NKKF
FelipeSouza11
dstaroski
Nalfam
hetrodo
LucioHenrique890
dkrazor
dstaroski
NKKF
Tegh
Tegh
AprDev
NKKF
Tegh
dstaroski
gcs13
gcs13
LucioHenrique890
Nalfam
Tegh
Picode
RafaelSquid1
FelipeGD
igorobm
igorobm
RafaelSquid1
Locodapraça
LucioHenrique890
FelipeGD
FelipeGD
NKKF
Nalfam
NKKF
Eduardoro39
FelipeGD
FelipeGD
FelipeGD
RafaelSquid1
Zack2
NKKF
RafaelSquid1
jhobert77
Tiago95
NKKF
FelipeGD
FelipeGD
marciosilva
PauloFR
Lorena Martins
zZAndersonZz

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 : 323
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 : 1320
REPUTAÇÃO : 177
Idade : 100
Áreas de atuação : ~Programação (C#, HTML, CSS3)
~Spriter
~Modelagem
~E acredita que também beatmaker? Maybe
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 : 323
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 : 1320
REPUTAÇÃO : 177
Idade : 100
Áreas de atuação : ~Programação (C#, HTML, CSS3)
~Spriter
~Modelagem
~E acredita que também beatmaker? Maybe
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 : 1459
REPUTAÇÃO : 217
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 : 323
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 : 323
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 : 1236
REPUTAÇÃO : 194
Á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 : 323
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