void OnMouseEvent(Define.eMouseEvent _MouseEvent) { switch (State) { case Define.eState.Idle: { OnMouseEvent_IdleRun(_MouseEvent); } break; case Define.eState.Moving: { OnMouseEvent_IdleRun(_MouseEvent); } break; case Define.eState.Skill: { if (_MouseEvent == Define.eMouseEvent.PointerUp) { _stopSkill = true; } } break; } }
void OnMouseEvent_IdleRun(Define.eMouseEvent _MouseEvent) { //if (_MouseEvent != Define.eMouseEvent.Click) // return; if (State == Define.eState.Die) { return; } RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); bool braycasthit = Physics.Raycast(ray, out hit, 100.0f, _mask); //Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); //int mask = LayerMask.GetMask("Ground") | LayerMask.GetMask("Ground"); switch (_MouseEvent) { case Define.eMouseEvent.PointerDown: { if (braycasthit) { this._destPos = new Vector3(hit.point.x, this.transform.position.y, hit.point.z); State = Define.eState.Moving; _stopSkill = false; if (hit.collider.gameObject.layer == (int)Define.eLayer.Monster) { _lockTarget = hit.collider.gameObject; } else { _lockTarget = null; } } } break; case Define.eMouseEvent.Press: { if (_lockTarget != null) { _destPos = _lockTarget.transform.position; } else { if (braycasthit) { _destPos = hit.point; } } } break; case Define.eMouseEvent.PointerUp: { _stopSkill = true; } break; } }