nomoregames 35 Report post Posted March 26, 2020 Hola a todos Quiero acer que un objeto se posicione entre otros dos, es decir que si ay un objeto player y un objeto mouse, se coloque entre estos dos, para eso, primero hay que saber la dirección (restar una posición a la de el otro), pero... Como indico luego a la distancia que estará de el objeto player? (esa distancia sera siempre la misma así que técnicamente no es justo justo el medio de los dos objetos) PD: estoy trabajando en 2d Gracias por vuestra atención Share this post Link to post Share on other sites
francoe1 536 Report post Posted March 26, 2020 (edited) Tenes dos objetos y queres situar algo exactamente al centro de estos dos ? Quote Objeto_CENTRO = (Objeto_A.position + Objeto_B.position) / 2 Edited March 29, 2020 by pioj Por favor, usa el <> o el "quote" para pegar código. Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 26, 2020 no exactamente..., aquí te dejo un dibujo Ejemplo 1 el mismo caso solo que el mouse esta mas alejado y en otra posición Se entiende a que me refiero? Share this post Link to post Share on other sites
francoe1 536 Report post Posted March 26, 2020 Y podrías tomar la dirección y multiplicar por la distancia. Quote dir=(a.position - b.position).normalized c.position=a.position + dir*1.3f Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 27, 2020 Perfecto! muchas gracias, no se como no se me havia ocurrido XD ¡RECTIFICO! No funciona tan bien como pensaba Resulta que dependiendo de lo cerca o lejos que este el objeto mouse de el player, mas se acerca el obj centro a player https://drive.google.com/open?id=17cmJmaTivD1nlfTde_i1iU4S4UGeB8TA Como podría hacer que el obj centro siempre se encuentre a 1.3f de player???? Share this post Link to post Share on other sites
pioj 803 Report post Posted March 29, 2020 Lo "recolocas" a mano: fuerzas que su transform.position sea igual a la posición del jugador + la dirección en la que vaya + la separación... Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 29, 2020 Buenas pioj... Comorl? Como lo ago... no puedo sumar directamente un flotante a un vector.... Share this post Link to post Share on other sites
J Montes 71 Report post Posted March 29, 2020 Está bien lo del drive pero sería más de agradecer que pegaras unas imágenes. Si ambos objetos no están en el mismo plano, tendrás que hacer algún ajuste más. También depende si quieres que el objeto esté alrededor del jugador "en la pantalla" o "en el espacio del objeto (3D)". También sería interesante ver cómo estás generando la posición del mouse en 3D, tendrías que hacer un Raycast hasta el terreno o hasta el plano del jugador. Ponnos screenshots y el código involucrado (esto siempre deberías hacerlo así cuando hagas una pregunta ;-)). Share this post Link to post Share on other sites
AngelFG 15 Report post Posted March 29, 2020 A lo mejor no te estoy entendiendo muy bien.... ¿ Esto no valdría ? public class DistanciaEntre : MonoBehaviour { [SerializeField] private Transform mouse; [SerializeField] private Transform player; private Vector3 distancia; // Update is called once per frame void Update() { distancia = (mouse.position - player.position) * 0.3f; // Cambia el 0.3 por la distancia fija a la que quieras que esté transform.position = player.position + distancia; } } Share this post Link to post Share on other sites
francoe1 536 Report post Posted March 29, 2020 @AngelFG Te aconsejo normalizar la diferencia entre mouse y player 1 Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 30, 2020 Bien... AngelFG... tu script es lo mismo que publicaba francoe Quote Y podrías tomar la dirección y multiplicar por la distancia. Quote dir=(a.position - b.position).normalized c.position=a.position + dir*1.3f Share this post Link to post Share on other sites
AngelFG 15 Report post Posted March 30, 2020 (edited) 3 minutes ago, nomoregames said: Bien... AngelFG... tu script es lo mismo que publicaba francoe No exactamente lo mismo...si te fijas en el ejemplo de franceo normaliza la distancia y después, al multiplicar por 1.3f, siempre va a estar a esa distancia fija con respecto a 'a'. Por lo tanto, si 'b' se acerca a 'a' estará más cerca del centro, que es lo que comentaba nomeregame como respuesta a la solución anterior. Mientras que en mi ejemplo no normalizo y eso hace que la distancia se mantenga en la misma proporción (o eso creo si no me equivoqué al hacer el ejemplo :) ) En mi ejemplo siempre se encontraría al 30% del espacio entre 'a' y 'b' independientemente de la distancia entre ellos.... Edited March 30, 2020 by AngelFG Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 30, 2020 Jejejeje, creo que me he explicado mal Lo que estoy tratando conseguir es que el objeto "centro" se encuentre siempre a una distancia absoluta de el objeto A de forma independiente a la distancia a la que se encuentre el objeto B... Me he explicado mejor? Share this post Link to post Share on other sites
iRobb 776 Report post Posted March 30, 2020 (edited) Cómo se puede complicar algo tan sencillo. Me sumo a los que no entienden nada. Pon el objecto caja ese a 1,3f del player colgando de él y hazle un lookat del player al mouse. El comportamiento parece ser el player un planeta y la caja como una luna, que al mover el mouse rota alrededor. Edited March 30, 2020 by iRobb Share this post Link to post Share on other sites
nomoregames 35 Report post Posted March 30, 2020 Y eso como se haria? Share this post Link to post Share on other sites