-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplatecolider.cs
57 lines (49 loc) · 1.85 KB
/
platecolider.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class platecolider : MonoBehaviour
{
public List<Rigidbody> objectsInTrigger = new List<Rigidbody>();
void OnTriggerEnter(Collider other)
{
// Récupère le Rigidbody de l'objet entrant
Rigidbody rb = other.GetComponent<Rigidbody>();
// Vérifie si l'objet entrant a un Rigidbody
if (rb != null && !objectsInTrigger.Contains(rb) && rb.gameObject.CompareTag("ingredient"))
{
cuisson_ingredient ingredientScript = rb.gameObject.GetComponent<cuisson_ingredient>();
if ( !ingredientScript.attached )
{
// Ajoute l'objet à la liste
objectsInTrigger.Add(rb);
}
}
}
void OnTriggerExit(Collider other)
{
// Récupère le Rigidbody de l'objet sortant
Rigidbody rb = other.GetComponent<Rigidbody>();
// Vérifie si l'objet sortant est dans la liste
if (rb != null && objectsInTrigger.Contains(rb))
{
// Supprime l'objet de la liste
objectsInTrigger.Remove(rb);
}
}
public void attacheItem()
{
foreach (Rigidbody rb in objectsInTrigger)
{
// Enlève la gravité et passe en kinematic
rb.useGravity = false;
rb.isKinematic = true;
rb.gameObject.transform.SetParent(this.gameObject.transform);
cuisson_ingredient ingredientScript = rb.gameObject.GetComponent<cuisson_ingredient>();
ingredientScript.attached = true;
// mieux vaux prévoir ...
ingredientScript.inHand=false;
ingredientScript.onFire=false;
ingredientScript.StopCooking();
}
}
}