como eu faço para a camera orbitar um objeto atraves de um joystick?????
2 participantes
Página 1 de 1
como eu faço para a camera orbitar um objeto atraves de um joystick?????
Algum pode me ajudar ???
esse e o script que estou ultilizando mas eu acho que esta com alguns erros!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class CameraMovimento : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate () {
float h = CrossPlatformInputManager.GetAxis("HorizontalWS");
float v = CrossPlatformInputManager.GetAxis("VerticalWS");
transform.Translate (0, 0, -v*Time.deltaTime*10);
transform.Rotate (0, h*Time.deltaTime, 10*0);
}
}
esse e o script que estou ultilizando mas eu acho que esta com alguns erros!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class CameraMovimento : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void FixedUpdate () {
float h = CrossPlatformInputManager.GetAxis("HorizontalWS");
float v = CrossPlatformInputManager.GetAxis("VerticalWS");
transform.Translate (0, 0, -v*Time.deltaTime*10);
transform.Rotate (0, h*Time.deltaTime, 10*0);
}
}
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Boa noite! não consegui testar aqui seu código. Você quer uma câmera orbital para Android, é isso?
Abraço!
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Boa noite, muito obrigado pela atenção.
Sim pois é , eu queria criar sistema de camera órbital só que está com um erro , que já pesquisei só que não consegui resolver, mas se vc me ajudar a criar aí o sistema da câmera órbital ficarei muito grato. Ou com o joystick ou só com o touch mesmo.
Ai está o vídeo mostrando o erro...
https://youtu.be/7tGule9UWZg
Ou
Sim pois é , eu queria criar sistema de camera órbital só que está com um erro , que já pesquisei só que não consegui resolver, mas se vc me ajudar a criar aí o sistema da câmera órbital ficarei muito grato. Ou com o joystick ou só com o touch mesmo.
Ai está o vídeo mostrando o erro...
https://youtu.be/7tGule9UWZg
Ou
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Bom dia! tente usar este:Gabryellx007 escreveu:Boa noite, muito obrigado pela atenção.
Sim pois é , eu queria criar sistema de camera órbital só que está com um erro , que já pesquisei só que não consegui resolver, mas se vc me ajudar a criar aí o sistema da câmera órbital ficarei muito grato. Ou com o joystick ou só com o touch mesmo.
Ai está o vídeo mostrando o erro...
https://youtu.be/7tGule9UWZg
Ou
https://www.schultzgames.com/t2594-tutorial-camera-orbital-para-android-touch
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Foi mal por demorar a responder essa semana foi bem corrida ...
Sim eu tentei esse script mas a camera fica parada e não órbita o objeto
Sim eu tentei esse script mas a camera fica parada e não órbita o objeto
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Bom dia! você prestou bastante atenção nas explicações do Marcos de como usar o código? reveja novamente, caso não consiga, dai tem que pesquisar mesmo, não achei mais nada a respeito de Câmera orbital para Android.Gabryellx007 escreveu:Foi mal por demorar a responder essa semana foi bem corrida ...
Sim eu tentei esse script mas a camera fica parada e não órbita o objeto
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
e ... nao consegui
você consegue indentificar o erro nesse script
você consegue indentificar o erro nesse script
- Código:
using UnityEngine;
using System.Collections;
public class CameraMovimento : MonoBehaviour {
public VirtualJoystick cameraJoystick;
public Transform LookAt;
private float distance = 10.0f;
private float currentX = 0.0f;
private float currentY = 0.0f;
private float sensivityX = 0.0f;
private float sensivityY = 0.0f;
private void update()
{
currentX += cameraJoystick.inputDirection.x * sensivityX;
currentY += cameraJoystick.inputDirection.z * sensivityY;
}
private void LateUpdate()
{
Vector3 dir = new Vector3 (0, 0, -distance);
Quaternion rotation = Quaternion.Euler (currentY, currentX, 0);
transform.position = lookAt.position + rotation * dir;
transform.LookAt (LookAt);
}
}
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Bom dia! mude o nome da variável LookAt para outro, pois LookAt é um método da Unity.Gabryellx007 escreveu:e ... nao consegui
você consegue indentificar o erro nesse script
- Código:
using UnityEngine;
using System.Collections;
public class CameraMovimento : MonoBehaviour {
public VirtualJoystick cameraJoystick;
public Transform LookAt;
private float distance = 10.0f;
private float currentX = 0.0f;
private float currentY = 0.0f;
private float sensivityX = 0.0f;
private float sensivityY = 0.0f;
private void update()
{
currentX += cameraJoystick.inputDirection.x * sensivityX;
currentY += cameraJoystick.inputDirection.z * sensivityY;
}
private void LateUpdate()
{
Vector3 dir = new Vector3 (0, 0, -distance);
Quaternion rotation = Quaternion.Euler (currentY, currentX, 0);
transform.position = lookAt.position + rotation * dir;
transform.LookAt (LookAt);
}
}
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Ue qual só conheço esse!
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Substitua a antiga por essa: transform.position = LookAt.position + rotation * dir; estava lookAt ao invés do nome da variável LookAt, porém cuide com esse nome para variável, LookAt é conhecido também como um método na Unity e por isso você pode se confundir assim como o código não compilar em algum momento.Gabryellx007 escreveu:Ue qual só conheço esse!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Ok , e esse tb Fica vermelho
inputDirection
inputDirection
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
o inputDirection é uma propriedade da classe VirtualJoystick, você possui essa classe VirtualJoystick?Gabryellx007 escreveu:Ok , e esse tb Fica vermelho
inputDirection
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
I e mesmo tinha me esquecido!
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
caso conseguiu resolver, nos informe e nos conte o que fez para resolver.Gabryellx007 escreveu:I e mesmo tinha me esquecido!
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Sim, Ok vou ver deu tudo certô aqui aí eu mando ,pq agora n estou no computador
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
não consegui, achei que era inputVector
esse e o script da camera
e esse e o VirtualJoystick
talvez vcs consiga ai
esse e o script da camera
- Código:
using UnityEngine;
using System.Collections;
public class CameraMovimento : MonoBehaviour {
public VirtualJoystick cameraJoystick;
public Transform LookAt;
private float distance = 10.0f;
private float currentX = 0.0f;
private float currentY = 0.0f;
private float sensivityX = 0.0f;
private float sensivityY = 0.0f;
private void update()
{
currentX += cameraJoystick.inputDirection.x * sensivityX;
currentY += cameraJoystick.inputDirection.z * sensivityY;
}
private void LateUpdate()
{
Vector3 dir = new Vector3 (0, 0, -distance);
Quaternion rotation = Quaternion.Euler (currentY, currentX, 0);
transform.position = LookAt.position + rotation * dir;
transform.LookAt (LookAt);
}
}
e esse e o VirtualJoystick
- Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler {
private Image bgImg;
private Image joystickImg;
private Vector3 inputVector;
public GameObject player;
public float speed;
private void Start(){
bgImg = GetComponent<Image> ();
joystickImg = transform.GetChild (0).GetComponent<Image> ();
}
public virtual void OnDrag(PointerEventData ped){
Vector2 pos;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle (bgImg.rectTransform
, ped.position
, ped.pressEventCamera
, out pos))
{
pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x);
pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y);
inputVector = new Vector3(pos.x*3,0, pos.y*3);
inputVector = (inputVector.magnitude > 1.0f)?inputVector.normalized:inputVector;
// Move Joystick IMG
joystickImg.rectTransform.anchoredPosition =
new Vector3(inputVector.x * (bgImg.rectTransform.sizeDelta.x/3)
,inputVector.z * (bgImg.rectTransform.sizeDelta.y/3));
}
}
public virtual void OnPointerDown(PointerEventData ped){
OnDrag (ped);
}
public virtual void OnPointerUp(PointerEventData ped){
inputVector = Vector3.zero;
joystickImg.rectTransform.anchoredPosition = Vector3.zero;
}
void Update(){
if (joystickImg.transform.localPosition.x > 20) {
player.transform.Translate(Vector3.right * speed * Time.deltaTime);
}
if (joystickImg.transform.localPosition.x < -20) {
player.transform.Translate(Vector3.left * speed * Time.deltaTime);
}
if (joystickImg.transform.localPosition.y > 20) {
player.transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
if (joystickImg.transform.localPosition.y < -20) {
player.transform.Translate(Vector3.back * speed * Time.deltaTime);
}
}
}
talvez vcs consiga ai
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Bom dia cara! tentei aqui mas não deu não, mesmo ajustando algumas coisas, não deu. Isso é o problema de pegar códigos sem vermos como ele foi escrito e o propósito do mesmo. Vai ter que pesquisar mais maninho, e de preferência em Inglês.
Abraço!
Abraço!
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
Bom. Dia, sim pois é, então blz valeu aí pela ajuda amigo.
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
so mais uma pergunta, esse e o script de um veiculo para android que depois de muito tempo consegui fazer, como eu Adiciono um freio?
- Código:
using UnityEngine;
using System.Collections;
using UnityStandardAssets.CrossPlatformInput;
public class CamCon : MonoBehaviour {
public WheelCollider[] wcs;
public Transform[] rodas;
public float torque, freio, friccao;
public float Volante;
//Liga Desliga...
public bool Ligado;
void updateRodas() {
// O ativa e desativa o veicu...
if (Input.GetKeyDown("i"))
{
if (Ligado == true)
Ligado = false;
else
Ligado = true;
}
Vector3 pos;
Quaternion rot;
//Aceleraçao
for (int i = 0; i < wcs.Length; i++)
{
wcs [i].motorTorque = CrossPlatformInputManager.GetAxis ("Vertical") * torque;
//As wheels acompanhar as meshs
wcs [i].GetWorldPose (out pos, out rot);
rodas [i].position = pos;
rodas [i].rotation = rot;
}
//Direção
wcs[1].steerAngle = CrossPlatformInputManager.GetAxis ("Horizontal") * Volante;
wcs[2].steerAngle = CrossPlatformInputManager.GetAxis ("Horizontal") * Volante;
}
void Update () {
//Funcionar o tempo todo
updateRodas();
}
//void UpdateFreio (){
// wcs[1].brakeTorque = (CrossPlatformInputManager.GetAxis ("ButtonFreio") * friccao);
//}
}
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Re: como eu faço para a camera orbitar um objeto atraves de um joystick?????
- Código:
using UnityEngine;
using System.Collections;
public class CameraMovimento : MonoBehaviour {
public VirtualJoystick cameraJoystick;
public Transform LookAt;
private float distance = 10.0f;
private float currentX = 1.0f;
private float currentY = 1.0f;
private float sensivityX = 1.0f;
private float sensivityY = 1.0f;
private void update()
{
currentX += cameraJoystick.InputDirection.x * sensivityX;
currentY += cameraJoystick.InputDirection.z * sensivityY;
}
private void LateUpdate()
{
Vector3 dir = new Vector3 (0, 0, -distance);
Quaternion rotation = Quaternion.Euler (currentY, currentX, 0);
transform.position = LookAt.position + rotation * dir;
transform.LookAt (LookAt);
}
}
agora eu não sei o porque que nao esta funcionado
- Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class VirtualJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler
{
public Image bgImg, jsImg;
public Vector3 InputDirection { set; get; }
private void Start()
{
bgImg = GetComponent<Image>();
jsImg = GetComponentsInChildren<Image>()[1];
InputDirection = Vector3.zero;
}
//EventSystems interfaces
public virtual void OnDrag(PointerEventData ped)
{
Vector2 pos = Vector2.zero;
if (RectTransformUtility.ScreenPointToLocalPointInRectangle
( bgImg.rectTransform,
ped.position,
ped.pressEventCamera,
out pos))
{
pos.x = (pos.x / bgImg.rectTransform.sizeDelta.x);
pos.y = (pos.y / bgImg.rectTransform.sizeDelta.y);
float x = (bgImg.rectTransform.pivot.x == 1) ? pos.x * 2 + 1 : pos.x * 2 - 1;
float y = (bgImg.rectTransform.pivot.y == 1) ? pos.y * 2 + 1 : pos.y * 2 - 1;
InputDirection = new Vector3(x, 0, y);
InputDirection = (InputDirection.magnitude > 1) ? InputDirection.normalized : InputDirection;
jsImg.rectTransform.anchoredPosition = new Vector3(InputDirection.x * (bgImg.rectTransform.sizeDelta.x / 3)
, InputDirection.z * (bgImg.rectTransform.sizeDelta.y / 3));
}
}
public virtual void OnPointerDown(PointerEventData ped)
{
OnDrag(ped);
}
public virtual void OnPointerUp(PointerEventData ped)
{
InputDirection = Vector3.zero;
jsImg.rectTransform.anchoredPosition = Vector3.zero;
}
}
Gabryellx007- Membro
- PONTOS : 2497
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» Como faço para Camera ignorar um objeto?
» No script da "Câmera estilo Gta" como faço para o mouse mover a câmera ?
» Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
» alguem sabe como eu posso colocar um joystick para mover a camera
» Como faço para mudar a posição de um objeto para perto de outro.
» No script da "Câmera estilo Gta" como faço para o mouse mover a câmera ?
» Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
» alguem sabe como eu posso colocar um joystick para mover a camera
» Como faço para mudar a posição de um objeto para perto de outro.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos