private void OnTriggerEnter(Collider other) { if (other.GetComponent <Player>()) { EnterZone?.Invoke(other.gameObject); } }
// Use this for initialization void Start() { currentBouns = CALC_BONUS_STATE.ADDTREE; //임시 RandomGenerate(); getCubesItem(); answerCube.transform.GetChild(0).GetComponent <TextMeshPro>().SetText(finalAnswer.ToString()); enterZone = transform.Find("Entrance_Zone").gameObject.GetComponent <EnterZone>(); boomPlane = transform.Find("BoomPlane").gameObject.GetComponent <BoomPlaneManager>(); mainCamera = Camera.main.GetComponent <CameraControl>(); wallControl = transform.Find("Wall").gameObject.GetComponent <WallActive>(); wallControl.SetActive(false); EnterZone = transform.Find("Entrance_Zone").gameObject; }
private void EvaluateEntityState(Entity entity) { var state = _entityStates[entity]; // Check if entity has moved if (entity.Position != state.Position) { var isZone = IsPositionZone(entity.Position, out var zone); //EntityMoved?.Invoke(this, new Entity.EntityMovedEventArgs(entity, state.Position)); if (!state.IsDisabled) { // Still in zone if (state.IsInZone && isZone) { // Same zone -- trigger move event if (state.Zone == zone) { OnEntityMoveZone(_screen, zone, entity, entity.Position, state.Position); //MoveZone?.Invoke(this, new ZoneMoveEventArgs(_screen, zone, entity, entity.Position, state.Position)); } // New zone -- trigger exit and enter event. else { OnEntityExitZone(_screen, state.Zone, entity, entity.Position); OnEntityEnterZone(_screen, zone, entity, entity.Position); ExitZone?.Invoke(this, new ZoneEventArgs(_screen, state.Zone, entity, state.Position)); EnterZone?.Invoke(this, new ZoneEventArgs(_screen, zone, entity, entity.Position)); state.Zone = zone; } } // Left zone else if (state.IsInZone) { OnEntityExitZone(_screen, state.Zone, entity, entity.Position); ExitZone?.Invoke(this, new ZoneEventArgs(_screen, state.Zone, entity, state.Position)); state.IsInZone = false; state.Zone = null; } // Entered zone else if (isZone) { OnEntityEnterZone(_screen, zone, entity, entity.Position); EnterZone?.Invoke(this, new ZoneEventArgs(_screen, zone, entity, entity.Position)); state.IsInZone = true; state.Zone = zone; } //// Still in hotspot //if (state.IsInHotspot && isHotspot) //{ // OnEntityExitHotspot(_screen, state.Hotspot, entity, state.Position); // OnEntityEnterHotspot(_screen, spot, entity, entity.Position); // ExitHotspot?.Invoke(this, new HotspotEventArgs(_screen, state.Hotspot, entity, state.Position)); // EnterHotspot?.Invoke(this, new HotspotEventArgs(_screen, spot, entity, entity.Position)); // state.Hotspot = spot; //} //// Left hotspot //else if (state.IsInHotspot) //{ // OnEntityExitHotspot(_screen, state.Hotspot, entity, state.Position); // ExitHotspot?.Invoke(this, new HotspotEventArgs(_screen, state.Hotspot, entity, state.Position)); // state.IsInHotspot = false; // state.Hotspot = null; //} //else if (isHotspot) //{ // OnEntityEnterHotspot(_screen, spot, entity, entity.Position); // EnterHotspot?.Invoke(this, new HotspotEventArgs(_screen, spot, entity, entity.Position)); // state.IsInHotspot = true; // state.Hotspot = spot; //} } RemoveEntityPositionCollection(entity, state.Position); state.Position = entity.Position; UpdateEntityPositionCollection(entity); } }