Touch detect on guitexture

Toutes les questions sur le développement Mobile, y compris la partie script.
royalskunk
Messages : 163
Inscription : 30 Juin 2010 00:53

Touch detect on guitexture

Message par royalskunk » 26 Fév 2011 15:44

Bonjour a tous,
Je commence gentiment a dev sur iphone et ipad ,j'ai trouvé une technique pour la detection du toucher sur une guit texture mais j'ai un message d'erreur: BCW0012: WARNING: 'UnityEngine.iPhoneInput.touches' is obsolete. touches property is deprecated. Please use Input.touches instead.
meme si cela fonctionne il semblerait que je n'utilise pas la bonne démarche voila mon script que j'utilise:

function Update () {


if(iPhoneInput.touchCount > 0) {
var touch: iPhoneTouch = iPhoneInput.touches[0];
if(touch.phase == iPhoneTouchPhase.Began && guiTexture.HitTest(touch.position)) {

Application.LoadLevel ("Vegas");
}
}
}

merci pour ceux qui pourront me renseigner

Avatar de l’utilisateur
Ambrosios
Messages : 149
Inscription : 07 Jan 2010 10:13

Re: Touch detect on guitexture

Message par Ambrosios » 26 Fév 2011 15:51

Bonjour,

Je ne programme pas sur mobile par contre je peux surement te renseigner sur ton erreur.

UnityEngine.iPhoneInput.touches est obsolète (marche pour des versions antérieurs mais n'est plus à l'ordre du jour pour ta version). Il faut que tu utilises Input.touches à sa place.

Dans ton code il faut donc changer la ligne :

Code : Tout sélectionner

var touch: iPhoneTouch = iPhoneInput.touches[0]; 
Par :

Code : Tout sélectionner

var touch: iPhoneTouch = Input.touches[0]; 
A3G - WarGround
DevBlog

royalskunk
Messages : 163
Inscription : 30 Juin 2010 00:53

Re: Touch detect on guitexture

Message par royalskunk » 26 Fév 2011 16:56

merci pour ton aide sa ma mis sur la bonne piste...
il fallait juste enlever tous les " iphone" qui ne sont plus nécessaire.
function Update () {


if(Input.touchCount > 0 && on==true) {
var touch: Touch = Input.touches[0];

if(touch.phase == TouchPhase.Began && guiTexture.HitTest(touch.position)) {
Application.LoadLevel ("Vegas");
}
}

}

encore merci

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Touch detect on guitexture

Message par robo_info » 23 Juil 2011 12:48

Bonjour,

Je suis très intéressé pour ce sujet, en fait je suis débutante en unity 3d j'ai crée une personnage animé avec animeeple et je l'ai importer sur unity et j'ai créer des cubes au niveau de tête et au coeur de tel sorte quand je clique sur la tête une animation se déclenchera de même pour le coeur. j'ai réussi à le faire avec la fonction OnMouseDown() mais je me suis bloquée à l'exportation sur iphone.

Est ce que j’utilise la même fonction de touch de royalskunk sachant que j'ai pas utilisé GUI.
La version de unity que je l'ai est 3.1

Je vous bien remercie pour votre aide et votre conseil.

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Touch detect on guitexture

Message par giyomuSan » 23 Juil 2011 14:04

utilse des raycast qui parte de la camera.

tu recupere la coordonne du touch.
et tu utilose une fct du style screenpoint to raycast, ca te lancera un rayon de ta camera et ds la direction du touch ecran rapporter en coordonne 3d, ce que fais le mousedown d ailleur en fait

ensuite si le rayon entre en contact avec tes cube il sera detecter, comme un simple trigger

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Touch detect on guitexture

Message par robo_info » 23 Juil 2011 17:58

Merci beaucoup pour votre aide
je suis désolée pour le dérangement :oops: mais avez vous un exemple ou une documentation qui peut m'aider et claire

Ce que vous m'avez expliqué me semble flou car j'ai aucune aidé sur les raycast et la fonction screenpoint to raycast
même la méthode comment les utiliser car je suis très débutante en unity j'ai cherché partout dans les forums j'ai trouvé des réponses mais je ne comprend pas de quoi il s'agit

S'il vous plait vous pouvez m'aider et grannnnd merci.

robo_info
Messages : 40
Inscription : 19 Juil 2011 11:50

Re: Touch detect on guitexture

Message par robo_info » 26 Juil 2011 23:11

Bonjour

Je vous bien remercie pour votre conseil

en fait j'ai testé avec un cube si l 'on touche une simple rotation sera créer

function Update () {
for (var touch : Touch in Input.touches) {
if (touch.phase == TouchPhase.Began) {

var ray = Camera.main.ScreenPointToRay (touch.position);
if (Physics.Raycast (ray)) {

transform.Rotate(Vector3.up*(100.0*Time.deltaTime));
}
}
}
}

et j'ai attaché ce bout de code au cube.

quand je l'ai exécuté sur iphone Le problème c'est que quand je touche le cube n'importe quel objet qui se trouve sur la scène fait une rotation pareil malgré que le code et attaché au cube pas aux autres objets alors que je veux quand je clique sur un objet spécifique un évènement se déclenchera.

s'il vous plait vous pouvez m'aider à résoudre ce problème.Merci

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »