void OnTriggerEnter(Collider other) { other.gameObject.SendMessage("ObstacleTriggerEnter", gameObject.name, SendMessageOptions.DontRequireReceiver); if (other.name.Contains("Character")) { PlayerKinematicBehaviour pk = other.gameObject.GetComponent <PlayerKinematicBehaviour>(); if (pk.InputEnabled) { generalSounds.SendMessage("PlayGeneralSound", GeneralSoundsManager.GeneralSounds.static_obstacle); } } }
void OnTriggerEnter(Collider other) { if (isEnterActive && other.name.Contains("Character")) { isExitActive = true; isEnterActive = false; other.gameObject.SendMessage("ObstacleTriggerEnter", name, SendMessageOptions.DontRequireReceiver); if (/*soundEnabled && */ other.name.Contains("Character")) { PlayerKinematicBehaviour pk = other.gameObject.GetComponent <PlayerKinematicBehaviour>(); if (pk.InputEnabled) { generalSounds.SendMessage("PlayGeneralSound", GeneralSoundsManager.GeneralSounds.static_obstacle); } } } }
void Update() { string target = ""; if (gameplayManager.Gameplay == GameplayManager.GameplayType.Navigation) { if (null != gameplayManager.CurrentTarget) { target = gameplayManager.CurrentTarget.type.ToString(); } } //chack passing player if (null != gameplayManager.Character) { Vector3 playerPos = gameplayManager.Character.transform.position; //if ((playerPos - transform.position).magnitude < 9.0f) //if (currentToken == gameplayManager.Character.GetComponent<PlayerKinematicBehaviour>().getto if (gameplayManager.Character.GetComponent <PlayerKinematicBehaviour>().CurrentTokenHit != null) { if (gameplayManager.Character.GetComponent <PlayerKinematicBehaviour>().CurrentTokenHit.token == currentToken) { Vector3 localCharacterPosition = transform.InverseTransformPoint(playerPos); isPassingPlayer = (Mathf.Abs(localCharacterPosition.x) < 1.0f); if (isPassingPlayer) { if (isLastPassingPlayer != isPassingPlayer) { isLastPassingPlayer = isPassingPlayer; } if (!playerHit) { playerHit = gameplayManager.Character.GetComponent <PlayerKinematicBehaviour>().Collided; } } else { if (isLastPassingPlayer != isPassingPlayer) { if (!playerHit) { gameplayManager.ObstaclePassedCounterForTarget++; gameplayManager.ObstaclePassedCounter++; gameplayManager.TotalObstaclePassedCounter++; TrackingManager.Instance.LogEntry(TrackingManager.Command.Event, target, playerPos, "passed_obs", name); gameplayManager.SendMessage("ObstacleAvoided", 1); generalSounds.SendMessage("PlayGeneralSound", GeneralSoundsManager.GeneralSounds.obst_Passed); } playerHit = false; isLastPassingPlayer = isPassingPlayer; } } } } } if (isAnimated) { if (isActive) { if (null != gameplayManager.Character) { Vector3 playerPos = gameplayManager.Character.transform.position; Vector3 playerFw = gameplayManager.Character.transform.forward; Vector3 localCharacterPosition = transform.InverseTransformPoint(playerPos); if (Mathf.Abs(localCharacterPosition.x) < activationDistance) // && localCharacterPosition.z > -1 && localCharacterPosition.z < 10) { bool start = false; if (gameplayManager.Level == 0) { start = (localCharacterPosition.z < 1 && localCharacterPosition.z > -10); } else { start = (localCharacterPosition.z > -1 && localCharacterPosition.z < 10); } if (start) { isActive = false; //StartAnimation(); if (null != animChild) { StartMoveTo(playerPos + playerFw * Random.Range(2.0f, 4.0f)); if (null != TrackingManager.Instance) { TrackingManager.Instance.LogEntry(TrackingManager.Command.Event, target, playerPos, "move_obs", name); } } } } } } UpdateMoveTo(); /*if (obstacleAnimation.Count > 0) * { * foreach (Animation anim in obstacleAnimation) * { * if (anim.isPlaying) * { * float longitudinal, trasversal; * currentToken.WorldToToken(anim.transform.GetChild(0).position, out longitudinal, out trasversal); * * if (trasversal <= stopTrasversal) * StopAnimation(); * } * } * }*/ } }