Jump to content
UnitySpain

Search the Community

Showing results for tags 'transform'.



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
  • El Blog de Pioj

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 13 results

  1. Hola a todos, agradezco de antemano la ayuda que me puedan brindar Estoy creando un videojuego 2D muy sencillo, donde el personaje inicia con tres vidas y puede ir recolectando algunas otras a medida que avanza en los niveles, cada vida esta representada por un corazón que aparece cuando se colisiona con un objeto particular, esto funciona muy bien, el problema es que cuando el personaje se mueve y obtiene una nueva vida el cortazon aparece en una posicion distinta de la esperada, puede ser antes o despues de los otros inclusive sobre ellos. Creo que el problema es por el manejo del Canvas y su componente RectTransform pero no doy en como solucionarlo, gracias
  2. Hola, buen dia! Tengo problemas con mover, el famoso deltatime, hay algo que no me cierra... Que pasa con los fps(frames por segundo) que van mas rapido que otros (dependiendo el hadware)? Como funciona esto? Aunque vaya mas rapido o mas lento, no deberia ir siempre igual? en terminos "actualizacion de cada frame" Por ejemplo... Quiero contar 1 2 3, con 1 segundo de intermedio, 1...2...3.... SI TENGO 60 fps.. 20fps... 15fps... 100fps... 300fps... QUIERO QUE AUQUE SE VEA PARA EL CULO CUENTE 1 2 3 en 3 segundos... Como logro eso??? Por que me surgio esta duda?.. Bueno mi cuestion es la siguiente.. Me muevo de pi a pa llendo y viniendo, en un IEnumerator... Que pasa.... cuando actualizo frame por frame me va bien... cuando dejo fluir el juego se vuelve loco... Le puse mucho speed aproposito Speed: 12 Estado: play Estado: frame por frame Script: https://ghostbin.com/paste/fnq8k NO LE DEN BOLA AL "yield return new WaitForSeconds(0.2f)" Es para cuando este inabilitado actualize menos frames para rendimiento, pero es indiferente cuando empieza la secuencia de movimiento. Que pasa?
  3. Hola, espero que esten teniendo un buen dia. Primero que nada a que me refiero con ortodoxo? Simplemente a que no sigue una doctrina es decir no sigue algo fijo, algo que quiero que sea de una manera pero es de otra. Necesito que XYZ siempre miren hacia la misma direccion aunque rote el padre o el objeto y apartir de ahi poder modificar XYZ... Conosco que un V3 "localposition" de un transform se refiere a la posicion local lo cual no se modifica, pero de todas formas los ejes no me hacen caso.. y eso es un problema para mi... Vamos con ejemplos practicos, no creo que todabia me hayan entendido: Script para dar ejemplo: Una Tapa se cierra y se abre en el sentido Z SI TIENEN 5 MINUTOS PRUEBEN LO PORFA asi me ayudan sino es difícil entender mi problema <3 // PARA USARLO CREEN UN OBJETO CON MALLA TIPO CUBO // EN LA ESCALA PONGANLE 0 EN Z // INSERTEN EL SCRIPT EN EL OBJETO // LISTO PUEDEN USAR EL SCRIPT // CON E ABREN CON R CIERRAN public class CloseTop : MonoBehaviour { private MeshRenderer _mesh; public float maxScale = 1f; public float speed = 2f; private Vector3 _posFix; private float _scaleStart; private float _scaleEnd; public bool _close = false; public bool _open = false; void Start() { _mesh = GetComponent<MeshRenderer>(); _posFix = transform.localPosition; _scaleStart = transform.localScale.z; _scaleEnd = _scaleStart; } void Update() { transform.localScale = new Vector3(1, -0.06f,Mathf.MoveTowards(transform.localScale.z, _scaleEnd, Time.deltaTime * speed)); transform.localPosition = _posFix + transform.forward * (transform.localScale.z / 2.0f + _scaleStart / 2.0f); if (_open) { _close = false; _mesh.enabled = true; if (transform.localScale.z == maxScale) { _open = false; } } if (_close) { _open = false; if (transform.localScale.z == _scaleStart) { _mesh.enabled = false; _close = false; } } if (Input.GetKeyDown(KeyCode.E)) { _open = true; _close = false; _scaleEnd = maxScale; } else if (Input.GetKeyDown(KeyCode.R)) { _close = true; _open = false; _scaleEnd = _scaleStart; } } } Bueno hasta ahi todo correcto el objeto abre y cierra en Z.. Ahora al objeto ponganlo adentro de un padre... Roten el PADRE 90 grados Ejecuten el start Y ESE es mi problema.... Como pudieron observar si miran el transform del gameobject "Top"(tapa) cuando esta rotado el padre. La rotacion se modifica correctamente... en Z, pero la posicion se modifica en Y... Neceisto que se modifique en Z tambien. Alguna solucion?
  4. Como puedo hacer un ¿C´0mo puedo hacer un parent sin modificar el scale?
  5. Hola a todos, Tengo un pequeño problema con un enemigo. Por ahora, en el escenario, sólo tengo un enemigo que, cuando me acerco a una cierta distancia, me persigue y me ataca. El problema que tengo es que, cuando deja de detectarme necesito que vuelva a su posición inicial almacenada en una variable y no sé cómo hacerlo. Llevo varios dias dándole vueltas al tema y no hay manera de encontrar la sentencia adecuada y todo lo que consigo es que, cuando deja de "verme", siga andando hacia mí y eso no me interesa... Adjunto código a ver si me podéis ayudar: var target : Transform; var initpos : Vector3; var anim : Animator; var SeeU : boolean = false; var attackanim : boolean = false; //var notSee : boolean = false; function Start () { initpos = transform.position; anim = GetComponent.<Animator>(); } function Update () { if (transform.position.y > target.position.y -0.5f && transform.position.y < target.position.y + 0.5f){ // var pos = transform.position - target.position; var pos = target.position - transform.position; SeeU = true; if (Vector3.Distance(transform.position, target.transform.position)<12 && Vector3.Distance (transform.position, target.transform.position)>1 && SeeU == true){ var rot = Quaternion.LookRotation (pos, Vector3.up); if (SeeU == true){ anim.SetTrigger ("seeU"); transform.rotation = Quaternion.Slerp (transform.rotation, rot, 2*Time.deltaTime); transform.Translate (Vector3.forward * Time.deltaTime * 0.3); print ("Te estoy viendo"); } } else if (Vector3.Distance (transform.position, target.transform.position)<=1) { var rot2 = Quaternion.LookRotation (pos, Vector3.up); transform.rotation = Quaternion.Slerp (transform.rotation, rot2, 2*Time.deltaTime); anim.SetTrigger ("attack"); } else { print ("no te veo"); //AQUI DEBERÍA IR LA SENTENCIA QUE HACE QUE EL ENEMIGO VUELVA A SU SITIO, PERO NO DOY CON ELLA... } } Muchas gracias Salu2!
  6. El problema que tengo es que al pasar de escena se borra el transform y me gustaría que lo buscara sin que tenga que poner el player dentro. Solo necesito quitar ese transform y hacer que busque al player, me da igual si es por tag, el resto bien, la vida se mantiene en todos los niveles y se reduce con las caídas. #pragma strict var lastPositionY : float = 0f; var fallDistance : float = 0f; var player : Transform; var vis : GameObject; private var controller : CharacterController; var currentHealth : float = 10.0f; function Start() { controller = GameObject.Find("Player").GetComponent(CharacterController); } function Update () { if(lastPositionY > player.transform.position.y) { fallDistance += lastPositionY - player.transform.position.y; } lastPositionY = player.transform.position.y; if(fallDistance >= 5 && controller.isGrounded) { currentHealth -= 5; vis.SetActive (true); ApplyNormal(); } if(fallDistance <= 5 && controller.isGrounded) { ApplyNormal(); } if(currentHealth < 5) { Application.LoadLevel("perdido"); } } function ApplyNormal() { fallDistance = ; lastPositionY = ; yield WaitForSeconds (1); vis.SetActive (false); } function OnGUI() { GUI.Box(Rect(10, 20, 50, 20),"" + currentHealth); } function Awake(){ DontDestroyOnLoad (transform.gameObject); }
  7. Porque no me deja modificar las componentes del transform por separado, es decir, si yo pongo esto: para modificar solo una componente, me pone un error y me dice que es solo un { get } que otra forma hay de hacer esto, de modificar la componente "x" o "y" o "z" de la posicion o rotacion o escala sin que afecte a las demas componentes?? (si modifico por ejemplo la "y" que las otras dos componentes puedan tomar el valor que sea)
  8. Alguien sabe cuales son las contraposiciones a Forward , Up y Left? Es que tengo este script y no he podido hacer que inicie sin seguir la direccion local('¿). Liberarlo de su direccion standard, que pueda iniciar mirando hacia donde yo gire el dron. Apenas doy Play, se gira hacia la derecha ,no importa que lo haya girado a la direccion que deseo que siga. using UnityEngine; using System.Collections; public class DronX : MonoBehaviour { public float normalMoveSpeed = 10; private float rotationX = 0.0f; private float rotationY = 0.0f; void Update () { rotationX += Input.GetAxis("Mouse X") * normalMoveSpeed * Time.deltaTime; rotationY += Input.GetAxis("Mouse Y") * normalMoveSpeed * Time.deltaTime; rotationY = Mathf.Clamp (rotationY , -90, 90); transform.localRotation = Quaternion.AngleAxis(rotationX, Vector3.up); transform.localRotation *= Quaternion.AngleAxis(rotationY, Vector3.left); { transform.position += transform.forward * normalMoveSpeed * Input.GetAxis("Vertical") * Time.deltaTime; } } }
  9. Actualmente en Unity multiplayer, cuando cambias la escala de un player, este cambio no se actualiza automáticamente en el resto de clientes. ¿Alguien sabe cómo se puede hacer? Es para un juego tipo agar.io, donde el jugador va cambiando de tamaño.
  10. Buenas gente,queria postear un poco de mi codigo a ver si alguien me puede ayudar,tengo problemas con los arrays,el tema es el siguiente,estoy tratando de hacer un juego tipo pong pero con muchas pelotas,meti las pelotas en un array y ahora quiero controlar la ia del enemigo en referencia al array de pelotas,aca estan mis codigos. el primero es el spawneador de pelotas donde esta el array: var ball:GameObject; static var ballArray:GameObject[]; var timeToSpawn:int=10; function Start(){ ballArray= GameObject.FindGameObjectsWithTag("Ball"); } function Update(){ timeToSpawn-=Time.deltaTime; ballArray= new GameObject[10]; for(var i:int;i<ballArray.Length;i++){ if(timeToSpawn==0){ var clone=Instantiate(ball,Vector3.zero,Quaternion.identity); timeToSpawn=500; } ballArray[i]=clone; } } function Awake () { }y aca esta el controlador de la ia enemiga: #pragma strict var speed:float =10; var ball:GameObject; //var ballCon=spawnBallController; function Update () { if(spawnBallController.ballArray.transform.position.y>transform.position.y){ transform.position = new Vector3(transform.position.x,transform.position.y+0.2,0); transform.position.y = Mathf.Clamp(transform.position.y,-3.4,3.92); } if(spawnBallController.ballArray.transform.position.y<transform.position.y){ transform.position = new Vector3(transform.position.x,transform.position.y-0.2,0); transform.position.y = Mathf.Clamp(transform.position.y,-3.4,3.92); } }el error que me tira en unity es el siguiente: en la linea: if(spawnBallController.ballArray.transform.position.y>transform.position.y){ "transform" is not a member of unityengine.gameObject[]; si no me explique bien avisen y por favor si alguien me puede dar una mano se lo voy a agadecer
  11. tengo un objeto que quiero transformar su posicion a la posicion de un target, pero obviando Y, solo quiero mover X,Z. var target : Transform; function Update(){ transform.position = Vector3(target.x,0,target.z); }de esta forma no consigo que vaya a la posicion del target, solo lo he podido hacer así, pero me gustaría poder excluir la Y. transform.position = target.transform.position;he probado tambien con transform.x = target.transform.position; pero nada. ¿como sería de forma correcta lo que quiero hacer?
  12. Tengo un problema. Necesito hacer un movimiento que con pulsar una vez el botón un objeto se mueva hacia abajo hasta cierto punto y al llegar ahí regrese al punto inicial. Gracias.
  13. Muy buenas a todos: Soy nuevo tanto en el foro como en Unity y de programación tengo nociones muy básicas. Estaba intentando instanciar un prefab dentro de un objeto padre pero a la hora de la verdad, Unity me da un error que dice Aquí os dejo el código en cuestión: Aprovecho la ocasión, para intentar en solventar otra duda que fue la causante de llegar a intentar lo mencionado antes. La cosa es que quiero hacer explotar un objeto desde el detonador (que por supuesto, no esta en la misma posición) y todo estaba perfecto excepto a la hora aparecer la explosión (que sale una cierta distancia del objeto a destruir) . Tras varias horas de darle vueltas y de pruebas y de buscar por internet y etc me he percatado de que la posición del obj es distinta a la del global (creo que tanto como la misma distancia de donde aparece el efecto de explosión). ¿Hay alguna forma de poder colocar las coordenadas partiendo desde el mismo punto desde donde empiezan objeto que quiero explotar? Saludos y gracias de antemano
×
×
  • Create New...