void OnTriggerEnter(Collider col) { if (this.enabled) { if (!firsttimehit) { if (col.gameObject.tag.Equals(GameConstant.KNOB_COL)) { movePositionUp = col.gameObject.GetComponent <KnobController> ().upPosition [1].position; movePositionDown = col.gameObject.GetComponent <KnobController> ().downPosition [1].position; rotationSpeed = 1.8f; curRadiusState = RadiusState.None; curMovementState = MovementState.None; OnMoveUp(); } else if (col.gameObject.tag.Equals(GameConstant.POCKET_COL)) { if (!firsttimehit) { curRadiusState = RadiusState.None; curMovementState = MovementState.None; firsttimehit = true; ballholder = col.gameObject.GetComponent <BallHolder> (); curMovementState = MovementState.JumpUpSide; } } else if (col.gameObject.tag.Equals(GameConstant.OBSTACLE_COL)) { Debug.Log("Obstacle......"); if (curHitState == HitState.Obstacle) { curRadiusState = RadiusState.None; curMovementState = MovementState.CurveMovement; AddRouletteChild(); } if (col.gameObject.name.Equals(GameConstant.OBSTACLE_NAME)) { curHitState = HitState.Obstacle; if (rotationSpeed >= 2f) { reduceSpeedFactor = reduceSpeedFactor * 3.2f; } else if ((rotationSpeed >= 1.5f) && (rotationSpeed < 2f)) { reduceSpeedFactor = reduceSpeedFactor * 2.5f; } else if ((rotationSpeed >= 1f) && (rotationSpeed < 1.5f)) { reduceSpeedFactor = reduceSpeedFactor * 2.0f; } } } else if (col.gameObject.tag.Equals(GameConstant.CONE_COL)) { rigidbody.isKinematic = false; curMovementState = MovementState.InsideSlotMove; } } } }
public void Int() { DeAttachedChild(); curRadiusState = RadiusState.InitialDecRadius; curHitState = HitState.None; transform.position = startPosition; curMovementState = MovementState.Normal; outerRadius = 1.67f; rotationSpeed = 3.4f; reduceSpeedFactor = rotationSpeed / 350f; slotInsideMovementSpeed = 1f; timer = 0f; tempTimer = 0f; angle = 0; initialMovementTime = Random.Range(10f, 15f); rigidbody = this.GetComponent <Rigidbody> (); hitPoint = 2f; firsttimehit = false; }
private void OnCompleteMoveDown() { rotationSpeed = 2.5f; curMovementState = MovementState.Normal; curRadiusState = RadiusState.DecRadius; }
//Ball movement in predefine radius void MoveAround() { angle = timer; if (curRadiusState == RadiusState.InitialDecRadius) { if (timer > initialMovementTime) { if (!GameController.Instance.rouletteRotation.canSpeedReduced) { GameController.Instance.rouletteRotation.ReduceSpeed(); } tempTimer = timer - initialMovementTime; tempTimer = tempTimer / 4000.0f; outerRadius = outerRadius - tempTimer; if (outerRadius < 1.6f) { outerRadius = 1.6f; } } } else if (curRadiusState == RadiusState.DecRadius) { tempTimer = timer; tempTimer = tempTimer / 400.0f; outerRadius = outerRadius - tempTimer; if (outerRadius < 1.45f) { //outerRadius = 1.2f; curRadiusState = RadiusState.IncRadius; if (rotationSpeed < 0.8f) { rotationSpeed = 0.8f; } } } else if (curRadiusState == RadiusState.IncRadius) { tempTimer = timer; tempTimer = tempTimer / 1000.0f; outerRadius = outerRadius + tempTimer; if (outerRadius < 1.55f) { curRadiusState = RadiusState.DecRadiusSpeed; rotationSpeed = rotationSpeed - reduceSpeedFactor; if (rotationSpeed < 0.8f) { rotationSpeed = 0.8f; } } } else if (curRadiusState == RadiusState.DecRadiusSpeed) { tempTimer = timer; tempTimer = tempTimer / 10000.0f; outerRadius = outerRadius - tempTimer; rotationSpeed = rotationSpeed - reduceSpeedFactor; if (rotationSpeed < 0.8f) { rotationSpeed = 0.8f; } } else if (curRadiusState == RadiusState.DecRadiusSpeedInc) { //tempTimer = timer; tempTimer = radiusdec / 60f; outerRadius = outerRadius - tempTimer; } if (outerRadius < 1.35f) { outerRadius = 1.35f; } base.BallMovementCircle(); }