[RÉSOLU] Project Horror

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

[RÉSOLU] Project Horror

Message par Scurreo » 05 Déc 2017 18:58

Bonjour,

Je suis actuellement en train de développer un petit jeu d'horreur afin de m'entraîner et m'améliorer avec Unity et C#. Il me manque à créer l'IA de mon ennemi, les feuilles à trouver sur la map et un jumpscare.
Je souhaite demander un petit coup de main d'une personne pour le jumpscare car même avec les cours, les tutos trouvés je n'est toujours pas réussi.

Mon but est de faire sauter ceci: https://www.assetstore.unity3d.com/en/#!/content/70609
sur le joeur en passant une porte en jouant un son puis plus rien.

J'espère avoir était assez clair sur mon problème.

Merci d'avance à tous et à toutes
Dernière édition par Scurreo le 08 Déc 2017 15:59, édité 1 fois.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Project Horror

Message par Max » 05 Déc 2017 19:32

Bonjour Scurreo,
Scurreo a écrit :
05 Déc 2017 18:58
Mon but est de faire sauter ceci: https://www.assetstore.unity3d.com/en/#!/content/70609
sur le joeur en passant une porte en jouant un son puis plus rien.
Tu décris la situation de jeu, mais pas ce qui te pose problème sur le plan technique:
Est-ce dans la détection de ton joueur lors du passage en un point précis (comme une porte) ? Est-ce le déclenchement d'un son ? Est-ce le déplacement et le bond du type tout fripé ? Est-ce le déclenchement de la bonne animation lors du saut ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

Re: Project Horror

Message par Scurreo » 06 Déc 2017 10:08

Oui, excuse moi j'ai complètement zapé. Dans ce cas je te réponds, j'ai absolument rien qui ne marche ni le son, ni l'animation, ni mon Crawler de visible lorsque que je passe le cube qui me sert de déclenchement

Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

Re: Project Horror

Message par Scurreo » 06 Déc 2017 10:40

Mais après j'ai un problème sur le début de mon IA, mon ennemi est en face de moi et lorsque je rentre dans la zone pour qu'il me suive du regard j'ai un décalage avec lui de 90 degrès environ comment je pourrais y remédier ?
Merci

Code : Tout sélectionner

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

public class Chase : MonoBehaviour
{
    public Transform player;

	// Use this for initialization
	void Start ()
    {
		
	}
	
	// Update is called once per frame
	void Update ()
    {
		if(Vector3.Distance(player.position, this.transform.position) < 10)
        {
            Vector3 direction = player.position - this.transform.position;
            this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f);
        }
	}
}

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

Re: Project Horror

Message par boubouk50 » 06 Déc 2017 10:43

Scurreo a écrit :
06 Déc 2017 10:08
j'ai absolument rien qui ne marche ni le son, ni l'animation, ni mon Crawler de visible lorsque que je passe le cube qui me sert de déclenchement
Ça ne répond pas à la question du tout. N'avoir rien qui marche peut provenir du fait que tu n'aies rien fait comme d'un mauvais code, comme d'une mauvaise configuration du Trigger, etc.
Soit plus précis stp. Tu es dans la section code, il nous faut ton code au minimum.

Merci aussi d'exposer un seul problème à la fois...

S'il est orienté à 90° c'ets parce que son forward n'est pas en face.
Crée un gameObject Empty, mets ton monstre enfant de celui-ci tourné à 90°. Ensuite, pour tout ce qui est déplacement tu utilises le parent Empty(donc ce script).
"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

Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

Re: Project Horror

Message par Scurreo » 06 Déc 2017 15:10

Voici mon script:

Code : Tout sélectionner

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

public class Jumpscare : MonoBehaviour
{
    public GameObject jumpscareObject;

	// Use this for initialization
	void Start ()
    {
        jumpscareObject.SetActive(false);
	}

    void OnTriggerEnter(Collider player)
    {
       if(player.tag == "Player")
        {
            jumpscareObject.SetActive(true);
            StartCoroutine(DestroyObject());
        }
    }

