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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
JOGO DE SOBREVIVÊNCIA (Iniciantes)
Previsão de destino com Rigidbody.AddForce (Jogo de Futebol)
[____TÓPICO LIVRE____] FALE O QUE QUISER
Fazer objeto preview andar de gridsize em gridsize
Acionar funções com button ?
-- [ COMO FAÇO PARA DESATIVAR UM UI DEPOIS DE +/-, 3 SEGUNDOS ? ] --
FORMAÇÃO DE EQUIPE - JOGO Puzzle/Plataforma
Home Simulator 2017 (Estilo The Sims em 1ª Pessoa) (Download Grátis) v1.0.2
Problema no checkpoint
Photon Network
IA zumbie veloz de mais
sistema de Entrar/Sair de veículos em Network (Photon Unity Networking)
Raycast Sol
[Script] Sistema de headshot estilo sniper elite [BÁSICO]
Foice gigante
[Modelo 3D]Unity Interior 3D Estilo De Terror + Download Grátis
Meus modelos 3D em fase de experimento
SITE MODELOS 3D PARA USO COMERCIAL
Ajuda com scripts
Instanciar objetos aonde mira
Fazer o player abrir caixas
Rotaçao de um objeto e paralizaçao de seu "filho" na hierarquia(Unity 2D)
ATUALIZAÇÃO - Joguem meu jogo [Aircraft - Space Guardian] Please !!
meu jogo feito na unity
Como otimizar meu game para android?
portais ajuda
[RESOLVIDO] INSTANCIAR PARTICULAS
Como fazer o canvas se ajusta com o tamanho da tela?
Destruir objeto depois da animação
Sistema de marcha de carro
(Duvida) Camera Seguir Player...
[TUTORIAL] Como programar um VOLANTE para veículos
[DUVIDA] "encostar" em um GameObject e Tomar Dano
TOP SECRET - Programador iniciante com experiencia em 2D
Dúvida sobre multiplayer!
PARTICULAS PLAY/STOP
ABRIR E FECHAR PORTA!
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Criação de uma mensagem notificação em objeto 3d no unity
Fazer a camera seguir o personagem porem quando ela chegar na parede ela pare de se movimenta
Tocar som ao andar.
Verificar se é a primeira vez que joga
COMO POSSO FAZER O INIMIGO MORRER COM TIRO?
Unity Microfone
OBJETO GIRAR QUANDO ARRASTAR O MOUSE
disolver/ desintegrar um objeto
BARRINHA PARA REBAIXAR O CARRO!
Chamar Metodo
Gerador de códigos
Duvida sobre patrulha aleatória
[TUTORIAL] Ligar e Desligar Lanterna
[TUTORIAL] ARMA NO UNITY 3D
SOM DO TIRO
Como usar uma animação de uma arma animada na Unity...
[Tutorial] Porta ativada por alavanca
MIRA PARA JOGO DE FPS ESTILO CSGO
Game Resistência
Parede ocas
Modificar uma barrinha!
[Quase Pronto] Survival Block. Testem e mandem os bugs pra mim.
[ME AJUDA] O player não se movimenta...
SIRENE ESTILO POLÍCIA MILITAR
Movimentaçao player
Cena Loading para carregar proximo Level
MUDAR FLOAT NO FIM DE UMA ANIMAÇÃO
RagDoll + Download Free -- feito por um gringo
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
[AJUDA] Cronometro
[PEDIDO] Designers ou Entendedores (Capa,Menu e ToolTip) 3 Imagens
[RESOLVIDO] Publicando Apk Parte 2
[TUTORIAL] IA Simples
[TUTORIAL] Ajustar o Brilho do LensFlare de Acordo com a Distância
CONTROLE ARCADE PARA JOGO DE CORRIDA
[TUTORIAL] IA Simples Parte 2 (Atirar)
[DEMO] Survival Block
Aprimoramento IA Inimiga
Batalha de Canhão
[RESOLVIDO] Camera Collider
Todos os inimigos morrem
Canal de tutoriais android
Area Para modeladores
Inimigo ao seguir flutua [ajuda]
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Demo de jogo para testarem...
[TUTORIAL] Fazer um VOLANTE com UI, para Android
[DUVIDA] Como destruir um GameObject (cubo etc...) sem destruir seus "afilhados"
[Duvida] Como fazer uma luz se desativar ao ficar longe dela
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
GRAFICO BUGADO [MOBILE]
Duvida sobre array de gameobject
ERRO NO APK
ANIMAÇÃO
sincronizar um Variável String multiplayer
DUVIDAS VARIADAS
Publicando Apk na PlayStore
Curar vida ao coletar itens
(Dúvida) Rotacionar roda
Sistema de tráfego
ObjetoCair
Hoje à(s) 9:58 pm
Hoje à(s) 9:23 pm
Hoje à(s) 8:38 pm
Hoje à(s) 7:39 pm
Hoje à(s) 6:54 pm
Hoje à(s) 6:45 pm
Hoje à(s) 5:44 pm
Hoje à(s) 5:29 pm
Hoje à(s) 5:14 pm
Hoje à(s) 5:02 pm
Hoje à(s) 2:02 pm
Hoje à(s) 1:49 pm
Hoje à(s) 1:40 pm
Hoje à(s) 1:38 pm
Hoje à(s) 12:00 pm
Hoje à(s) 12:47 am
Hoje à(s) 12:00 am
Ontem à(s) 11:46 pm
Ontem à(s) 11:04 pm
Ontem à(s) 10:30 pm
Ontem à(s) 10:05 pm
Ontem à(s) 8:52 pm
Ontem à(s) 8:01 pm
Ontem à(s) 7:32 pm
Ontem à(s) 6:33 pm
Ontem à(s) 6:24 pm
Ontem à(s) 3:57 pm
Ontem à(s) 3:39 pm
Ontem à(s) 1:42 pm
Ontem à(s) 12:13 pm
Ontem à(s) 6:41 am
Dom Mar 26, 2017 8:08 pm
Dom Mar 26, 2017 7:04 pm
Dom Mar 26, 2017 1:58 pm
Dom Mar 26, 2017 1:34 pm
Dom Mar 26, 2017 1:13 pm
Dom Mar 26, 2017 10:43 am
Dom Mar 26, 2017 1:37 am
Dom Mar 26, 2017 12:53 am
Dom Mar 26, 2017 12:52 am
Dom Mar 26, 2017 12:49 am
Dom Mar 26, 2017 12:46 am
Dom Mar 26, 2017 12:45 am
Dom Mar 26, 2017 12:34 am
Dom Mar 26, 2017 12:30 am
Dom Mar 26, 2017 12:20 am
Dom Mar 26, 2017 12:15 am
Dom Mar 26, 2017 12:05 am
Sab Mar 25, 2017 11:59 pm
Sab Mar 25, 2017 11:58 pm
Sab Mar 25, 2017 8:59 pm
Sab Mar 25, 2017 6:50 pm
Sab Mar 25, 2017 3:37 pm
Sab Mar 25, 2017 1:51 am
Sab Mar 25, 2017 1:31 am
Sex Mar 24, 2017 8:54 pm
Sex Mar 24, 2017 8:05 pm
Sex Mar 24, 2017 7:43 pm
Sex Mar 24, 2017 7:18 pm
Sex Mar 24, 2017 6:52 pm
Sex Mar 24, 2017 6:48 pm
Sex Mar 24, 2017 3:46 pm
Sex Mar 24, 2017 1:50 pm
Sex Mar 24, 2017 12:29 pm
Qui Mar 23, 2017 6:55 pm
Qui Mar 23, 2017 4:50 pm
Qui Mar 23, 2017 4:38 pm
Qui Mar 23, 2017 4:33 pm
Qui Mar 23, 2017 12:46 pm
Qui Mar 23, 2017 8:56 am
Qua Mar 22, 2017 7:47 pm
Qua Mar 22, 2017 7:35 pm
Qua Mar 22, 2017 7:30 pm
Qua Mar 22, 2017 3:28 pm
Ter Mar 21, 2017 11:50 pm
Ter Mar 21, 2017 10:14 pm
Ter Mar 21, 2017 7:22 pm
Ter Mar 21, 2017 6:08 pm
Ter Mar 21, 2017 5:00 pm
Ter Mar 21, 2017 3:22 pm
Ter Mar 21, 2017 3:08 pm
Ter Mar 21, 2017 2:13 pm
Ter Mar 21, 2017 10:53 am
Ter Mar 21, 2017 10:13 am
Ter Mar 21, 2017 12:26 am
Ter Mar 21, 2017 12:10 am
Ter Mar 21, 2017 12:09 am
Ter Mar 21, 2017 12:05 am
Ter Mar 21, 2017 12:02 am
Seg Mar 20, 2017 11:58 pm
Seg Mar 20, 2017 11:55 pm
Seg Mar 20, 2017 9:10 pm
Seg Mar 20, 2017 7:57 pm
Seg Mar 20, 2017 6:41 pm
Seg Mar 20, 2017 4:31 pm
Seg Mar 20, 2017 8:10 am
Dom Mar 19, 2017 11:32 pm
Dom Mar 19, 2017 8:50 pm
Dom Mar 19, 2017 8:20 pm
MikaelSteam
AndyShow
PauloFR
hackernew404
wender
wender
MikaelSteam
zZAndersonZz
Jogos mini
wender
Callyde Jr
LegendGames
lucasfera15
dstaroski
Mic4el
joabr
joabr
joabr
willtuck
hackernew404
rafaelllsd
niao
Junim
hackernew404
PauloFR
bielmol
Junim
Callyde Jr
rafaelllsd
PauloFR
Édipo
Gabriel César O
DuViDoSo34
masterjohn12
artplayer
Junim
Gabriel César O
Atiradogamer
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
wender
MarcosSchultz
MarcosSchultz
MarcosSchultz
MateusWTP
Gabriel César O
Gabriel César O
Sheyk
PauloFR
Gabriel César O
Weverton Borges da Silva
maikonluis
HeF Software
Junim
Junim
wender
bravoent
Marc7
rafaelllsd
MateusWTP
Gabriel César O
Gabriel César O
Madness
Paizudo
Gabriel César O
AnderGames
Gabriel César O
Matrirxp
rafaelllsd
Matrirxp
AndyShow
ffabim
rafaelllsd
MikaelSteam
PauloFR
bravoent
DuViDoSo34
Édipo
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
lucasfera15
Khilua
PauloFR
Paizudo
willtuck
rafaelllsd
rafaelllsd
IanLuan

[TUTORIAL] Fazer um VOLANTE com UI, para Android

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Dom Jun 26, 2016 7:11 pm

Fala pessoal, estou trazendo um script que eu achei em algum lugar aleatório por ai (se não me engano foi do próprio fórum da Unity), que serve para criar um volante com algum elemento UI (de preferência uma Image).

Basta ter este script em algum objeto qualquer:

Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using System.Collections;

public class Volante : MonoBehaviour{
 
 public Graphic UI_Element;
 RectTransform rectT;
 Vector2 centerPoint;
 public float AnguloMaximo = 200f;
 public float VelocidadeDeGiro = 200f;
 float wheelAngle = 0f;
 float wheelPrevAngle = 0f;
 bool wheelBeingHeld = false;

 public float GetClampedValue(){
 return wheelAngle / AnguloMaximo;
 }
 public float GetAngle(){
 return wheelAngle;
 }
 void Start(){
 rectT = UI_Element.rectTransform;
 InitEventsSystem();
 UpdateRect();
 }
 void Update(){
 if( !wheelBeingHeld && !Mathf.Approximately( 0f, wheelAngle ) ){
 float deltaAngle = VelocidadeDeGiro * Time.deltaTime;
 if( Mathf.Abs( deltaAngle ) > Mathf.Abs( wheelAngle ) )
 wheelAngle = 0f;
 else if( wheelAngle > 0f )
 wheelAngle -= deltaAngle;
 else
 wheelAngle += deltaAngle;
 }
 rectT.localEulerAngles = Vector3.back * wheelAngle;
 }
 void InitEventsSystem(){
 EventTrigger events = UI_Element.gameObject.GetComponent<EventTrigger>();
 if (events == null) {
 events = UI_Element.gameObject.AddComponent<EventTrigger> ();
 }
 if (events.triggers == null) {
 events.triggers = new System.Collections.Generic.List<EventTrigger.Entry> ();
 }
 EventTrigger.Entry entry = new EventTrigger.Entry();
 EventTrigger.TriggerEvent callback = new EventTrigger.TriggerEvent();
 UnityAction<BaseEventData> functionCall = new UnityAction<BaseEventData>( PressEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.PointerDown;
 entry.callback = callback;
 events.triggers.Add( entry );
 entry = new EventTrigger.Entry();
 callback = new EventTrigger.TriggerEvent();
 functionCall = new UnityAction<BaseEventData>( DragEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.Drag;
 entry.callback = callback;
 events.triggers.Add( entry );
 entry = new EventTrigger.Entry();
 callback = new EventTrigger.TriggerEvent();
 functionCall = new UnityAction<BaseEventData>( ReleaseEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.PointerUp;
 entry.callback = callback;
 events.triggers.Add( entry );
 }
 void UpdateRect(){
 Vector3[] corners = new Vector3[4];
 rectT.GetWorldCorners( corners );
 for( int i = 0; i < 4; i++ ){
 corners[i] = RectTransformUtility.WorldToScreenPoint( null, corners[i] );
 }
 Vector3 bottomLeft = corners[0];
 Vector3 topRight = corners[2];
 float width = topRight.x - bottomLeft.x;
 float height = topRight.y - bottomLeft.y;
 Rect _rect = new Rect( bottomLeft.x, topRight.y, width, height );
 centerPoint = new Vector2( _rect.x + _rect.width * 0.5f, _rect.y - _rect.height * 0.5f );
 }
 public void PressEvent( BaseEventData eventData ){
 Vector2 pointerPos = ( (PointerEventData) eventData ).position;
 wheelBeingHeld = true;
 wheelPrevAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
 }
 public void DragEvent( BaseEventData eventData ){
 Vector2 pointerPos = ( (PointerEventData) eventData ).position;
 float wheelNewAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
 if( Vector2.Distance( pointerPos, centerPoint ) > 20f ){
 if (pointerPos.x > centerPoint.x) {
 wheelAngle += wheelNewAngle - wheelPrevAngle;
 } else {
 wheelAngle -= wheelNewAngle - wheelPrevAngle;
 }
 }
 wheelAngle = Mathf.Clamp( wheelAngle, -AnguloMaximo, AnguloMaximo );
 wheelPrevAngle = wheelNewAngle;
 }
 public void ReleaseEvent( BaseEventData eventData ){
 DragEvent( eventData );
 wheelBeingHeld = false;
 }
}

E jogar a Image UI ou o que for na variável "UI_Element".

O script ainda traz void's como:

"GetAngle" ou "GetClampedValue", para você conseguir pegar o angulo que está sendo imposto nas rodas Very Happy
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por karllus250 em Seg Jun 27, 2016 11:10 am

Entao marcos a imagem giro direitinho mas a roda do veiculo nao o que fazer

karllus250
Avançado
Avançado

Masculino PONTOS : 465
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por karllus250 em Seg Jun 27, 2016 11:20 am

eu nao entedir foi a explicaçao

karllus250
Avançado
Avançado

Masculino PONTOS : 465
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Seg Jun 27, 2016 1:57 pm

karllus250 escreveu:eu nao entedir foi a explicaçao
Basta utilizar as void's de GET que o script já traz ué

você sabe utilizar GetComponent? acessar outros scripts?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por karllus250 em Seg Jun 27, 2016 7:55 pm

NAO

karllus250
Avançado
Avançado

Masculino PONTOS : 465
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Ter Jun 28, 2016 7:42 pm

karllus250 escreveu:NAO
Nem tentou??? Bom, dei uma ajeitada e tirei os Component já que você não sabe usar:

Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using System.Collections;

public class Volante : MonoBehaviour{

   public Graphic UI_Element;
   RectTransform rectT;
   Vector2 centerPoint;
   float wheelAngle = 0f;
   float wheelPrevAngle = 0f;
   bool wheelBeingHeld = false;
   public WheelCollider RodaFrenteDir, RodaFrenteEsq;

   void Start(){
      rectT = UI_Element.rectTransform;
      InitEventsSystem();
      UpdateRect();
   }
   void FixedUpdate(){
      RodaFrenteDir.steerAngle = Mathf.Clamp ((wheelAngle / 5.0f), -40.0f, 40.0f);
      RodaFrenteEsq.steerAngle = Mathf.Clamp ((wheelAngle / 5.0f), -40.0f, 40.0f);
   }
   void Update(){
      Debug.Log (wheelAngle);
      if( !wheelBeingHeld && !Mathf.Approximately( 0f, wheelAngle ) ){
         float deltaAngle = 200.0f * Time.deltaTime;
         if( Mathf.Abs( deltaAngle ) > Mathf.Abs( wheelAngle ) )
            wheelAngle = 0f;
         else if( wheelAngle > 0f )
            wheelAngle -= deltaAngle;
         else
            wheelAngle += deltaAngle;
      }
      rectT.localEulerAngles = Vector3.back * wheelAngle;
   }
   void InitEventsSystem(){
      EventTrigger events = UI_Element.gameObject.GetComponent<EventTrigger>();
      if (events == null) {
         events = UI_Element.gameObject.AddComponent<EventTrigger> ();
      }
      if (events.triggers == null) {
         events.triggers = new System.Collections.Generic.List<EventTrigger.Entry> ();
      }
      EventTrigger.Entry entry = new EventTrigger.Entry();
      EventTrigger.TriggerEvent callback = new EventTrigger.TriggerEvent();
      UnityAction<BaseEventData> functionCall = new UnityAction<BaseEventData>( PressEvent );
      callback.AddListener( functionCall );
      entry.eventID = EventTriggerType.PointerDown;
      entry.callback = callback;
      events.triggers.Add( entry );
      entry = new EventTrigger.Entry();
      callback = new EventTrigger.TriggerEvent();
      functionCall = new UnityAction<BaseEventData>( DragEvent );
      callback.AddListener( functionCall );
      entry.eventID = EventTriggerType.Drag;
      entry.callback = callback;
      events.triggers.Add( entry );
      entry = new EventTrigger.Entry();
      callback = new EventTrigger.TriggerEvent();
      functionCall = new UnityAction<BaseEventData>( ReleaseEvent );
      callback.AddListener( functionCall );
      entry.eventID = EventTriggerType.PointerUp;
      entry.callback = callback;
      events.triggers.Add( entry );
   }
   void UpdateRect(){
      Vector3[] corners = new Vector3[4];
      rectT.GetWorldCorners( corners );
      for( int i = 0; i < 4; i++ ){
         corners[i] = RectTransformUtility.WorldToScreenPoint( null, corners[i] );
      }
      Vector3 bottomLeft = corners[0];
      Vector3 topRight = corners[2];
      float width = topRight.x - bottomLeft.x;
      float height = topRight.y - bottomLeft.y;
      Rect _rect = new Rect( bottomLeft.x, topRight.y, width, height );
      centerPoint = new Vector2( _rect.x + _rect.width * 0.5f, _rect.y - _rect.height * 0.5f );
   }
   public void PressEvent( BaseEventData eventData ){
      Vector2 pointerPos = ( (PointerEventData) eventData ).position;
      wheelBeingHeld = true;
      wheelPrevAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
   }
   public void DragEvent( BaseEventData eventData ){
      Vector2 pointerPos = ( (PointerEventData) eventData ).position;
      float wheelNewAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
      if( Vector2.Distance( pointerPos, centerPoint ) > 20f ){
         if (pointerPos.x > centerPoint.x) {
            wheelAngle += wheelNewAngle - wheelPrevAngle;
         } else {
            wheelAngle -= wheelNewAngle - wheelPrevAngle;
         }
      }
      wheelAngle = Mathf.Clamp( wheelAngle, -200, 200 );
      wheelPrevAngle = wheelNewAngle;
   }
   public void ReleaseEvent( BaseEventData eventData ){
      DragEvent( eventData );
      wheelBeingHeld = false;
   }
}
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por lolhard em Qua Jun 29, 2016 12:25 pm

Marcos eu usei este ultimo script e a imagem gira mas as rodas n eu linquei tudo certo
avatar
lolhard
Avançado
Avançado

PONTOS : 506
REPUTAÇÃO : 7
Áreas de atuação : Blender
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Qua Jun 29, 2016 2:03 pm

linkou as mesh ou as wheel?

Para as mesh girarem, você vai precisar fazer aquilo que eu fiz no meu tutorial de veículos...

Isto é para as wheels girarem e não para as mesh
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por lolhard em Qua Jun 29, 2016 3:07 pm

linkei as whell
avatar
lolhard
Avançado
Avançado

PONTOS : 506
REPUTAÇÃO : 7
Áreas de atuação : Blender
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por lolhard em Qua Jun 29, 2016 4:04 pm

Eu preciso alterar algo no script ou fazer mais algo ?
avatar
lolhard
Avançado
Avançado

PONTOS : 506
REPUTAÇÃO : 7
Áreas de atuação : Blender
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por karllus250 em Qui Jun 30, 2016 12:12 am

nao gira marcos linkei as whell tambem e nao gira

karllus250
Avançado
Avançado

Masculino PONTOS : 465
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Qui Jun 30, 2016 12:48 am

nuss, quanto flood, cuidado com as regras.

O que deve estar acontecendo é que você ainda está tentando passar o angulo das wheels por algum outro script, então eles ficam se sobre escrevendo...

Um script está passando o angulo da UI, e outro do InputHorizontal... você tem que ajeitar isto.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por lolhard em Qui Jun 30, 2016 12:34 pm

Obrigado e desculpa
avatar
lolhard
Avançado
Avançado

PONTOS : 506
REPUTAÇÃO : 7
Áreas de atuação : Blender
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por Alerson Software em Seg Ago 01, 2016 10:35 pm

ola marcos eu usei seu script de veiculo e coloquei o script de volante no meu carro e linkei as duas wheel colliders 1 e a 2 e o peneu n girou oque fazer?

Alerson Software
Membro
Membro

PONTOS : 295
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Ter Ago 02, 2016 4:16 pm

Você está cometendo o mesmo erro do lolhard... Um script está passando o InputHorizontal e o outro script está passando o Input da UI. Você tem que remover a parte do steerAngle do script do "Veículo Simples"
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por Alerson Software em Qua Ago 03, 2016 12:58 pm

MarcosSchultz escreveu:Você está cometendo o mesmo erro do lolhard... Um script está passando o InputHorizontal e o outro script está passando o Input da UI. Você tem que remover a parte do steerAngle do script do "Veículo Simples"
obrigado funcionou bem legal

Alerson Software
Membro
Membro

PONTOS : 295
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por RenanKrause em Sab Out 08, 2016 2:38 pm

como fasso para colocar um acelerador e o freio
avatar
RenanKrause
Membro
Membro

PONTOS : 217
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Dom Out 09, 2016 3:31 pm

RenanKrause escreveu:como fasso para colocar um acelerador e o freio

Crie um tópico específico para esta dúvida... este é sobre o tutorial de volante.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por nicolasfive em Sex Fev 03, 2017 7:07 pm

fiz tudo certinho o carro vira e tudo mas a roda fica parada porque ?

nicolasfive
Iniciante
Iniciante

PONTOS : 205
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Dom Fev 05, 2017 11:40 pm

nicolasfive escreveu:fiz tudo certinho o carro vira e tudo mas a roda fica parada porque ?

Está linkando todos os objetos corretamente nas variaveis?

está linkando as mesh das rodas nas variáveis corretas?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por FPR Software em Qui Mar 16, 2017 11:58 am

MarcosSchultz escreveu:Fala pessoal, estou trazendo um script que eu achei em algum lugar aleatório por ai (se não me engano foi do próprio fórum da Unity), que serve para criar um volante com algum elemento UI (de preferência uma Image).

Basta ter este script em algum objeto qualquer:

Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using System.Collections;

public class Volante : MonoBehaviour{
 
 public Graphic UI_Element;
 RectTransform rectT;
 Vector2 centerPoint;
 public float AnguloMaximo = 200f;
 public float VelocidadeDeGiro = 200f;
 float wheelAngle = 0f;
 float wheelPrevAngle = 0f;
 bool wheelBeingHeld = false;

 public float GetClampedValue(){
 return wheelAngle / AnguloMaximo;
 }
 public float GetAngle(){
 return wheelAngle;
 }
 void Start(){
 rectT = UI_Element.rectTransform;
 InitEventsSystem();
 UpdateRect();
 }
 void Update(){
 if( !wheelBeingHeld && !Mathf.Approximately( 0f, wheelAngle ) ){
 float deltaAngle = VelocidadeDeGiro * Time.deltaTime;
 if( Mathf.Abs( deltaAngle ) > Mathf.Abs( wheelAngle ) )
 wheelAngle = 0f;
 else if( wheelAngle > 0f )
 wheelAngle -= deltaAngle;
 else
 wheelAngle += deltaAngle;
 }
 rectT.localEulerAngles = Vector3.back * wheelAngle;
 }
 void InitEventsSystem(){
 EventTrigger events = UI_Element.gameObject.GetComponent<EventTrigger>();
 if (events == null) {
 events = UI_Element.gameObject.AddComponent<EventTrigger> ();
 }
 if (events.triggers == null) {
 events.triggers = new System.Collections.Generic.List<EventTrigger.Entry> ();
 }
 EventTrigger.Entry entry = new EventTrigger.Entry();
 EventTrigger.TriggerEvent callback = new EventTrigger.TriggerEvent();
 UnityAction<BaseEventData> functionCall = new UnityAction<BaseEventData>( PressEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.PointerDown;
 entry.callback = callback;
 events.triggers.Add( entry );
 entry = new EventTrigger.Entry();
 callback = new EventTrigger.TriggerEvent();
 functionCall = new UnityAction<BaseEventData>( DragEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.Drag;
 entry.callback = callback;
 events.triggers.Add( entry );
 entry = new EventTrigger.Entry();
 callback = new EventTrigger.TriggerEvent();
 functionCall = new UnityAction<BaseEventData>( ReleaseEvent );
 callback.AddListener( functionCall );
 entry.eventID = EventTriggerType.PointerUp;
 entry.callback = callback;
 events.triggers.Add( entry );
 }
 void UpdateRect(){
 Vector3[] corners = new Vector3[4];
 rectT.GetWorldCorners( corners );
 for( int i = 0; i < 4; i++ ){
 corners[i] = RectTransformUtility.WorldToScreenPoint( null, corners[i] );
 }
 Vector3 bottomLeft = corners[0];
 Vector3 topRight = corners[2];
 float width = topRight.x - bottomLeft.x;
 float height = topRight.y - bottomLeft.y;
 Rect _rect = new Rect( bottomLeft.x, topRight.y, width, height );
 centerPoint = new Vector2( _rect.x + _rect.width * 0.5f, _rect.y - _rect.height * 0.5f );
 }
 public void PressEvent( BaseEventData eventData ){
 Vector2 pointerPos = ( (PointerEventData) eventData ).position;
 wheelBeingHeld = true;
 wheelPrevAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
 }
 public void DragEvent( BaseEventData eventData ){
 Vector2 pointerPos = ( (PointerEventData) eventData ).position;
 float wheelNewAngle = Vector2.Angle( Vector2.up, pointerPos - centerPoint );
 if( Vector2.Distance( pointerPos, centerPoint ) > 20f ){
 if (pointerPos.x > centerPoint.x) {
 wheelAngle += wheelNewAngle - wheelPrevAngle;
 } else {
 wheelAngle -= wheelNewAngle - wheelPrevAngle;
 }
 }
 wheelAngle = Mathf.Clamp( wheelAngle, -AnguloMaximo, AnguloMaximo );
 wheelPrevAngle = wheelNewAngle;
 }
 public void ReleaseEvent( BaseEventData eventData ){
 DragEvent( eventData );
 wheelBeingHeld = false;
 }
}

E jogar a Image UI ou o que for na variável "UI_Element".

O script ainda traz void's como:

"GetAngle" ou "GetClampedValue", para você conseguir pegar o angulo que está sendo imposto nas rodas Very Happy

Como eu faço pra meu volante girar junto com base nesse script??

FPR Software
Iniciante
Iniciante

PONTOS : 32
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Qui Mar 16, 2017 9:06 pm

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

public class Volante : MonoBehaviour {

   [Range(0.4f,4.0f)]public float velGiroVolante = 2.0f;
   float rotacInicVolanteZ, angulo2Volante;

   void Start () {
      rotacInicVolanteZ = transform.localEulerAngles.z;
   }

   void Update () {
      float direcaoFixVolante = Input.GetAxis ("Horizontal");
      angulo2Volante = Mathf.MoveTowards(angulo2Volante, direcaoFixVolante, velGiroVolante*Time.deltaTime);
      transform.localEulerAngles = new Vector3 (transform.localEulerAngles.x, transform.localEulerAngles.y, rotacInicVolanteZ + (angulo2Volante * 540.0f));//540 = 1.5 voltas
   }
}


Este é um script de volante simples... basta trocar os inputs Horizontal pelo input do touch
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por FPR Software em Sex Mar 17, 2017 1:44 pm

Mas como eu faço isso?

FPR Software
Iniciante
Iniciante

PONTOS : 32
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por FernandoPRB em Sex Mar 17, 2017 9:01 pm

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

public class Volante : MonoBehaviour {

 [Range(0.4f,4.0f)]public float velGiroVolante = 2.0f;
 float rotacInicVolanteZ, angulo2Volante;

 void Start () {
 rotacInicVolanteZ = transform.localEulerAngles.z;
 }

 void Update () {
 float direcaoFixVolante = Input.GetAxis ("Horizontal");
 angulo2Volante = Mathf.MoveTowards(angulo2Volante, direcaoFixVolante, velGiroVolante*Time.deltaTime);
 transform.localEulerAngles = new Vector3 (transform.localEulerAngles.x, transform.localEulerAngles.y, rotacInicVolanteZ + (angulo2Volante * 540.0f));//540 = 1.5 voltas
 }
}


Este é um script de volante simples... basta trocar os inputs Horizontal pelo input do touch
o volante gira mais não volta

FernandoPRB
Membro
Membro

Masculino PONTOS : 258
REPUTAÇÃO : 1
Idade : 14
Áreas de atuação : Modelagem
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Fazer um VOLANTE com UI, para Android

Mensagem por MarcosSchultz em Ter Mar 21, 2017 12:26 am

Tente este:

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

public class Volante : MonoBehaviour {

   public enum Tipos {GirarEmX, GirarEmY, GirarEmZ};
   public GameObject objVolante;
   public Tipos Rotacao = Tipos.GirarEmZ;

   [Range(0.4f,4.0f)]public float velGiroVolante = 2.0f;
   public bool inverterGiro = false;

   float rotacInicVolantAxis, angulo2Volante;

   void Start () {
      if (objVolante) {
         switch (Rotacao) {
         case Tipos.GirarEmX:
            rotacInicVolantAxis = objVolante.transform.localEulerAngles.x;
            break;
         case Tipos.GirarEmY:
            rotacInicVolantAxis = objVolante.transform.localEulerAngles.y;
            break;
         case Tipos.GirarEmZ:
            rotacInicVolantAxis = objVolante.transform.localEulerAngles.z;
            break;
         }
      }
   }

   void Update () {
      if (objVolante) {
         float velMultplic = 1;
         if (inverterGiro) {
            velMultplic = -1;
         }
         float direcaoFixVolante = Input.GetAxis ("Horizontal") * velMultplic;
         angulo2Volante = Mathf.MoveTowards (angulo2Volante, direcaoFixVolante, velGiroVolante * Time.deltaTime);

         switch (Rotacao) {
         case Tipos.GirarEmX:
            objVolante.transform.localEulerAngles = new Vector3 (rotacInicVolantAxis + (angulo2Volante * 540.0f), objVolante.transform.localEulerAngles.y, objVolante.transform.localEulerAngles.z);//540 = 1.5 voltas
            break;
         case Tipos.GirarEmY:
            objVolante.transform.localEulerAngles = new Vector3 (objVolante.transform.localEulerAngles.x, rotacInicVolantAxis + (angulo2Volante * 540.0f), objVolante.transform.localEulerAngles.z);
            break;
         case Tipos.GirarEmZ:
            objVolante.transform.localEulerAngles = new Vector3 (objVolante.transform.localEulerAngles.x, objVolante.transform.localEulerAngles.y, rotacInicVolantAxis + (angulo2Volante * 540.0f));
            break;
         }
      }
   }
}

Este vai no veículo mesmo... Tenha certeza também de verificar se a referância está como Local e não em Global, no editor.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 8130
REPUTAÇÃO : 1145
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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