Yes tout à fait c'était juste le morceau qui me manquait j pensais que je pouvais pas mettre la fonction onGUI n'importe ou
Merci
Newbie : écran 42'' tactile et rotation objet
Re: Newbie : écran 42'' tactile et rotation objet
Yes, tant que ta caméra a le Layer du GUI (par défaut une caméra l'a) tu peux mettre du GUI ou tu veux.
Mais ceci dit, ça reste plus propre de déporter sur un seul script le GUI, surtout dès que tu as des fichier dans tous les sens.
Dans ce cas tu peux très bien appeller une fonction entre les script, si tu veux garder le même principe que mon exemple, tu créés un accesseur vers la variable en public, tu te débrouilles pour accéder à l'objet (GameObject.Find, puis GetComponent pour récupérer le script et ainsi appeler une fonction sur ce script).
Du genre (Exemple standard):
toto.cs
titi.cs qui est sur le même gameObject que toto.cs
Mais ceci dit, ça reste plus propre de déporter sur un seul script le GUI, surtout dès que tu as des fichier dans tous les sens.
Dans ce cas tu peux très bien appeller une fonction entre les script, si tu veux garder le même principe que mon exemple, tu créés un accesseur vers la variable en public, tu te débrouilles pour accéder à l'objet (GameObject.Find, puis GetComponent pour récupérer le script et ainsi appeler une fonction sur ce script).
Du genre (Exemple standard):
toto.cs
Code : Tout sélectionner
private bool maValue = false;
public bool GetValue()
{
return maValue;
}
Code : Tout sélectionner
void GetTotoValue()
{
print( GetComponent<toto>().GetValue() );
}
Re: Newbie : écran 42'' tactile et rotation objet
Allo,
Bon j'avance pas si mal dans mes affaires ... cette fois-ci j'essaye de zoomer sur la zone cliquée.
À date, je suis arrivé à ce code ci :
Mon problème ici est que j'aimerai que mon changement de profondeur de champs soit moins brutale, j'ai essayé différentes choses (essai1 essai2) mais comme je suis pas encore super familier avec la façon dont travaille Unity je n'arrive pas du tout à mon résultat (voir même je tombe dans une boucle infinie lool).
Un pti hint ??
Merci d'avance
Bon j'avance pas si mal dans mes affaires ... cette fois-ci j'essaye de zoomer sur la zone cliquée.
À date, je suis arrivé à ce code ci :
Code : Tout sélectionner
void Update () {
if(Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
float curFOV = Camera.main.fieldOfView;
if(Physics.Raycast(ray,out hit)) {
isObject = true;
//essai 1
//Camera.main.fieldOfView = Mathf.Lerp(curFOV, 15.0f , 1*Time.deltaTime);
//essai2
//while (Mathf.Abs(15.0f - Camera.main.fieldOfView) > 0.5f) {
// Camera.main.fieldOfView = Mathf.Lerp(Camera.main.fieldOfView, 15.0f, Time.deltaTime * 1);
// }
Camera.main.transform.LookAt(hit.transform);
} else {
isObject = false;
Camera.main.fieldOfView = 35.0f;
Camera.main.transform.LookAt(Vector3.zero);
}
}
}
Un pti hint ??
Merci d'avance
Re: Newbie : écran 42'' tactile et rotation objet
Perso. je te conseillerai d'utiliser une lib d'animation.
Mais si tu veux faire sans, sort juste un booléen de l'event et fais ça:
Mais si tu veux faire sans, sort juste un booléen de l'event et fais ça:
Code : Tout sélectionner
private bool isObject = false;
private float currentFieldOfView = 35f, currentFieldOfViewRef = 0f;
void Update () {
if(isObject)
currentFieldOfView = Mathf.SmoothDamp(currentFieldOfView, 15f, ref currentFieldOfViewRef, 1f);
else
currentFieldOfView = Mathf.SmoothDamp(currentFieldOfView, 35f, ref currentFieldOfViewRef, 1f);
Camera.main.fieldOfView =currentFieldOfView;
if(Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
float curFOV = Camera.main.fieldOfView;
if(Physics.Raycast(ray,out hit)) {
isObject = true;
Camera.main.transform.LookAt(hit.transform);
} else {
isObject = false;
Camera.main.transform.LookAt(Vector3.zero);
}
}
}
Re: Newbie : écran 42'' tactile et rotation objet
Allo,
Super merci pour l'exemple de code ... mais je vais tout de même regarder du coté des lib et si trop dur à mettre en place j'utiliserai le code.
D'ailleurs pour le coup j viens de voir mon "erreur" à chaque frame si j'ai un objet je zoom un peu j'aurais du y penser... merci
Ps : si t as une lib en tête hésites pas
Super merci pour l'exemple de code ... mais je vais tout de même regarder du coté des lib et si trop dur à mettre en place j'utiliserai le code.
D'ailleurs pour le coup j viens de voir mon "erreur" à chaque frame si j'ai un objet je zoom un peu j'aurais du y penser... merci
Ps : si t as une lib en tête hésites pas
Re: Newbie : écran 42'' tactile et rotation objet
iTween ou HOTween, iTween étant plus simple à utiliser mais HOTween étant plus performant et plus riche en possibilités.
ça te permettrais de faire des courbes de vitesse sympatiques, mais avec le code que je t'ai donné SmoothDamp fait déjà un bon boulot normalement.
ça te permettrais de faire des courbes de vitesse sympatiques, mais avec le code que je t'ai donné SmoothDamp fait déjà un bon boulot normalement.
Re: Newbie : écran 42'' tactile et rotation objet
Allo,
J'essaye de trouver le script SmoothLookAt .. mais impossible de mettre la main dessus dans les assets.
Car le lookAt se fait dès le debut du zoom, ce qui fait un espece de saut bizarre. J'ai bien essayé de mettre le lookAt dans LateUpdate. Mais ca change rien.
Merci
Edit : J viens de voir qu'il existait un Quaternion.LookRotation je vais essayer avec ça.
J'essaye de trouver le script SmoothLookAt .. mais impossible de mettre la main dessus dans les assets.
Car le lookAt se fait dès le debut du zoom, ce qui fait un espece de saut bizarre. J'ai bien essayé de mettre le lookAt dans LateUpdate. Mais ca change rien.
Merci
Edit : J viens de voir qu'il existait un Quaternion.LookRotation je vais essayer avec ça.