Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
4 participantes
Página 1 de 1
Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
tentei varias vezes e procurei em todo lugar e nao achei alguem poderia me ajuda?
o unity ja vem com um Joystick para android mas eu quero quando mover ele pra frente fazer uma animaçao (animaçao de andar)
mas nao consigo
tentei mexer no script e nao consegui
o unity ja vem com um Joystick para android mas eu quero quando mover ele pra frente fazer uma animaçao (animaçao de andar)
mas nao consigo
tentei mexer no script e nao consegui
LegendGames- Membro
- PONTOS : 3246
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : programação
Respeito as regras :
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
Você esta usando o Animator Controller ou Animation ?
kalielson- ProgramadorMaster
- PONTOS : 3576
REPUTAÇÃO : 120
Idade : 40
Áreas de atuação : Mestrando em Computação
Respeito as regras :
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
Animator Controller
LegendGames- Membro
- PONTOS : 3246
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : programação
Respeito as regras :
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
bom você deve ter algum valor que faz o o personagem se mover passe ele para condição de andar do Animator
Weslley- Moderador
- PONTOS : 5730
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
Poste todos os scripts envolvidos no movimento ai, tando do Joystick quanto o que faz movimentar, ai podemos descobrir como o Input está configurado e podemos lhe auxiliar.
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
- Código:
using System;
using UnityEngine;
using UnityEngine.EventSystems;
namespace UnityStandardAssets.CrossPlatformInput
{
public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler
{
public enum AxisOption
{
// Options for which axes to use
Both, // Use both
OnlyHorizontal, // Only horizontal
OnlyVertical // Only vertical
}
public int MovementRange = 100;
public AxisOption axesToUse = AxisOption.Both; // The options for the axes that the still will use
public string horizontalAxisName = "Horizontal"; // The name given to the horizontal axis for the cross platform input
public string verticalAxisName = "Vertical"; // The name given to the vertical axis for the cross platform input
Vector3 m_StartPos;
bool m_UseX; // Toggle for using the x axis
bool m_UseY; // Toggle for using the Y axis
CrossPlatformInputManager.VirtualAxis m_HorizontalVirtualAxis; // Reference to the joystick in the cross platform input
CrossPlatformInputManager.VirtualAxis m_VerticalVirtualAxis; // Reference to the joystick in the cross platform input
void OnEnable()
{
CreateVirtualAxes();
}
void Start()
{
m_StartPos = transform.position;
}
void UpdateVirtualAxes(Vector3 value)
{
var delta = m_StartPos - value;
delta.y = -delta.y;
delta /= MovementRange;
if (m_UseX)
{
m_HorizontalVirtualAxis.Update(-delta.x);
}
if (m_UseY)
{
m_VerticalVirtualAxis.Update(delta.y);
}
}
void CreateVirtualAxes()
{
// set axes to use
m_UseX = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyHorizontal);
m_UseY = (axesToUse == AxisOption.Both || axesToUse == AxisOption.OnlyVertical);
// create new axes based on axes to use
if (m_UseX)
{
m_HorizontalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(horizontalAxisName);
CrossPlatformInputManager.RegisterVirtualAxis(m_HorizontalVirtualAxis);
}
if (m_UseY)
{
m_VerticalVirtualAxis = new CrossPlatformInputManager.VirtualAxis(verticalAxisName);
CrossPlatformInputManager.RegisterVirtualAxis(m_VerticalVirtualAxis);
}
}
public void OnDrag(PointerEventData data)
{
Vector3 newPos = Vector3.zero;
if (m_UseX)
{
int delta = (int)(data.position.x - m_StartPos.x);
delta = Mathf.Clamp(delta, - MovementRange, MovementRange);
newPos.x = delta;
}
if (m_UseY)
{
int delta = (int)(data.position.y - m_StartPos.y);
delta = Mathf.Clamp(delta, -MovementRange, MovementRange);
newPos.y = delta;
}
transform.position = new Vector3(m_StartPos.x + newPos.x, m_StartPos.y + newPos.y, m_StartPos.z + newPos.z);
UpdateVirtualAxes(transform.position);
}
public void OnPointerUp(PointerEventData data)
{
transform.position = m_StartPos;
UpdateVirtualAxes(m_StartPos);
}
public void OnPointerDown(PointerEventData data) { }
void OnDisable()
{
// remove the joysticks from the cross platform input
if (m_UseX)
{
m_HorizontalVirtualAxis.Remove();
}
if (m_UseY)
{
m_VerticalVirtualAxis.Remove();
}
}
}
}
este agora vai no CANVAS
- Código:
using System;
#if UNITY_EDITOR
using UnityEditor;
#endif
using UnityEngine;
namespace UnityStandardAssets.CrossPlatformInput
{
[ExecuteInEditMode]
public class MobileControlRig : MonoBehaviour
{
// this script enables or disables the child objects of a control rig
// depending on whether the USE_MOBILE_INPUT define is declared.
// This define is set or unset by a menu item that is included with
// the Cross Platform Input package.
#if !UNITY_EDITOR
void OnEnable()
{
CheckEnableControlRig();
}
#endif
private void Start()
{
#if UNITY_EDITOR
if (Application.isPlaying) //if in the editor, need to check if we are playing, as start is also called just after exiting play
#endif
{
UnityEngine.EventSystems.EventSystem system = GameObject.FindObjectOfType<UnityEngine.EventSystems.EventSystem>();
if (system == null)
{//the scene have no event system, spawn one
GameObject o = new GameObject("EventSystem");
o.AddComponent<UnityEngine.EventSystems.EventSystem>();
o.AddComponent<UnityEngine.EventSystems.StandaloneInputModule>();
}
}
}
#if UNITY_EDITOR
private void OnEnable()
{
EditorUserBuildSettings.activeBuildTargetChanged += Update;
EditorApplication.update += Update;
}
private void OnDisable()
{
EditorUserBuildSettings.activeBuildTargetChanged -= Update;
EditorApplication.update -= Update;
}
private void Update()
{
CheckEnableControlRig();
}
#endif
private void CheckEnableControlRig()
{
#if MOBILE_INPUT
EnableControlRig(true);
#else
EnableControlRig(false);
#endif
}
private void EnableControlRig(bool enabled)
{
foreach (Transform t in transform)
{
t.gameObject.SetActive(enabled);
}
}
}
}
LegendGames- Membro
- PONTOS : 3246
REPUTAÇÃO : 6
Idade : 24
Áreas de atuação : programação
Respeito as regras :
Re: Como Dar Play Em Uma Animaçao No Joystick mobile do Unity
Ta, estes scripts estão herdando umas 50 classes, parece que eles combinam um monte de recursos uns com os outros.
Tem como me informar qual controlador você está usando? exemplo:
Standard Assets > CrossPlatformInput > Prefabs > Qual destes?
Tem como me informar qual controlador você está usando? exemplo:
Standard Assets > CrossPlatformInput > Prefabs > Qual destes?
Tópicos semelhantes
» como fazer joystick's Mobile para shooter topDown ?
» [Duvida] Como dar play e pausar uma animacao??
» Como atrasar uma animação Unity 2D
» Joystick mobile
» Como usar uma animação de uma arma animada na Unity...
» [Duvida] Como dar play e pausar uma animacao??
» Como atrasar uma animação Unity 2D
» Joystick mobile
» Como usar uma animação de uma arma animada na Unity...
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos