// Update is called once per frame public override void Update() { //var playerNo = GamePadIndex; //var keyState = GamePad.GetState(playerNo, false); //var playerKeyNo = (KeyBoard.Index)playerNo; //var keyboardState = KeyBoard.GetState(KeyboardIndex, false); hMoveColliderScript = this.gameObject.GetComponent <MoveCollider>(); // 各状態の処理 base.Update(); if (m_cStateMachineList[0].GetCurrentState() == m_cStateList[(int)EMouseState.ForcedWait]) { return; } // レイキャストによる壁の当たり判定処理 if (m_cStateMachineList[0].GetCurrentState() != m_cStateList[(int)EMouseState.Up]) { Debug.DrawLine(this.transform.position, this.transform.position + this.transform.forward * 0.5f, Color.red); Ray ray = new Ray(this.transform.position, this.transform.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, 0.5f)) { var LayerName = LayerMask.LayerToName(hit.collider.gameObject.layer); var TagName = hit.collider.gameObject.tag; if (LayerName == "Box" || LayerName == "Rail") { if (TagName == "CanClimbing") { //Debug.Log(hit.collider.gameObject.transform.position); if (LayerName == "Rail") { m_GTargetBoxObject = hit.collider.gameObject.transform.parent.gameObject.transform.parent.gameObject; } else { m_GTargetBoxObject = hit.collider.gameObject; } if (m_cStateMachineList[0].GetCurrentState() != m_cStateList[(int)EMouseState.Pipe]) { ChangeState(0, EMouseState.Up); } return; } } } Ray Downray = new Ray(transform.position, -transform.up); RaycastHit Downhit; Debug.DrawLine(transform.position, transform.position - transform.up, Color.red); if (Physics.Raycast(Downray, out Downhit, 1f)) { //Debug.Log("DownRootObject : " + Downhit.collider.gameObject.transform.parent.gameObject.transform.gameObject.name); Debug.Log("DownHumanRayHit : " + Downhit.collider.gameObject.name); Debug.Log("DownHitTag : " + Downhit.collider.tag); var LayerName = LayerMask.LayerToName(Downhit.collider.gameObject.layer); var TagName = Downhit.collider.gameObject.tag; if (LayerName == "Rail") { if (TagName == "Rail") { m_GTargetBoxObject = Downhit.collider.gameObject.transform.parent.gameObject.transform.parent.gameObject; ChangeState(0, EMouseState.Rail); } } else { if (CheckCurrentState(EMouseState.Rail)) { ChangeState(0, EOldState); } } } } }
// Update is called once per frame public override void Update() { hCatchZone = this.transform.Find("CatchZone").GetComponent <HCatchZone>(); hMoveColliderScript = this.gameObject.GetComponent <MoveCollider>(); // 各状態の処理 base.Update(); if (m_cStateMachineList[0].GetCurrentState() == m_cStateList[(int)EHumanState.ForcedWait]) { return; } //var startpos = this.transform.position /*+ new Vector3(0f, -0.8f)*/; //Debug.DrawLine(startpos, startpos + this.transform.forward, Color.red); if (m_cStateMachineList[0].GetCurrentState() != m_cStateList[(int)EHumanState.Up]) { Ray ray = new Ray(this.transform.position /*+ new Vector3(0f,-0.8f)*/, this.transform.forward); Debug.DrawLine(transform.position, transform.position + transform.forward, Color.red); RaycastHit hit; if (Physics.Raycast(ray, out hit, 1f)) { Debug.Log("RootObject : " + hit.collider.gameObject.transform.root.gameObject.name); Debug.Log("HumanRayHit : " + hit.collider.gameObject.name); Debug.Log("HitTag : " + hit.collider.tag); var LayerName = LayerMask.LayerToName(hit.collider.gameObject.layer); var TagName = hit.collider.gameObject.tag; Debug.Log("LayerName : " + LayerName); if (LayerName == "Rail") { if (TagName == "CanClimbing") { Debug.Log("ChangeState"); m_GTargetBoxObject = hit.collider.gameObject.transform.root.gameObject; ChangeState(0, EHumanState.Up); return; } } } Ray Downray = new Ray(transform.position, -transform.up); RaycastHit Downhit; Debug.DrawLine(transform.position, transform.position - transform.up, Color.red); if (Physics.Raycast(Downray, out Downhit)) { Debug.Log("DownRootObject : " + Downhit.collider.gameObject.transform.root.gameObject.name); Debug.Log("DownHumanRayHit : " + Downhit.collider.gameObject.name); Debug.Log("DownHitTag : " + Downhit.collider.tag); var LayerName = LayerMask.LayerToName(Downhit.collider.gameObject.layer); var TagName = Downhit.collider.gameObject.tag; if (LayerName == "Rail") { m_GTargetBoxObject = Downhit.collider.gameObject.transform.root.gameObject; ChangeState(0, EHumanState.Rail); } else { if (CheckCurrentState(EHumanState.Rail)) { ChangeState(0, EOldState); } } } } }