// Use this for initialization void Start() { if (GetComponent <BoxCollider2D>()) { _size = GetComponent <BoxCollider2D>().size; _horizontalObjNb = (int)(_size.x / _sizeCube); _verticalObjNb = (int)(_size.y / _sizeCube); _topLeft = (Vector2)transform.position - (_size / 2); for (float y = 0; y < _verticalObjNb; y++) { for (float x = 0; x < _horizontalObjNb; ++x) { objTmp = (Instantiate(_objectToGenerate, new Vector2(_topLeft.x + _sizeCube / 2 + x * _sizeCube, _topLeft.y + _sizeCube / 2 + y * _sizeCube), transform.rotation) as GameObject); if (objTmp) { objTmp.transform.SetParent(transform); } objTmp.transform.localScale = new Vector2(_size.x / (_horizontalObjNb * 2), _size.y / (_verticalObjNb * 2)); if (objTmp.GetComponent <ObjectState>()) { ObjStateScript = objTmp.GetComponent <ObjectState>(); ObjStateScript._state = _state; ObjStateScript._timeToPropagate = _timeToPropagate; ObjStateScript._timeStayElec = _timeStayElec; ObjStateScript._timeToDestroy = _timeToDestroy; ObjStateScript._onPropagation = _onPropagation; ObjStateScript._onDestruction = _onDestruction; ObjStateScript._onConduction = _onConduction; ObjStateScript._canBeWet = _canBeWet; ObjStateScript.SetWindTranslate(_windTranslate); } if (objTmp.GetComponent <Rigidbody2D>() && GetComponent <Rigidbody2D>()) { objTmp.GetComponent <Rigidbody2D>().gravityScale = GetComponent <Rigidbody2D>().gravityScale; objTmp.GetComponent <Rigidbody2D>().mass = GetComponent <Rigidbody2D>().mass; objTmp.GetComponent <Rigidbody2D>().constraints = GetComponent <Rigidbody2D>().constraints; GetComponent <Rigidbody2D>().Sleep(); //if (!_withRigidBody) // objTmp.GetComponent<Rigidbody2D>().Sleep(); } if (GetComponent <BoxCollider2D>().isTrigger) { objTmp.GetComponent <BoxCollider2D>().isTrigger = true; } objTmp.layer = gameObject.layer; } } GetComponent <BoxCollider2D>().enabled = false; } //DestroyObject(gameObject); }