CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • Black Friday
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : J'aide les gens dans Unity

DébutPage précedente
«1  ... 125126127128129130131132133134135  ... 180»
Page suivanteFin
TheRealMarco TheRealMarco
MP
Niveau 10
20 juin 2017 à 13:01:44

J'ai fais un petit script, que tu attaches au projectile. Il faut que tu appelles la fonction Init quand tu le créé et que tu lui passe le GameObject du player en paramètre.

using UnityEngine;

public class Balle : MonoBehaviour
{
    private GameObject player;
    private Rigidbody rg;

    public float force = 0.5f;

    Quaternion rotation;
    Vector3 radius = new Vector3(5,0,0);
    float currentRotation = 0.0f;

    public void Init(GameObject player)
    {
        this.player = player;
        this.rg = GetComponent<Rigidbody>();

        currentRotation = 180;
    }

    void FixedUpdate()
    {
        currentRotation += (force * Time.fixedDeltaTime * 100);
        rotation.eulerAngles = new Vector3(0, currentRotation, 0);
        transform.position = (rotation * radius) + radius;
    }
}
Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 11:26:29

Merci, sa ma l'air de fonctionner, sauf que quand j’appuie sur "e" le boomerangs spawn bien mais il reste sur place, puis disparait, ou bien si je ne définie pas moi mime le gameobject player il spawn, et fait des "aller retour" puis disparaît je précise que de base le script "tire" et accrocher a un gameObject "Eject" luis mème enfant du player et qu'il a une force de 1000 (si je met moins il est beaucoup trop long)

Message édité le 21 juin 2017 à 11:29:24 par Kira__3
TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 12:22:41

Il faut que le GameObject qui est le script Balle est un Rigidbody (et pas un rigibody2D!), il faut que celui que le script qui initialise le projectil, appele la fonction Init() de la balle.
Des allers retours rond ?

Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 17:15:05

de toute façon je n'ai pas de truc "2d" dans mon projet, pour une raison obscure unity "pense" que mon jeu est en 3D ! je vais pas le contredire....:hap:

donc c'est bien :

GetComponent<Balle >().Init(); 

que je dois mettre dans mon script "tire" (qui permet d'instancier la balle )

et sinon vue qu'une vidéo vaut mille mots voici se que ça me fais

https://www.youtube.com/watch?v=AlW4HtI0xC0&feature=youtu.be

au début de la vidéo, la variable "force" de balle est a 1, ensuite je la passe a 1000

la variable "force" de tire, est elle toujours a 1000

et a chaque fois que tu vois ma perso lever son bras c'est que j'appuie sur "e"

Message édité le 21 juin 2017 à 17:16:23 par Kira__3
Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 17:25:19

oups ! c'est plutôt :

Boomerang.GetComponent<Balle>().Init();

Non ?

TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 18:26:34

Le 21 juin 2017 à 17:25:19 Kira__3 a écrit :
oups ! c'est plutôt :

Boomerang.GetComponent<Balle>().Init();

Non ?

Oui, et vu que j'ai indiqué qu'il fallait donner le player en paramètre, c'est même:

GameObject Bullet = Instantiate(Projectil, transform.position, Quaternion.identity) as GameObject;
Bullet.GetComponent<Balle>().Init(this.gameObject);

qui doit être après le if de ton player, quand il initialise le boomerang.

Je pensais que tu cherchais cet effet car c'était en vue de dessus. Mais en 2d comme ça, pourquoi ne pas simplement faire avancer le boomerang un petit peu, et le faire apparaitre derrière toi ensuite ?
Ça donnerait l'illusion que le boomerang a fait le tour de la zone ?
Tu n'as clairement pas besoin de faire réellement un tour sur l'axe x et z, il suffit de donner l'illusion pour ce genre de choses...

Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 19:17:10

Le problème c'est que la zone est beaucoup plus gande que se que tu a vue la perso peu ce déplacer a gauche et a droite sa n’irais donc pas

TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 19:24:02

Il faudrait voir avec la vue scène pour voir en 3D où va le boomerang quand tu le lances.

Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 19:51:02

Le boomerang suit l'axe X, de toute façon j'ai bloquer l'axe y et z dans le rigidBody
Ah oui effectivement avec ton script activer il tourne au tour de ma perso

Message édité le 21 juin 2017 à 19:52:03 par Kira__3
TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 20:07:17

Tu l'aurais précisé j'aurai passé nettement moins de temps, c'était beaucoup plus simple en 2D comme ça.

Ah oui effectivement avec ton script activer il tourne au tour de ma perso

Donc, c'est bon ?

Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 20:15:17

Vraiment désolée ! :desole: :desole: :desole:

Et nop sa ne marche pas, il tourne au tour de l'axe "Y" moi je veux qu'il parte en en suivant l'axe "X" pendant une seconde (ça c'est bon) et après qu'il reparte en direction de la perso

TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 21:19:35

Tu peux te servir de la fonction Mathf.PingPong(), qui permet de faire varier un float entre 0 et un maximum (et quand tu dépasse le maximum, ça revient jusqu'à 0 pas à pas.

using UnityEngine;

public class Balle : MonoBehaviour
{
    private GameObject player;

    public float force = 0.5f; // Vitesse de déplacement

    public int maxDist = 2; // Éloignement max du lanceur
    private float startPosX;
    private float startTime;

    public void Init(GameObject player)
    {
        this.player = player;
        this.startPosX = transform.position.x;
        this.startTime = Time.time;
    }

    void FixedUpdate()
    {
        float newXPos = Mathf.PingPong((Time.time - startTime + startPosX) + force * Time.fixedDeltaTime, maxDist + startPosX);
        transform.position = new Vector3(newXPos, transform.position.y, transform.position.z);
    }
}

Aussi quand à cause des rigidbody le boomerang était décalé dès qu'il s’initialise sur le personnage, alors il faut que tu le décale sur l'axe de la moitié de la taille du sprite du joueur. (J'ai décalé de 1 par défaut) :

if (Input.GetKeyDown(KeyCode.E) && !isBoomerangThrown)
{
            GameObject Bullet = Instantiate(Projectil, new Vector3('''transform.position.x+1''', transform.position.y, transform.position.z), Quaternion.identity) as GameObject;
            Bullet.GetComponent<Balle>().Init(this.gameObject);
            isBoomerangThrown = true;
}
Kira__3 Kira__3
MP
Niveau 9
21 juin 2017 à 21:54:32

Merci, ont y est presque !

j'ai ajouter ça a la fonction Update de tire:

void Update()
    {
        
        if (Input.GetKeyDown(KeyCode.E) && !isBoomerangThrown)

        {

            GameObject Bullet = Instantiate(Projectil, new Vector3('''transform.position.x+1''', transform.position.y, transform.position.z), Quaternion.identity) as GameObject;
            Bullet.GetComponent<Balle>().Init(this.gameObject);
            Bullet.GetComponent<Rigidbody>().velocity = GameObject.Find("Player").GetComponent<PlayerController>().TireDirection * Force * Time.deltaTime;
            isBoomerangThrown = true;


            Invoke("DestroyBoomerang", 1f);
           
 
            
            
            
        }


    }

c'est se que tu ma donner mais j'ai 5 erreur a la ligne

GameObject Bullet = Instantiate(Projectil, new Vector3('''transform.position.x+1''', transform.position.y, transform.position.z), Quaternion.identity) as GameObject;

sa dit:

  • Assets/Player/Tire.cs(23,68): error CS1011: Empty character literal
  • Assets/Player/Tire.cs(23,70): error CS1012: Too many characters in character literal
  • Assets/Player/Tire.cs(23,92): error CS1525: Unexpected symbol `t'
  • Assets/Player/Tire.cs(23,94): error CS1011: Empty character literal
  • Assets/Player/Tire.cs(23,152): error CS1525: Unexpected symbol `.', expecting `)', `,', `;', or `='

Dans le script Vector3(' ' ' transform.position.x+1' ' ' est souligner en rouge et sa dit "Vector3 ne contient pas de constructeur qui acceptent les argument 5 "

TheRealMarco TheRealMarco
MP
Niveau 10
21 juin 2017 à 22:41:41

Hahaha new Vector3('''transform.position.x+1'''

J'avais rajouté des ''' pour que ça soit en gras car c'est l'élément que je t'expliquais au dessus. Mais quand on met le truc pour le gras dans les balises code, il affiche les tirets au lieu du gras :p

UnityCoder UnityCoder
MP
Niveau 6
22 juin 2017 à 00:06:12

Bonjour,
La problématique de l'erreur vient du copier coller sans compréhension du code donné en exemple.
Il serait temps aux Beginers de visualiser et d'appliquer les différents Tutos du site Unity, autrement à ce rythme là, on va devoir écrire le programme pour les autres sans y être vraiment interessé,
C'était juste un petit coups de gueule....
En // n'oubliez pas de remercier TheRealMarco pour ses réponses et son dévouement à vous aider.

Kira__3 Kira__3
MP
Niveau 9
22 juin 2017 à 15:40:28

Merci mais je suis une adulte, pas besoin de m'apprendre les bases de la politesse, bien sur que je vais lui dire merci, je lui est déjà dit 3 fois en plus ! ensuite j'ai regarder les tutos,surtout de "tuto unity fr" et "unity pour les nuls" mais il n'y a pas encore de tuto
"How to create a 2D game where the heroine shoots pirate with a boomerange"
je ne fais pas du bête copier coller car j’essaie de comprendre le script (par exemple je ne connaissais pas FixedUpdate) et j'ai donc rechercher sur le net... Mais c'est vrais qu'un transform.position entre des ' ' ' ' ' ' sa aurais du me choquée, désolée de ne pas l'avoir vue.

Bisou

TheRealMarco
Merci (et de quatre :hap:) pour l'aide, le script fonctionne !!!! :coeur: :fete: j'ajouterais ton noms au crédit du jeu si cela ne te dérange pas

Pseudo supprimé
Niveau 2
22 juin 2017 à 21:24:02

Bonjour, je viens d'avoir un bug commun qui semble réparable en chageant les settings moi voilà :
"J'ai un point light et un cube par exemple, je veux que le point light et le cube soient fixes."
Jusqu'ici OK. Cependant
"L'ombre émise par le point light, que ce soit en hard shadow ou soft shadow, se pixelise après une certaine distance. J'ai essayé de trifouiller dans les players settings, les quality et graphix setting, mais rien ne change! "

Voilà. Vous avez le problème, j'attend la solution.

Solution possible (pas encore testée au moment où j'écris) : changer le scale du point light pourrais-t-il augmenter la distance d'éclairage avant que l'ombre ne se pixelise :/?

TheRealMarco TheRealMarco
MP
Niveau 10
24 juin 2017 à 13:14:20

Vous engueulez pas, c'est dommage.

De rien Kira, ça me dérange pas.

papoundou papoundou
MP
Niveau 7
24 juin 2017 à 13:33:59

Bonjour les amis !

J'ai réalisé un runner 3D sur unity.

Là j'aimerais ajouter un niveau qui se joue en rhytme avec la musique. Un peu a la gémetrie dash, c'est à dire que quand on entend un "boom" dans la musique, c'est aussi qu'il y a un obstacle dans le jeu et que le joueur doit sauter.

Mais du coup comment créer les obstacles en fonction de la musique et synchroniser le tout svp ?

Pour le moment ce que je fais c'est que je lance une partie avec un petit script qui fait que quand j'appuie sur "p", ca place un marqueur et a la fin je recupere les coordonnées des marqueurs pour placer un obstacle et je m'arrange pour que ca coordonne avec la musique. Mais ca peut pauser probleme si on a une chute de quelque fps, rien n'est synchro après...

TheRealMarco TheRealMarco
MP
Niveau 10
24 juin 2017 à 13:49:52

http://answers.unity3d.com/questions/802319/loop-getspectrumdata-through-a-song.html
Tu utilises GetSpectrumData. Dans le lien ci-dessus, l'auteur explique qu'il mets la musique une première fois en muet, 3 secondes en avance, comme ça, il peut faire apparaitre les objets 3 secondes en avance pour que le moment où l'utilisateur touche soit syncrhonisé avec la musique qu'il entend.

DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment