ayuda C#
alguien que sepa C# me puede decir porque el mathf.clamp no funciona en este codigo?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class jugador : MonoBehaviour {

public float speed = 1f;
public float minX = -10f;
public float maxX = 10f;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

if (Input.GetKey(KeyCode.A))
transform.position -= new Vector3(Mathf.Clamp(speed * Time.deltaTime, minX, maxX), 0f, 0f);

if (Input.GetKey(KeyCode.D))
transform.position += new Vector3(Mathf.Clamp(speed * Time.deltaTime, minX, maxX), 0f, 0f);


}
}
< >
Viser 1-12 af 12 kommentarer
Dj Otacon 9. okt. 2017 kl. 14:10 
Deduzco que Vector3 es un vector ( matriz unidimensional ) asi que puede ser un desbordamiento habria que revistar si esa inicializacion de la matriz no se desborda.

Tampoco que tipo de valor devuelve Time.deltaTime asi que estamos a ciegas.

Jamas se inicializa y se crea la matriz directamente con valores resultantes de una funcion para evitar problemas como estos.

Da la impresion de que no tienes mucha idea de programación y estas siguiendo los ejemplos de la referencia de Unity, esos ejemplos no sirven para programar realmente y son solo muestras, aprende primero POO correctamente y luego metete en C# para luego aprender el scripting en Unity.
Dj Otacon 9. okt. 2017 kl. 14:15 
Efectivamente es lo que yo he dicho, te has puesto a programar sin tener ni idea de nada a dar palos de ciego y a buscarte alguien que te solucione la papeleta, por eso no has sido muy claro a la hora de explicar para que estabas pididendo ayuda.

En cambion en la pregunta en ingles si que lo has explicado.

http://steamcommunity.com/discussions/forum/12/1489987634017517265/

Buena jugada.
Mayor_Casey/TTV 9. okt. 2017 kl. 14:15 
Estoy algo jodido, mi profesor de scripting en unity no nos ha explicado mucho... y nos dice que vayamos al manual de unity para saber que usar y como tu bien dices esos ejemplos no sirven de mucho.

Supuestamente estoy usando mal el mathf.clamp porque no hace su funcion pero si consigo que se mueva el personaje almenos.

Yo lo que no quiero es copy past de un tutorial o algo parecido :( asique haber si consigo aprender equivocandome jajaja
Mayor_Casey/TTV 9. okt. 2017 kl. 14:18 
Oprindeligt skrevet af Dj Otacon:
Efectivamente es lo que yo he dicho, te has puesto a programar sin tener ni idea de nada a dar palos de ciego y a buscarte alguien que te solucione la papeleta, por eso no has sido muy claro a la hora de explicar para que estabas pididendo ayuda.

En cambion en la pregunta en ingles si que lo has explicado.

http://steamcommunity.com/discussions/forum/12/1489987634017517265/

Buena jugada.

Tambien es verdad que se entiende mejor en ingles, pero tampoco quiiero que me lo haga otro por mi.

En un principio tenia esto, pero sigo sin comprender donde tengo que poner el mathf.clamp:

if (Input.GetKey(KeyCode.A))
transform.position -= new Vector3(speed * Time.deltaTime, 0f, 0f);
Mathf.Clamp(transform.position.x, minX, maxX);

if (Input.GetKey(KeyCode.D))
transform.position += new Vector3(speed * Time.deltaTime, 0f, 0f);
Mathf.Clamp(transform.position.x, minX, maxX);
Dj Otacon 9. okt. 2017 kl. 14:31 
Mira el problema que tienes es mas profundo.

Necesitas aprender trigonometria para que tu mente piense y asocie los comandos de scripting de unity a lo que quieres hacer, sin eso estas perdido.

Es decir no tienes formados los circuitos neurales para procesar ese tipo de informacion y asi lo unico que haces es ralentizarte, al final lo conseguiras pero tardaras el doble ó el triple en entender que hacne las funciones del scripting.

Mi consejo es que aprendas trigonometira inmediatamente invirtiendo el tiempo necesario en aprender lo basico, te garantizo que los resultados son espectaculares.

En cuanto a la funcion mathf.clamp si no me equivoco es una funcion para acotar valores.

Hechale un ojo a esto:

https://www.vitutor.com/fun/2/a_8.html

Lamentablemente la programación grafica es un maremagnum de funciones matematicas y de trigonometria asi que ó se aprende esto ó preparate para desarrollar habilidades de deduccion dignas del gran Sherlock Holmes.
Solaire of Astora 9. okt. 2017 kl. 14:41 
no entiendo por qe la gente pregunta cosas aqui que no tienen nada que ver con juegos o steam -.- (si yo hago eso me cuelgan xd)
Dj Otacon 9. okt. 2017 kl. 14:43 
Por una vez no pasa nada pero si insisten habra que recordar los objetivos del foro.
Mayor_Casey/TTV 9. okt. 2017 kl. 14:44 
Gracias por tus respuestas, de trigonometria controlo pero si que ando perdido con C# de unity (de C# tengo un conocimiento base como para saber interpretar un codigo y estructurarlo) pero a la hora de usar la API de unity voy algo perdido por eso pregunto por si alguien me puede ayudar.

Lo que no quiero es copiar un codigo y quedarme tan pancho. Por eso estoy intentandolo hacer a mi manera pero tampoco es que vaya a ser la forma mas productiva.

Sigo pensando porque desde este punto:

if (Input.GetKey(KeyCode.A))
transform.position -= new Vector3(speed * Time.deltaTime, 0f, 0f);
Mathf.Clamp(transform.position.x, minX, maxX);


Comprendo el funcionamiento del movimiento pero en el momento que la funcion mathf.clamp que supuestamente tendria que acotar la posicion en X entre el minX y el maxX (con unos valores al principio del codigo).
Mayor_Casey/TTV 9. okt. 2017 kl. 14:47 
Oprindeligt skrevet af Matias_RGT:
no entiendo por qe la gente pregunta cosas aqui que no tienen nada que ver con juegos o steam -.- (si yo hago eso me cuelgan xd)


Oprindeligt skrevet af Dj Otacon:
Por una vez no pasa nada pero si insisten habra que recordar los objetivos del foro.

Os dejo las restricciones de temas de las reglas de steam en discusiones... si no estais interesados en este post lo mejor es que tampoco respondais nose... Si quereis contribuir en algo, genial! sera bien recivido ;)

Restricciones de Temas:
No publiques ningún tema o comentario que contenga lo siguiente:
Pornografía, contenido ofensivo o inapropiado, contenido robado o publicado antes de tiempo o cualquier cosa que no sea apropiado que te pillen viéndola.
Cualquier comentario ilícito sobre piratería tendrá como resultado la prohibición de acceso permanente a la Comunidad Steam, incluyendo pero no limitándose a:
Cracks
Generadores de claves
Emuladores de consola
Comentarios sobre cómo hacer trampas, hackear o aprovecharse de errores de juegos.
Amenazas de violencia o acoso, incluso si es en broma.
Publicar material con copyright, como por ejemplo escaneos de revistas.
Pedir cosas gratis, subastar, sortear, vender, anunciarse o publicar enlaces de referidos.
Racismo y discriminación.
Lenguaje ofensivo, incluidas palabras malsonantes.
Drogas o alcohol.
Cuestiones religiosas, políticas o “propensas a crear temas interminables”.
Dj Otacon 9. okt. 2017 kl. 14:49 
Oprindeligt skrevet af MayorCasey-twitch.tv/viduskate:
Sigo pensando porque desde este punto:

if (Input.GetKey(KeyCode.A))
transform.position -= new Vector3(speed * Time.deltaTime, 0f, 0f);
Mathf.Clamp(transform.position.x, minX, maxX);


Comprendo el funcionamiento del movimiento pero en el momento que la funcion mathf.clamp que supuestamente tendria que acotar la posicion en X entre el minX y el maxX (con unos valores al principio del codigo).

Pues nada te cojes codigo fuente que contenga usos de la funcion y a deducir se ha dicho.

Que haya suerte.
Dj Otacon 9. okt. 2017 kl. 14:52 
Oprindeligt skrevet af MayorCasey-twitch.tv/viduskate:
...

No es una cuestion de reglas sino de etiqueta, el foro esta dedicado realmente a problemas en los juegos y no a programacion, ni hardware, ni nada parecido, asi que es comprensible que si bien se puede ayudar en algo esta fuera de los objetivos del foro, eso como recomendacion luego el administrador del foro te puede redirigir ó no.

Pero lo que si es seguro que no a todo el mundo le va a gustar que un foro de juegos entre gente preguntando por temas de programación.
Mayor_Casey/TTV 9. okt. 2017 kl. 14:55 
Oprindeligt skrevet af Dj Otacon:
Oprindeligt skrevet af MayorCasey-twitch.tv/viduskate:
...

No es una cuestion de reglas sino de etiqueta, el foro esta dedicado realmente a problemas en los juegos y no a programacion, ni hardware, ni nada parecido, asi que es comprensible que si bien se puede ayudar en algo esta fuera de los objetivos del foro, eso como recomendacion luego el administrador del foro te puede redirigir ó no.

Pero lo que si es seguro que no a todo el mundo le va a gustar que un foro de juegos entre gente preguntando por temas de programación.

Ya me imagino pero el foro en español no tiene apartados D: ojala algun dia los tenga estaria genial y no por mi tema de scripting sino por no tener todo mezclado en un mismo lugar :steamsad:
< >
Viser 1-12 af 12 kommentarer
Per side: 1530 50

Dato opslået: 9. okt. 2017 kl. 13:49
Indlæg: 12