Jump to content
UnitySpain

Search the Community

Showing results for tags 'move'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Inicio
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
  • Mesa de ayuda
    • Unity
    • Arte
    • Otras Especialidades
    • Builds & Dispositivos
  • Aportes de la Comunidad
    • Recursos
    • Eventos
    • Buenas Prácticas
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

  • byGui

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 2 results

  1. Buenas gente, acá les traigo un simple script para controlar el movimiento de traslación de las plataformas. Lo hice con el objetivo de facilitarme este método y dejárselo a los nuevos usuarios del foro. Es algo muy básico pero cumple su función. El siguiente script se añade a la plataforma que quieras que tenga esta propiedad. using UnityEngine; using System.Collections.Generic; public class PlatformMove : MonoBehaviour { [Range(0.0f, 15.0f)] public float speed; public enum Path { loop, reverse } public Path path; public float minDistance = 0.1f; public List<Vector3> positions = new List<Vector3>(); private int index = 0; void Start() { ResetPosition(); } //para situar la plataforma al comienzo void Update () { //Traslacion if (index < positions.Count) { transform.position = Vector3.MoveTowards(transform.position, positions[index], Time.deltaTime * speed); if (Vector3.Distance(transform.position, positions[index]) < minDistance) index++; } else { //Metodos de traslacion if (path == Path.loop) index = 0; if (path == Path.reverse) { positions.Reverse(); index = 0; } } } //EDITOR public void AddPosition() { positions.Add(transform.position); } public void RemoveLastPosition(){ positions.RemoveAt(positions.Count - 1); } public void ResetPosition() { transform.position = positions[0]; } public void ResetAll() { positions.Clear(); } void OnDrawGizmosSelected() { if (positions != null) { for (int i = 0; i < positions.Count; i++) { if(i < positions.Count - 1) { Gizmos.color = Color.green; Gizmos.DrawLine(positions[i], positions[i + 1]); } else { Gizmos.color = Color.blue; Gizmos.DrawLine(positions[i], positions[0]); } } } } }Y el siguiente dentro de la carpeta "Editor" using UnityEngine; using UnityEditor; [CustomEditor(typeof(PlatformMove))] public class PlatformMoveEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); PlatformMove plataformMove = (PlatformMove)target; if (GUILayout.Button("ADD")) plataformMove.AddPosition(); if (GUILayout.Button("REMOVE LAST POSITION")) { plataformMove.RemoveLastPosition(); } if (GUILayout.Button("RESET POSITION (OBJECT)")) plataformMove.ResetPosition(); if (GUILayout.Button("RESET ALL")) plataformMove.ResetAll(); } }
  2. Hola a todos!!! de nuevo yo por aquí verán, siempre veo como en la mayoría de juegos android, se puede hacer "drag" con un dedo y "scale" con dos... verán he investigado ( y por esto me refiero a preguntarle a alguien mas XD), pero no he encontrado lo que busco... mi intencion no es pasar las coordenadas de la pantalla a las coordenadas del espacio 3D, eso me daria resultados, incorrectos, por ejemplo De ahí que lo que busco, es disparar un rayo que 1.- encuentre el objeto que deseo mover 2.- encuentre sus coordenadas (las del rayo) en el plano X-Z cuando Y=0 es decir en el suelo y al mover el dedo... 1.- encuentre la diferencia con respecto al punto anterior en el plano X-Z cuando Y=0 2.- sume eso a la posición inicial del objeto haciendo que el mismo, se mueva con mi dedo. Espero haberme hecho entender de la mejor manera alguna idea? recursos de investigacion? sugerencias? aprecio mucho su ayuda....
×
×
  • Create New...