Script qui n'arrive pas à accède a sa fonction sous Android

Toutes les questions sur le développement Mobile, y compris la partie script.
broumbroum
Messages : 4
Inscription : 11 Nov 2016 16:23

Script qui n'arrive pas à accède a sa fonction sous Android

Message par broumbroum » 02 Jan 2017 16:09

Bonjour j'ai créer un script qui marche sur l’Éditeur & sous Windows.
Mais le Script ne marche pas sur Android.

Script

Code : Tout sélectionner

import UnityEngine.Sprite;

public var Bloc : BlocYGO[];
public var Tt2d : Texture2D[];
public var PB : Pose_Bloc;

private var Str : String;
private var EDI : Edit;

function Start () {
    EDI = GetComponent(Edit);

}

function LateUpdate () {
GenereA(PB.Z,PB.Y,PB.X,EDI.BlocZ[PB.Z].BlocY[PB.Y].Bloc[PB.X]);
}
function GenereA (PZ : int, PY : int, PX : int, Str : String){
    if(Str == " "){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != null){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = null;}
    }else if(Str == "A"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "B"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "C"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "D"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "E"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "F"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "H"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "G"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "I"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "J"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "K"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "L"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[1], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[1], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "M"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect( 0, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect( 0, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "N"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect(96, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect(96, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "O"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "P"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect(96, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect(96, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "Q"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "R"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "S"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[2], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[2], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "T"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "U"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "V"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(64, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(64, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "W"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "X"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "Y"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "Z"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(64,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(64,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "a"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[3], Rect(96,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[3], Rect(96,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "b"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect( 0, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect( 0, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "c"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(32, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(32, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "d"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(64, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(64, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "e"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(96, 96, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(96, 96, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "f"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "g"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(32, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "h"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(64, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(64, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "i"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(96, 64, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(96, 64, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "j"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect( 0, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "k"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(32, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "l"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(64, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(64, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "m"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(96, 32, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "n"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect( 0,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "o"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(32,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "p"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(64,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(64,  0, 32, 32),Vector2(0.5,0.5), 32.0);}
    }else if(Str == "q"){if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[4], Rect(96,  0, 32, 32),Vector2(0.5,0.5), 32.0)){Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[4], Rect(96,  0, 32, 32),Vector2(0.5,0.5), 32.0);}


    }
}
et Voici le résulta quand je debug mon application sous Android
Image

Avatar de l’utilisateur
@RLG
Messages : 367
Inscription : 17 Jan 2015 00:13
Localisation : Rennes

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par @RLG » 02 Jan 2017 16:20

Salut,

1- Tu as essayé de mettre des logs pour savoir à quel endroit ça bloque?

2- Il y a beaucoup de "if", rendre ta fonction générique t'aiderait sans doute à y voir plus clair... certains modo n'aime pas quand il y a trop de "if" (je ne vise personne :mrgreen: )
Everything happens for a reason. Sometimes the reason is that you're stupid and make bad decisions.

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par simonj » 02 Jan 2017 16:27

La première erreur te dit que dans une égalité que tu test, tu as une valeur "null" et donc qu'il ne peut pas accéder à la valeur que tu lui demandes.

Pure hypothèse mais j'imagine que c'est dans un ".GetComponent(SpriteRenderer).sprite", s'il ne trouve pas le SpriteRenderer sur un objet, bah il ne pourra pas accéder à la valeur sprite et donc plantera. C'est le premier point.

Le deuxième point c'est pourquoi ça ne marche pas sur Android alors que sur l'éditeur c'est bon, j'imagine que c'est à cause du LateUpdate. Si ton Android est moins puissant que ton PC, peut être qu'il n'a pas le temps de charger tous les objets sur une seule frame et qu'il faut que tu attendes.

Par pitié, simplifie ton code... Y'a beaucoup de choses qui se répètes. Et quand ça se répète, on factorise et on fait des fonctions !

Avatar de l’utilisateur
ZeroKcm
Messages : 175
Inscription : 09 Juil 2013 21:16

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par ZeroKcm » 02 Jan 2017 17:00

Aie ça pique vraiment les yeux ce code...

Ce qui m'étonne, c'est que ça marche sur l'éditeur.
Tu devrais pouvoir le simplifier en quelques lignes ou du moins utiliser des fonctions.

Pour les Rect, essaye de trouver une logique, à mon avis avec un modulo, tu devrais réussir.
Pour le caractère, tu peux incrémenter un char, ça passe au char suivant.

Sinon, tu compares un component à un component que tu crée à la volée avec Sprite.Create... :/
Vu que le Sptite est une classe, je pense que ça ne marche pas : ça compare juste les refs.

Avant de chercher ce qui déconne sur Android, il faut absolument revoir ton code pour le simplifier.

Bon courage

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par zugsoft » 02 Jan 2017 17:12

Le plus important avant de savoir ou est ton probleme, serait de mettre au clair tes idées puis te coder simplement.
Il sera plus simple de comprendre ton erreur.
Si tu demandes aux autres de corriger tes erreurs, tu ne progresseras pas.
Moon RTS

broumbroum
Messages : 4
Inscription : 11 Nov 2016 16:23

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par broumbroum » 02 Jan 2017 17:17

J'ai test de mettre la fonction GenereA dans un Update et aussi dans un FixedUpdate et sa ne marche pas.

Dans la fonction GenereA
  • Je vérifie si le string et égale
    Puis je vérifie si le Sprite et différend sur le GameObject
    Si il est différend alors on change le Sprit

Code : Tout sélectionner

if(Str == "A"){
if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0)){
Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);}}

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par simonj » 02 Jan 2017 18:26

Code : Tout sélectionner

if(Str == "A"){
if(Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite != Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0)){
Bloc[PZ].Bloc[PY].Bloc[PX].GetComponent(SpriteRenderer).sprite = Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);}}
Ca peux se transformer en ...

Code : Tout sélectionner

function Check(strModel : String, str : String, pos : Vector3) : bool
{
	if(str.CompareTo(strModel) == 0)
	{
		var spriteRenderer = Bloc[pos.z].Bloc[pos.y].Bloc[pos.x].GetComponent(SpriteRenderer);
		var spriteCreated = Sprite.Create(Tt2d[0], Rect( 0, 64, 32, 32),Vector2(0.5,0.5), 32.0);
		
		if(spriteRenderer == null)
		{
			DebugLogError("Sprite Renderer is null");
		}
		else
		{
			if(spriteRenderer.sprite != spriteCreated)
			{
				spriteRenderer.sprite = spriteCreated;
				return true;
			}
		}
	}
	
	return false;
}
Et tu appelle ta fonction quand tu veux checker un bloc. Genre ...

Code : Tout sélectionner

Check("A", Str, new Vector3(PX, PY, PZ));
Après j'ai fait ça direct dans le forum donc j'ai peut être loupé des choses vu que je ne code pas en .js normalement... Mais tu vois l'idée ?

Edit : Même mieux ...

Code : Tout sélectionner

function GenereA (PZ : int, PY : int, PX : int, Str : String)
{
	if(Str == "A")
	{
		ReplaceIfNecessary(Str, new Vector3(PX, PY, PZ), new Vector4(0, 64, 32, 32), Tt2d[0]);
	}
	else if(Str == "B")
	{
		ReplaceIfNecessary(Str, new Vector3(PX, PY, PZ), new Vector4(0, 32, 32, 32), Tt2d[0]);
	}
	// Faire les autres cas (On peux encore optimiser assez facilement, mais ça seras déjà plus lisible)
}

// Return true if the sprite has been replaced
function ReplaceIfNecessary(pos : Vector3, rectTexture: Vector4, texture : Texture2D) : bool
{
	var spriteRenderer = Bloc[pos.z].Bloc[pos.y].Bloc[pos.x].GetComponent(SpriteRenderer);
	var spriteCreated = Sprite.Create(texture, Rect(rectTexture.x, rectTexture.y, rectTexture.z, rectTexture.w),Vector2(0.5,0.5), 32.0);
	
	if(spriteRenderer == null)
	{
		DebugLogError("Sprite Renderer is null");
	}
	else
	{
		if(spriteRenderer.sprite != spriteCreated)
		{
			spriteRenderer.sprite = spriteCreated;
			return true;
		}
	}
	
	return false;
}

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6219
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Script qui n'arrive pas à accède a sa fonction sous Android

Message par boubouk50 » 03 Jan 2017 13:20

Est-ce que la fonction Sprite.Create () est compatible Android?
Il me semble que cette fonction (en plus d'être très lourde) génère des erreurs sous Android. Vérifie.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

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