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:
Duvida sobre script
Partindo Para Faculdade!
Erro
Erro com Audio Source ???
Ai Enemy Inimigo Parando do nada
Instanciar
Dúvida sobre Estado inicial
Duvida sobre iluminação
Jogo de Pesca (Física da Linha)
Water
Duplo personagem
chamare indice de uma List<> em outro script
[RESOLVIDO] ERRO SUN SHAFTS (script nao aparece)
Animações do Player. Como faço????
MAGIA SEGUIR ALVO COM TAG APOS SER INSTANCIADA
Props Animations Asset
Formação de equipe para talvez um jogo Unturned+Battlegrounds - Unity c#
[DÚVIDA] FAZER JOGO ESTILO O ARROW.IO
Opções no menu?
Alguem poderia me ajudar a diminuir esse script?
Como fazer para o personagem ao sairdas delimitações da tela apareca no lado oposto?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
Ajuda com script pra box collider
Sistema de combate estilo Runescape
[Gerenciador de fase aleatório]
Criar Rastro no personagem 2D estilo castlevania symphony of the night.
Qual unity usar?
[____AJUDE A TORNAR ESTE ASSET DE ANDROID GRATUITO!____]
Mensagem aparecer somente uma Vez!
Unity Remote na Unity 2017!
Como fazer duas cameras aparecerem?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
como fazer uma fisica desse jeito?
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
[TUTORIAL] RECOIL OU ANIMAÇÃO DE TIRO
Boas ideias, histórias... nem tanto: quem quer um roteirista?
IEnumerator Unity 2017
Instanciar Objeto Dentro De Outro
Help me, Notas no jogo
Dúvida no blender
Dicas para criação de cenario de um jogo hack and slash estilo god of war
MidNight Cemetery - Adventure First Person
Analog Clocks
[TUTORIAL] Programação básica com C# na Unity 5: Métodos (Funções)
Curso Grátis de Desenvolvimento de Games para Android - Básico
Fighters for honor(Jogo da segunda guerra mundial)
Problemas com o esqueleto do Blender na Unity
[RESOLVIDO]Animação não funciona
[TUTORIAL] Gerar números aleatórios SEM REPETIR
bracos para jogo em primeira pessoa para usar como quiser
Urgente presciso de ajuda para recuperar um arquivo
[TUTORIAL] Card Game Super Simples Mythomania
Como saber em qual objeto um objeto esta filiado?
Formação De Equipe Pra Criar RPG
Meu Jogo em desenvolvimento
Sistema de Corrida!
[ENQUETE] Game para Mobile
Os Eixos nao aparecem na hora de animar
Duvida sobre mundo aberto na unity
Duvida Kit FPS
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
[____REGRAS DO FÓRUM____]
{PROJETO} ✞ ΔŁØŇ€ ĦØŘŘØŘ ǤΔΜ€ ✞
Dúvida - como detectar uma colisão entre 2 OUTROS objetos
Sombras no unity?
Comando This Em Scripts
Wheel Collider e Box Collider no Carro
Efeito Distorção de imagem?
Como trabalhar com várias imagens para ter Realidade Aumentada com Vuforia
Jogos que você ja fez, e teve retorno
Como faço para mudar de cena ao finalizar o video?
Dicas sobre criação de ruas??
(DUVIDA)PlayerPrefs
PROJETO DE BUS
A.S TRUCK
FAB in WWII (Novo jogo na Play Storee é Free :D)
Monodevelop não reconhece scripts importantes! como resolvo?
Error com TimeScale
Erro na hora de compilar
Como instanciar objetos aleatórios em um ponto já definido ???
Configuração do Brilho
[Duvida] NÃO CONSIGO ATIVAR DE NOVO O BOXCOLLIDER
animaçao UNITY
Como usar GetComponent com string como parâmetro
Ajuda com "Time"
Ativar um collider novamente com Raycast !
como posso fazer o objeto seguir dessa maneira...
[Duvida] Pulando com o mouse ?
Script Relógio
problema com o script de Porta para a troca de cenas, FadeIn..
Sistema de Gps!
Preciso de ajuda
[TUTORIAL] Abrindo Image Do Pc Ou de Um Endereço Web Para uma Image UI (File Dialog)
Problema com SetActive
Duvida com Transform.position
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
ESSE EO MEU JOGO A FLORESTA QUE EU ESTOU DESENVOLVENDO
Scripts não são reconhecidos no Visual Studio
Hoje à(s) 9:33 am
Hoje à(s) 9:27 am
Hoje à(s) 8:01 am
Hoje à(s) 7:58 am
Ontem à(s) 11:28 pm
Ontem à(s) 8:47 pm
Ontem à(s) 7:29 pm
Ontem à(s) 7:00 pm
Ontem à(s) 5:06 pm
Ontem à(s) 5:06 pm
Ontem à(s) 2:05 pm
Ontem à(s) 1:58 pm
Ontem à(s) 1:47 pm
Ontem à(s) 11:52 am
Ontem à(s) 6:21 am
Ontem à(s) 6:10 am
Seg Ago 14, 2017 11:28 pm
Seg Ago 14, 2017 11:04 pm
Seg Ago 14, 2017 10:06 pm
Seg Ago 14, 2017 7:19 pm
Seg Ago 14, 2017 6:18 pm
Seg Ago 14, 2017 6:09 pm
Seg Ago 14, 2017 5:55 pm
Seg Ago 14, 2017 5:55 pm
Seg Ago 14, 2017 5:52 pm
Seg Ago 14, 2017 5:37 pm
Seg Ago 14, 2017 5:31 pm
Seg Ago 14, 2017 5:27 pm
Seg Ago 14, 2017 5:26 pm
Seg Ago 14, 2017 5:23 pm
Seg Ago 14, 2017 5:21 pm
Seg Ago 14, 2017 5:17 pm
Seg Ago 14, 2017 5:13 pm
Seg Ago 14, 2017 5:12 pm
Seg Ago 14, 2017 3:36 pm
Seg Ago 14, 2017 1:38 pm
Seg Ago 14, 2017 11:06 am
Seg Ago 14, 2017 9:46 am
Seg Ago 14, 2017 3:22 am
Seg Ago 14, 2017 1:06 am
Dom Ago 13, 2017 9:14 pm
Dom Ago 13, 2017 6:15 pm
Dom Ago 13, 2017 3:03 pm
Dom Ago 13, 2017 2:32 pm
Dom Ago 13, 2017 1:16 pm
Dom Ago 13, 2017 11:59 am
Dom Ago 13, 2017 11:17 am
Dom Ago 13, 2017 10:00 am
Sab Ago 12, 2017 10:17 pm
Sab Ago 12, 2017 8:21 pm
Sab Ago 12, 2017 6:18 pm
Sex Ago 11, 2017 11:45 pm
Sex Ago 11, 2017 11:12 pm
Sex Ago 11, 2017 11:04 pm
Sex Ago 11, 2017 10:58 pm
Sex Ago 11, 2017 9:51 pm
Sex Ago 11, 2017 7:44 pm
Sex Ago 11, 2017 7:37 pm
Sex Ago 11, 2017 8:49 am
Qui Ago 10, 2017 6:02 pm
Qui Ago 10, 2017 4:23 pm
Qui Ago 10, 2017 1:32 pm
Qua Ago 09, 2017 9:09 pm
Qua Ago 09, 2017 7:05 pm
Qua Ago 09, 2017 4:15 pm
Qua Ago 09, 2017 3:04 pm
Qua Ago 09, 2017 2:49 pm
Qua Ago 09, 2017 2:28 pm
Qua Ago 09, 2017 2:18 pm
Qua Ago 09, 2017 2:05 pm
Qua Ago 09, 2017 1:51 pm
Qua Ago 09, 2017 12:23 pm
Qua Ago 09, 2017 11:27 am
Qua Ago 09, 2017 11:20 am
Ter Ago 08, 2017 9:15 pm
Ter Ago 08, 2017 6:39 pm
Ter Ago 08, 2017 5:14 pm
Ter Ago 08, 2017 5:08 pm
Ter Ago 08, 2017 5:08 pm
Ter Ago 08, 2017 5:05 pm
Ter Ago 08, 2017 4:57 pm
Ter Ago 08, 2017 4:46 pm
Ter Ago 08, 2017 4:44 pm
Ter Ago 08, 2017 4:40 pm
Ter Ago 08, 2017 4:37 pm
Ter Ago 08, 2017 4:34 pm
Ter Ago 08, 2017 4:31 pm
Ter Ago 08, 2017 4:30 pm
Ter Ago 08, 2017 4:20 pm
Ter Ago 08, 2017 3:25 pm
Seg Ago 07, 2017 7:47 pm
Seg Ago 07, 2017 7:28 pm
Seg Ago 07, 2017 7:15 pm
Seg Ago 07, 2017 6:12 pm
Seg Ago 07, 2017 4:14 pm
Seg Ago 07, 2017 3:44 pm
Seg Ago 07, 2017 2:06 pm
Seg Ago 07, 2017 11:30 am
Dom Ago 06, 2017 9:36 pm
dstaroski
zZAndersonZz
dstaroski
dstaroski
rafaelllsd
Henrique0102
ffabim
dazentt55
AndyShow
Phph09
MarcosSchultz
MarcosSchultz
glauco
Bruno
Callyde Jr
Callyde Jr
Bruno11playerG
Gabriel César O
cody0033
Unidade3d5
Pancinha20
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MrTFGamer1
Gabriel César O
Phph09
Weverton Borges da Silva
MarckosPG
Vinicius F.
Psyvamp
joabr
Maloke
PauloFR
Bruno
zZAndersonZz
artplayer
Callyde Jr
Dettne
Zecandy
Phph09
Dom3000
Jhin
MiguelLuiz
xXGianlucksXx
ffabim
Callyde Jr
Callyde Jr
Phph09
tom ramber
Zecandy
Zecandy
Maloke
SeniorDarkness
joaoazevedo65
MarcosSchultz
Zecandy
MarcosSchultz
MarcosSchultz
MarcosSchultz
AndyShow
Callyde Jr
joabr
Zecandy
GabrielbelemXD
zZAndersonZz
Édipo
MarcosSchultz
Duarte
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MRX
Phph09
Dom3000
killeir
EposGames
thzin
Dom3000
nilsonnolasco
dstaroski
LgSaraiva

