protected void Awake() { //Physics2D.alwaysShowColliders = true; stateChangedEventParams = new LevelStateChangedEventArgs(State.NonInit); // Camera size in units Camera camera = Camera.main; cameraHalfHeight = camera.orthographicSize; cameraHalfWidth = camera.aspect * cameraHalfHeight; var paddingFactor = 0.7f; platYs[0] = cameraHalfHeight * paddingFactor - Constants.BLOCK_HEIGHT_HALF; platYs[1] = -cameraHalfHeight * paddingFactor + Constants.BLOCK_HEIGHT_HALF; ballTopY = platYs[0] - Constants.BLOCK_HEIGHT_HALF - Constants.BALL_SIZE_HALF; ballBottomY = platYs[1] + Constants.BLOCK_HEIGHT_HALF + Constants.BALL_SIZE_HALF; // Test //ballTopY = 1.0f; ballBottomY = -1.0f; ball = GameObject.Find("Ball"); objects = new List <BaseObject>(); pool = new Dictionary <System.Type, List <BaseObject> >(); for (var i = 0; i < Constants.OBJECT_TYPES.Length; ++i) { pool[Constants.OBJECT_TYPES[i]] = new List <BaseObject>(); } prefabs = gameObject.GetComponent <Prefabs>(); // Add one spike and store its size BaseObject gobj = CreateNewObject(Constants.OT_SPIKE); spikeWidth = gobj.GetComponent <SpriteRenderer>().bounds.size.x; pool[Constants.OT_SPIKE].Add(gobj.GetComponent <BaseObject>()); gobj.gameObject.SetActive(false); blocks = new List <BlockType[]>(); int cntBlocks = Mathf.CeilToInt((cameraHalfWidth * 2) / Constants.BLOCK_WIDTH) + Constants.OBJECT_MAX_BLOCKS * 2; for (var i = 0; i < cntBlocks; ++i) { blocks.Add(new BlockType[2] { 0, 0 }); } ReinitLevel(); state = State.NonInit; }
protected void OnStateChangedEvent(object sender, LevelStateChangedEventArgs eParams) { ProcessNewLevelState(eParams.State); }