void CheckDownBlocking() { foreach (GameObject o in control.COLLISION_SPHERE_DATA.BottomSpheres) { GameObject blockingObj = CollisionDetection.GetCollidingObject(control, o, Vector3.down, 0.1f, ref control.BLOCKING_DATA.RaycastContact); if (blockingObj != null) { AddBlockingObjToDic(DownBlockingObjs, o, blockingObj); } else { RemoveBlockingObjFromDic(DownBlockingObjs, o); } } }
void CheckUpBlocking() { foreach (GameObject o in control.COLLISION_SPHERE_DATA.UpSpheres) { GameObject blockingObj = CollisionDetection.GetCollidingObject(control, o, this.transform.up, 0.3f, ref control.BLOCKING_DATA.RaycastContact); if (blockingObj != null) { AddBlockingObjToDic(UpBlockingObjs, o, blockingObj); } else { RemoveBlockingObjFromDic(UpBlockingObjs, o); } } }
void CheckFrontBlocking() { if (!control.animationProgress.ForwardIsReversed()) { FrontSpheresArray = control.COLLISION_SPHERE_DATA.FrontSpheres; DirBlock = 1f; foreach (GameObject s in control.COLLISION_SPHERE_DATA.BackSpheres) { if (FrontBlockingObjs.ContainsKey(s)) { FrontBlockingObjs.Remove(s); } } } else { FrontSpheresArray = control.COLLISION_SPHERE_DATA.BackSpheres; DirBlock = -1f; foreach (GameObject s in control.COLLISION_SPHERE_DATA.FrontSpheres) { if (FrontBlockingObjs.ContainsKey(s)) { FrontBlockingObjs.Remove(s); } } } for (int i = 0; i < FrontSpheresArray.Length; i++) { GameObject blockingObj = CollisionDetection.GetCollidingObject( control, FrontSpheresArray[i], this.transform.forward * DirBlock, control.animationProgress.LatestMoveForward.BlockDistance, ref control.BLOCKING_DATA.RaycastContact); if (blockingObj != null) { AddBlockingObjToDic(FrontBlockingObjs, FrontSpheresArray[i], blockingObj); } else { RemoveBlockingObjFromDic(FrontBlockingObjs, FrontSpheresArray[i]); } } }