[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 : 9487
REPUTAÇÃO : 1601
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 : 605
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 : 605
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 : 9487
REPUTAÇÃO : 1601
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 : 605
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 : 9487
REPUTAÇÃO : 1601
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 : 646
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 : 9487
REPUTAÇÃO : 1601
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 : 646
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 : 646
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 : 605
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 : 9487
REPUTAÇÃO : 1601
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 : 646
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 : 435
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 : 9487
REPUTAÇÃO : 1601
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 : 435
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 : 369
REPUTAÇÃO : 4
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 : 9487
REPUTAÇÃO : 1601
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
Membro
Membro

PONTOS : 410
REPUTAÇÃO : 6
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 : 9487
REPUTAÇÃO : 1601
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 : 172
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 : 9487
REPUTAÇÃO : 1601
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 : 172
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 : 401
REPUTAÇÃO : 4
Idade : 15
Á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 : 9487
REPUTAÇÃO : 1601
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 Fábiow775 em Qua Abr 05, 2017 7:24 pm

Todos os scripts que tiver steer angle e preciso retirar tipo do car controle e do veículo simples?

Fábiow775
Membro
Membro

PONTOS : 217
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 Abr 06, 2017 12:15 am

sim, do contrário você vai ter outros scripts setando steerAngle, e vai dar conflito.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9487
REPUTAÇÃO : 1601
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 Gabriel César O em Ter Abr 11, 2017 9:25 pm

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

use o asset de controle mobile da unity que você ira conseguir o que quer bounce
avatar
Gabriel César O
Programador

Masculino PONTOS : 1327
REPUTAÇÃO : 201
Idade : 15
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
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 HeF Soft em Dom Abr 16, 2017 6:08 pm

MarcosSchultz escreveu: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.

agr nem o volante nem as rodas giram

HeF Soft
Membro
Membro

PONTOS : 178
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 Qua Abr 19, 2017 2:02 am

Tem como enviar o projeto então pra eu ver? Você deve estar esquecendo algo bem tosco então, não entendo o que pode estar errado.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9487
REPUTAÇÃO : 1601
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