// Whether there is a union between these two MovementColliders public bool HasUnion(MovementCollider a) { return(enabled && (a.minX < maxX && a.maxX > minX) && (a.minY < maxY && a.maxY > minY) && (a.minZ < maxZ && a.maxZ > minZ)); }
void CreateMovementZone() { MovementOrigin = visual.transform.position; MovementCollider = GameObject.CreatePrimitive(PrimitiveType.Cylinder); MovementCollider.transform.position = new Vector3(visual.transform.position.x, 0.05f, visual.transform.position.z); MovementCollider.transform.localScale = new Vector3(MovementRadius * 2, 0.1f, MovementRadius * 2); Collider[] colliders = MovementCollider.GetComponents <Collider>(); for (int i = 0; i < colliders.Length; i++) { Destroy(colliders[i]); } var renderer = MovementCollider.GetComponent <Renderer>(); var material = (Material)Resources.Load("WalkZone", typeof(Material)); if (renderer != null && material != null) { renderer.material = material; } }
/// <summary> /// Start is called on the frame when a script is enabled just before /// any of the Update methods is called the first time. /// </summary> void Start() { PhysicsState = this.SafeGetComponent <PhysicsState>(); MovementCollider = this.SafeGetComponent <CharacterController>(); HitState = GetComponent <HitState>(); JumpCount = MaxJumpCount; OnChangeDirection(_direction); _ledgeTarget = this.CachedGetComponent(_ledgeTarget, () => transform); if (Character == null) { return; } var stateController = Character.StateController; var states = Character.States; stateController.OnStateChange += (b, a) => { if (states.Jump == a) { Jump(); } if (states.LedgeRelease == a) { IsFastFalling = false; CurrentLedge = null; } if (states.LedgeAttack == b || states.LedgeClimb == b) { CurrentLedge = null; transform.position = _skeletonRoot.position; _skeletonRoot.position = transform.position; MovementCollider.Move(Vector3.down * MovementCollider.height); Character.StateController.SetState(Character.States.Idle); } if (states.EscapeForward == b && isServer) { _direction = !_direction; } }; }
void Start() { mCollider = GetComponent <MovementCollider>(); receiver = GetComponent <InputReceiver>(); }