alors pour le titre, je ne savais pas trop quoi mettre mais voici ma question
j'ai réalisé un script assez simple qui ouvre une porte lorsqu’on rentre dans une zone
certain reglage sont accessible de l'interface comme la vitesse ou l'angle d'ouverture
jusque là rien de bien spécial
ces options sont accessible de ma zone de trigger ( une simple boxe qui gère la zone d'ouverture de la porte )
ça fonctionne bien sur ma porte
donc je duplique ma porte
et utilise toujours le même scripte mais avec des variations au niveau de mon trigger différent pour chaque porte
et là ça semble déconné
donc ma question
es ce que je mis prends mal quelques pars et je peux gardé un même script pour toutes mes portes
ou dois je faire un script différents avec le même code mais pour chaque porte ?
voici le script:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Script_R0_Porte_WC : MonoBehaviour
{
// public GameObject PorteG;
public GameObject PorteD;
public bool OuverturePorte = false;
public bool PorteOuverte = false;
public bool Teste = false;
public int CurAngle = 0;
public int Angle = 50;
public float Speed = 3.5f;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (OuverturePorte == true)
{
if (CurAngle < Angle)
{
CurAngle++;
// PorteG.transform.Rotate(Vector3.forward, CurAngle * Speed * Time.deltaTime);
PorteD.transform.Rotate(Vector3.forward, CurAngle * Speed * Time.deltaTime);
if (CurAngle >= Angle)
{
PorteOuverte = true;
}
}
}
if (OuverturePorte == false && PorteOuverte == true)
{
if (CurAngle > 0)
{
CurAngle--;
// PorteG.transform.Rotate(-Vector3.forward, CurAngle * Speed * Time.deltaTime);
PorteD.transform.Rotate(-Vector3.forward, CurAngle * Speed * Time.deltaTime);
if (CurAngle == 0)
{
PorteOuverte = false;
}
}
if (OuverturePorte == false && PorteOuverte == false)
{
// PorteG.transform.Rotate(-Vector3.forward, CurAngle);
// PorteD.transform.Rotate(Vector3.forward, CurAngle);
//PorteD.transform.Rotate(Vector3.forward ,CurAngle);
PorteD.transform.rotation = Quaternion.FromToRotation(-Vector3.up, transform.forward);
PorteOuverte = false;
Teste = true;
}
}
}
void OnTriggerEnter(Collider Object)
{
if (Object.gameObject.tag == "Player")
{
OuverturePorte = true;
}
}
void OnTriggerExit(Collider Object)
{
if (Object.gameObject.tag == "Player")
{
OuverturePorte = false;
}
}
}
Merci
Fred