Volante GameObject girar junto com O grafico UI Android
3 participantes
Página 1 de 1
Volante GameObject girar junto com O grafico UI Android
Oi Galerinha bonitinha, eu queria saber se vcs poderiam me ajudar com um sistema simples, para quando eu virar um volante UI (mobile)O volante GameObject tambem girar junto com o grafico (volante UI)
esse ai e codigo do volante ,eu acho que eu tirei esse script desse site, e do Marcos, ta funcionando tudo certinho as WheelsColiders agora so falta o volante girar junto com o grafico.
Ficarei muito grato por mim ajudar.
- 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;
}
}
esse ai e codigo do volante ,eu acho que eu tirei esse script desse site, e do Marcos, ta funcionando tudo certinho as WheelsColiders agora so falta o volante girar junto com o grafico.
Ficarei muito grato por mim ajudar.
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
https://imgur.com/a/BWc0xCt
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
vcs podem me ajudar
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
nao mais e para android
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
Gabryellx007 escreveu:nao mais e para android
Basta usar a lógica para implementar o sistema de rotação desse tutorial no código que já funciona no Android ué.
Re: Volante GameObject girar junto com O grafico UI Android
mas eu sou novo em c sharp estou vendo seu curso de c sharp e nao tenho muitas manhas me explica ou me ajude ai
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
Você já fez a parte de virar um volante UI?
Depois basta aplicar a rotação do volante UI no volante do carro
Depois basta aplicar a rotação do volante UI no volante do carro
Phph09- Profissional
- PONTOS : 3791
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Volante GameObject girar junto com O grafico UI Android
Mano não estou entendendo nada, eu faço isso é no script , se for como que vou adptar o gráfico ui junto com gameobject
Gabryellx007- Membro
- PONTOS : 2496
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» VOLANTE GIRAR JUNTO COM AS RODAS
» Como fazer para girar o celular e com isto girar o volante do veículo?
» Girar arma junto com personagem para ele so atacar pela frente !
» Android volante
» Volante para Android.
» Como fazer para girar o celular e com isto girar o volante do veículo?
» Girar arma junto com personagem para ele so atacar pela frente !
» Android volante
» Volante para Android.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos