alguem pode me ajudar com esse script
4 participantes
Página 1 de 1
alguem pode me ajudar com esse script
eu queria colocar para mover a camera tbm so move o personagem para frente e para traz , se tiver como colocar para ter movimentaçao livre
esse e o script
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();
}
}
}
}
esse e o script
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();
}
}
}
}
Re: alguem pode me ajudar com esse script
então você tem que criar um script para a câmera e usar o CrossPlatformInputManager para pega a direção do joystick
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: alguem pode me ajudar com esse script
eu nao entendi direito, vc poderia me mostrar com um printweslleyFx escreveu:então você tem que criar um script para a câmera e usar o CrossPlatformInputManager para pega a direção do joystick
aqui ta o print do meu controle
thiagograssi- MembroAvançado
- PONTOS : 3373
REPUTAÇÃO : 43
Idade : 20
Áreas de atuação : Photoshop;
SketchUp;
C#(Learning);
Respeito as regras :
Re: alguem pode me ajudar com esse script
É mais ou menos isto::::::
Vou deixar um exemplo.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
void FixedUpdate ()
{
float moveHorizontal = CrossPlatformInputManager.GetAxis ("Horizontal");
float moveVertical = CrossPlatformInputManager.GetAxis ("Vertical");
}
Vou deixar um exemplo.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
void FixedUpdate ()
{
float moveHorizontal = CrossPlatformInputManager.GetAxis ("Horizontal");
float moveVertical = CrossPlatformInputManager.GetAxis ("Vertical");
}
Abilio M.S- Membro
- PONTOS : 3485
REPUTAÇÃO : 19
Áreas de atuação : As minhas áreas de atuação é especialmente em musica.
Toco guitarra desde os 12 anos,e com várias ba
Respeito as regras :
Re: alguem pode me ajudar com esse script
Ou melhor um Exemplo mais definido,que mostro aqui.
No Script do Jogador é tipo isto que vou deixar apenas um exemplo: sobe desce,direita esquerda.
Imputar ou melhor using UnityStandardAssets.CrossPlatformInput;
depois é pagar no prefabe e adicionar...Está pronto.
Aqui mostra melhor como eu fiz agora o exemplo.
No Script do Jogador é tipo isto que vou deixar apenas um exemplo: sobe desce,direita esquerda.
Imputar ou melhor using UnityStandardAssets.CrossPlatformInput;
depois é pagar no prefabe e adicionar...Está pronto.
Aqui mostra melhor como eu fiz agora o exemplo.
- Código:
using UnityStandardAssets.CrossPlatformInput;
//Chamar a UnityStandardAssets.CrossPlatformInput
void FixedUpdate ()
{
//Fiz void FixedUpdate é o mais comum::
float moveHorizontal = CrossPlatformInputManager.GetAxis ("Horizontal");
float moveVertical = CrossPlatformInputManager.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
GetComponent<Rigidbody>().velocity = movement * speed;
GetComponent<Rigidbody>().position = new Vector3
(
Mathf.Clamp (GetComponent<Rigidbody>().position.x, xMin,xMax),
0.0f,
Mathf.Clamp (GetComponent<Rigidbody>().position.z, zMin,zMax)
);
GetComponent<Rigidbody>().rotation = Quaternion.Euler (0.0f, 0.0f, GetComponent<Rigidbody>().velocity.x * -tilt);
}
Abilio M.S- Membro
- PONTOS : 3485
REPUTAÇÃO : 19
Áreas de atuação : As minhas áreas de atuação é especialmente em musica.
Toco guitarra desde os 12 anos,e com várias ba
Respeito as regras :
Tópicos semelhantes
» ALGUEM PODE ME AJUDAR COM ESSE SCRIPT DE LANTERNA
» Meu script de movimentação não funciona, alguém pode me ajudar?
» [RESOLVIDO] ALGUEM PODE ME AJUDAR COM ESSE PROBLEMA DO SDK
» Estou com esse problema,sou novo no unity,alguem pode ajudar?
» Alguém pode me ajudar com o Script de som dos passos?
» Meu script de movimentação não funciona, alguém pode me ajudar?
» [RESOLVIDO] ALGUEM PODE ME AJUDAR COM ESSE PROBLEMA DO SDK
» Estou com esse problema,sou novo no unity,alguem pode ajudar?
» Alguém pode me ajudar com o Script de som dos passos?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos