// Update is called once per frame void Update() { velocity_y += gravity * Time.deltaTime; transform.Translate(velocity_x, velocity_y, 0); objTrigger = GameObject.Find("FallObjOff").GetComponent <ObjectTrigger>(); if (objTrigger.isLevel1 == true) { risingWater = GameObject.Find("Rising Water"); } else { risingWater = GameObject.Find("Rising Water 2"); } //if (risingWater.active == true) //{ // if (transform.position.y < risingWater.transform.position.y - 2 * risingWater.transform.localScale.y) // Destroy(this.gameObject); //} if (transform.position.y < -500) { Destroy(this.gameObject); } }
public override void OnActivateStay(HedgehogController controller) { if (controller == null) { return; } var index = Controllers.IndexOf(controller); if (index < 0) { return; } ControllerProgress[index] += TravelSpeed / _cachedLength * Time.fixedDeltaTime; var walk = Physics2DUtility.Walk(_cachedPath, ControllerProgress[index], false) + (Vector2)(controller.transform.position - controller.Sensors.Center.position); Velocities[index] = (walk - (Vector2)controller.transform.position) / Time.fixedDeltaTime; controller.transform.position = new Vector3(walk.x, walk.y, controller.transform.position.z); if (ControllerProgress[index] > 1.0f) { ObjectTrigger.Deactivate(controller); } }
private void OnTriggerStay(Collider other) { if (other.CompareTag("Object")) { interactPanel.SetActive(true); } if (other.CompareTag("Object") && Input.GetKeyDown(interactButton)) { ObjectTrigger obj = other.gameObject.GetComponent <ObjectTrigger>(); gm.StartDialogue(obj.dialogue); if (obj.isKey) { obj.door.SetActive(false); other.gameObject.SetActive(false); } } if (other.CompareTag("Door") || other.CompareTag("Stair") && Input.GetKeyDown(interactButton) && gm.state == GameState.FreeRoam) { Door door = other.gameObject.GetComponent <Door>(); door.StartDialogue(); } if (other.CompareTag("Jalangkung") && Input.GetKeyDown(interactButton) && gm.state == GameState.FreeRoam) { Door door = other.gameObject.GetComponent <Door>(); door.JalangkungDialogue(); } }
/// <summary> /// Add a scratch event to the game if it is defined in the gameData /// </summary> /// <param name="scratchEvilAction"></param> public void AddScratchAction(EvilAction scratchEvilAction) { GameObject tempGo = new GameObject(); ObjectTrigger objTrigger = tempGo.AddComponent <ObjectTrigger>(); objTrigger.actionTrigger = scratchEvilAction; scratchActions.Add(objTrigger); }
/// <summary> /// Add a voice event to the game if it is defined in the gameData /// </summary> /// <param name="voiceEvilAction"></param> public void AddVoiceAction(EvilAction voiceEvilAction) { GameObject tempGo = new GameObject(); ObjectTrigger objTrigger = tempGo.AddComponent <ObjectTrigger>(); objTrigger.actionTrigger = voiceEvilAction; objTrigger.holdingTimeThreshold = .1f; objTrigger.triggerCompleteTime = 2f; objTrigger.isSolved = false; voiceActionObjs.Add(objTrigger); }
/// <summary> /// Handling user Push (Acceleration) /// </summary> /// <param name="shakeThreshold"></param> void OnUserPush(ThresholdLevel shakeThreshold) { Vector2 shakeLoc = gyroCam.pixelRect.center; GameObject hitObj = MobileInput.instance.CastRayHitFromCam(shakeLoc, gyroCam); ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj); if (objTrigger != null) { PlayAudio(AssetManager.instance.push); TryTriggerInteraction(objTrigger, TriggerTypes.push); } }
/// <summary> /// Handling onUser Touch /// </summary> /// <param name="tapPostiion"></param> void OnUserTouch(Vector2 tapPostiion) { GameObject hitObj = MobileInput.instance.CastRayHitFromCam(tapPostiion, gyroCam); levelAudioSource.Stop(); ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj); if (objTrigger != null && !hasUserSwiped) { PlayAudio(AssetManager.instance.touch); TryTriggerInteraction(objTrigger, TriggerTypes.touch); } hasUserSwiped = false; }
/// <summary> /// Try to trigger an object /// </summary> /// <param name="triggerObj"></param> /// <param name="triggerType"></param> /// <returns></returns> bool TryTriggerInteraction(ObjectTrigger triggerObj, TriggerTypes triggerType) { Debug.Log(triggerObj + "TriggerType: " + triggerType); if (triggerObj != null) { if (triggerObj.actionTrigger != null && triggerObj.actionTrigger.ActionType == triggerType.ToString()) { StartCoroutine(triggerObj.TriggerAction(CompleteAction)); } else if (attemptTime <= 0) { TriggerFailAttempt(); } return(true); } return(false); }
/// <summary> /// Handling user swipe /// </summary> /// <param name="touch"></param> void OnUserSwipe(Touch touch) { GameObject hitObj = MobileInput.instance.CastRayHitFromCam(touch.position, gyroCam); ObjectTrigger objTrigger = TryGetObjectTrigger(hitObj); if (objTrigger != null) { hasUserSwiped = true; PlayAudio(AssetManager.instance.swipe); Rigidbody hitRig = hitObj.GetComponent <Rigidbody>(); if (hitRig != null) { Vector3 force = Vector3.ClampMagnitude((gyroCam.transform.up * touch.deltaPosition.y + gyroCam.transform.right * touch.deltaPosition.x), 3); hitRig.AddForce(force, ForceMode.Impulse); } TryTriggerInteraction(objTrigger, TriggerTypes.swipe); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "HauntableObject") { objecttriggerscript = collision.gameObject.GetComponent <ObjectTrigger>(); if (objecttriggerscript.isTriggered) { if (Vector2.Distance(transform.position, objecttriggerscript.gameObject.transform.position) > 5f) { PersonScript.status = "investigate"; } if (Vector2.Distance(transform.position, objecttriggerscript.gameObject.transform.position) <= 5f) { PersonScript.status = "gtfo"; } } } Target = collision.gameObject.transform.position; }
// Update is called once per frame void Update() { objTrigger = GameObject.Find("FallObjOff").GetComponent <ObjectTrigger>(); if (objTrigger.isLevel1 == true) { risingWater = GameObject.Find("Rising Water"); } else { risingWater = GameObject.Find("Rising Water 2"); } if (FindObjectOfType <charChange>().p1 == true) { player = GameObject.Find("Man").GetComponent <Player>(); velocity = player.GetPlayerVelocity(); } else if (FindObjectOfType <charChange>().p2 == true) { player = GameObject.Find("Robot").GetComponent <Player>(); velocity = player.GetPlayerVelocity(); } if (velocity.x > 0) { StartSpawn = true; } if (StartSpawn == true) { currentTime -= Time.deltaTime; if (currentTime < 0) { SelectWave(); } } }
/// <summary> /// Initialize tasks from the json data /// </summary> void InitializeObjectTriggersOnRoomObjects() { var evilActions = GameState.instance.CurrentPerson.EvilAction; GameObject[] interactableGameObjects = GameObject.FindGameObjectsWithTag("EvilActionObject"); if (interactableGameObjects != null) { foreach (GameObject interactableGameObject in interactableGameObjects) { // every interactableGameObject has an ObjectTrigger script attached to it ObjectTrigger objectTrigger = interactableGameObject.GetComponent <ObjectTrigger>(); if (objectTrigger != null) { EvilAction matchingIdentifierEvilAction = evilActions.FirstOrDefault(b => b.Identifier.Equals(objectTrigger.EvilActionIdentifier)); if (matchingIdentifierEvilAction != null) { objectTrigger.actionTrigger = matchingIdentifierEvilAction; } } } } }
// Start is called before the first frame update public override void OnStart() { triggerscript = GetComponent <ObjectTrigger>(); }