private void Awake() { renderer = GetComponentInChildren <MeshRenderer>(); rigidBody = GetComponent <Rigidbody>(); entrance = GetComponentInChildren <ShellEntrance>(); light = GetComponentInChildren <Light>(); entrance.Init(this); decorations = GetComponentsInChildren <PickupSlot>().ToList(); transform.localScale = new Vector3(size, size, size); pickupPrefab = Resources.Load <Pickup>("Pickups/Pickup"); StartCoroutine(PulseLight()); int i = 0; foreach (PickupSlot slot in decorations) { i++; if (i > decorations.Count / 2) { continue; } Pickup pickup = Instantiate(pickupPrefab, slot.transform.position, slot.transform.rotation); pickup.Init(DecorationType.Barny); pickup.OnAttachToShell(); AttachPickup(pickup); } }
private void OnTriggerEnter(Collider col) { if ((1 << col.gameObject.layer & ShellTriggerLayer) != 0) { Debug.Log("OnTrigger Enter"); isNearShell = true; nearestShell = col.GetComponent <ShellEntrance>(); } if ((1 << col.gameObject.layer & PickUpTriggerLayer) != 0 && nearestPickup == null) { nearestPickup = col.GetComponent <Pickup>(); } if ((1 << col.gameObject.layer & CrabTriggerLayer) != 0) { nearestCrab = col.GetComponent <Crab>(); } }
private void OnTriggerExit(Collider col) { if ((1 << col.gameObject.layer & ShellTriggerLayer) != 0) { Debug.Log("OnTrigger Exit"); isNearShell = false; nearestShell = null; } if ((1 << col.gameObject.layer & PickUpTriggerLayer) != 0) { nearestPickup = null; } if ((1 << col.gameObject.layer & CrabTriggerLayer) != 0) { if (nearestCrab != null) { nearestCrab = null; } } }