    IEnumerator DestroyObject()
    {
        yield return new WaitForSeconds(1.5f);
        Destroy(jumpscareObject);
        Destroy(gameObject);
    }
}
Mon cube sur le box collider à la propriété Is Trigger de coché, mesh renderer de décoché et mon jumpscare object j'ai mi mon ennemi

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

Re: Project Horror

Message par boubouk50 » 06 Déc 2017 15:43

-Ton "player" a-t-il un rigidBody?
- Est-il tagué "Player"?
- Ton code ne fait qu'activer ton JumpScare pendant 1.5 secondes, je ne vois pas de son, ni d'animation jouées.

Juste un Debug.Log () pour avoir un peu plus d'info sur ce qui ne va pas:

Code : Tout sélectionner

void OnTriggerEnter(Collider player)
    {
    Debug.Log (player.tag); //ICI en console, le nom du tag apparaîtra, il faut que ce soit le même que ta condition donc "Player"
       if(player.tag == "Player")
        {
            jumpscareObject.SetActive(true);
            //Est-ce que le son et l'animation sont jouées à l'activation? Sinon les jouer ici.
            StartCoroutine(DestroyObject());
        }
    }
S'il n'y a rien en console c'est que la configuration de ton trigger/rigidbody n'est pas bonne
"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

Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

Re: Project Horror

Message par Scurreo » 06 Déc 2017 16:27

Les animations et les sons sont direct sur mon objet et non le cube. Je viens en attendant de corriger l'erreur mon personnage n'était pas tagué "Player" problème corriger.
Je pose ici mon second problème que je suis en train d'essayer de corriger également.

J'ai mon ennemi qui est sur la carte, pour le moment il ne se balade pas seul sur la map (ce que je souhaite faire par la suite, je prends toutes les infos si tu as), lorsque qu'il aperçois mon jouer il me poursuit et à ce moment précis je souhaite déclencher un audio source qui est sur l'ennemi, j'ai essayer avec ce code mais mon audio se lance tous le temps puis bug quand je suis devant mon ennemi.

Code : Tout sélectionner

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

public class Chase : MonoBehaviour
{
    public Transform player;
    static Animator anim;

	// Use this for initialization
	void Start ()
    {
        anim = GetComponent<Animator>();
	}
	
	// Update is called once per frame
	void Update ()
    {
        Vector3 direction = player.position - this.transform.position;
        float angle = Vector3.Angle(direction, this.transform.forward);
		if(Vector3.Distance(player.position, this.transform.position) < 15 && angle < 90)
        {
            AudioSource audio = GetComponent<AudioSource>();
            audio.Play();
            direction.y = 0;

            this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f);

            anim.SetBool("isIdle", false);
            if(direction.magnitude > 5)
            {
                this.transform.Translate(0, 0, 0.5f);
                anim.SetBool("isRun", true);
                anim.SetBool("isAttacking", false);
            }
            else
            {
                anim.SetBool("isAttacking", true);
                anim.SetBool("isRun", false);
            }
        }
        else
        {
            anim.SetBool("isIdle", true);
            anim.SetBool("isRun", false);
            anim.SetBool("isAttacking", false);
        }
	}
}
Merci

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

Re: Project Horror

Message par boubouk50 » 06 Déc 2017 16:33

Il faut que ton son ne soit pas automatiquement joué au départ déjà (ça c'est dans les propriétés du Component dans l'Inspector) et ensuite, ben il faut simplement penser à le couper...
donc un petit else de ta condition avec:

Code : Tout sélectionner

{
 	//Stop the audio
           if (audio.isPlaying)
           	audio.Stop();
}
"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

Scurreo
Messages : 21
Inscription : 01 Déc 2017 18:14

Re: Project Horror

Message par Scurreo » 06 Déc 2017 17:03

Ah oui exact je l'avais oublié il me semblait l'avoir mise cette ligne désolé. Par contre aurais-tu une idée du pourquoi le son saccade énormément ?

Répondre

Revenir vers « Scripting »