public void ArrowColliderEnterCallback(Collider collider, float attackPower) { if ((SlasheonUtility.IsLayerNameMatch(collider.gameObject, "Enemy"))) { MissionActor hitActor = collider.gameObject.GetComponent <MissionActor>(); hitActor.Damage(attackPower); _playerController.InstanceArrowDamageEffect(collider); } }
public void ExitColliderEnterEvent(Collider other, StageExitCollider script) { if (SlasheonUtility.IsLayerNameMatch(other.gameObject, "Player")) { switch (script.StageExitType) { case StageExitType.FieldChange: MissionSceneManager.Instance.ChangeStage(script.TargetKey); break; case StageExitType.ToHome: SceneControllManager.Instance.ChangeSceneAsync("HomeScene", true, true, true); break; case StageExitType.ExitMission: SceneControllManager.Instance.ChangeSceneAsync("HomeScene", true, true, true); break; default: break; } } }
public void SlashColliderEnterCallback(Collider collider) { if (_playerController.PlayerState.stamina < _playerController.PlayerState.consumptionStaminaSlashHit) { _playerController.SlashCollider.RemoveCollider(); return; } if ((SlasheonUtility.IsLayerNameMatch(collider.gameObject, "Enemy"))) { MissionActor hitActor = collider.gameObject.GetComponent <MissionActor>(); //一度の斬撃で複数回ダメージ判定しないように調整 int hitedCount = slashHitEnemyList.Where(x => x.transform.GetInstanceID() == hitActor.transform.GetInstanceID()).Count(); if (hitedCount == 0) { hitActor.Damage(_playerController.ActorState.attack); _playerController.InstanceSlashDamageEffect(collider, InputManager.Instance.GetTouchPosition(slashTouchID)); slashHitEnemyList.Add(hitActor); UpdateStamina(_playerController.PlayerState.consumptionStaminaSlashHit); } } }
private Vector3 TouchActionOnField() { int touchID = InputManager.Instance.GetAnyTouchBeginID(); if (touchID != -1) { if (!InputManager.Instance.IsUITouch(touchID)) { moveTouchID = touchID; } } if (moveTouchID != -1) { if (!_playerController.PlayerRotation.isRotationMoving) { if (InputManager.Instance.IsTouchEnd(moveTouchID)) { Vector3 touchPosition = InputManager.Instance.GetTouchPosition(moveTouchID); Ray ray = Camera.main.ScreenPointToRay(touchPosition); RaycastHit hit = new RaycastHit(); //Debug.DrawRay(ray.origin, ray.direction * raycastDistance, Color.red, 0.7f, false); if (Physics.Raycast(ray, out hit, raycastDistance)) { //Debug.Log("hit : " + LayerMask.LayerToName(hit.collider.gameObject.layer)); if (SlasheonUtility.IsLayerNameMatch(hit.collider.gameObject, "Field")) { _playerController.moveBeginPosition = _playerController.transform.position; _playerController.isMoving = true; return(hit.point); } } moveTouchID = -1; } } } return(Vector3.zero); }