/** [Fee.Render2D.OnSprite2DMaterialUpdate_CallBackInterface]マテリアルの更新。描画の直前に呼び出される。 */ public bool OnSprite2DMaterialUpdate(Fee.Render2D.Sprite2D a_sprite2d, Fee.Render2D.Material_Item a_material_item) { bool t_setpass = true; //メインテクスチャー設定。 a_material_item.SetProperty_MainTexture(UnityEngine.Texture2D.whiteTexture); //SetPass要求。 return(t_setpass); }
/** constructor */ public Sprite2D_Fade(Fee.Deleter.Deleter a_deleter, long a_drawpriority) { this.sprite = Fee.Render2D.Sprite2D.Create(a_deleter, a_drawpriority); this.sprite.SetMaterialType(Fee.Render2D.Config.MaterialType.Simple); this.sprite.SetOnSprite2DMaterialUpdate(this); }
/** スプライトインデックス。計算。 */ public void CalcSpriteIndex(SpriteList a_spritelist) { //リセット。 for (int ii = 0; ii < this.list.Length; ii++) { this.list[ii].ResetSpriteIndex(); } //スプライト。 { int t_calc_mode = 0; int t_calc_layer = 0; int t_calc_index = 0; LayerItem t_calc_layeritem = this.list[t_calc_layer]; while (t_calc_index < a_spritelist.GetListMax()) { Fee.Render2D.Sprite2D t_sprite = a_spritelist.GetItem(t_calc_index); int t_layerindex = this.CalcLayerIndexFromDrawPriority(t_sprite.GetDrawPriority()); if (t_calc_layer < this.list.Length) { if (t_calc_mode == 0) { //開始インデックス。 if (t_layerindex < 0) { //除外。 t_calc_index++; } else { if (t_calc_layer == t_layerindex) { //開始位置発見。 t_calc_layeritem.sprite_index_start = t_calc_index; t_calc_layeritem.sprite_index_last = t_calc_index; t_calc_index++; t_calc_mode = 1; } else { //再チェック。 t_calc_layeritem.sprite_index_start = -1; t_calc_layeritem.sprite_index_last = -1; t_calc_layer++; t_calc_layeritem = this.list[t_calc_layer]; t_calc_mode = 0; } } } else { //終了インデックス。 if (t_calc_layer == t_layerindex) { //終了インデックス候補。 t_calc_layeritem.sprite_index_last = t_calc_index; t_calc_index++; } else { //再チェック。 t_calc_layer++; t_calc_layeritem = this.list[t_calc_layer]; t_calc_mode = 0; } } } } } }