/// <summary> /// 指定の名前のキャラクター表示をオフ /// </summary> /// <param name="characterName">キャラクター名</param> /// <param name="fadeTime">フェード時間</param> public void CharacterFadeOut(string characterName, float fadeTime) { AdvLayer layer = FindCurrentCharacterLayer(characterName); if (layer!=null) { layer.FadeOutDefaultSprite(fadeTime); } }
/// <summary> /// キャラクタ-テクスチャの設定 /// </summary> /// <param name="layerName">レイヤー名</param> /// <param name="characterName">キャラクター名</param> /// <param name="texture">テクスチャ名</param> /// <param name="x">表示座標X floatのobject nullを指定することで位置移動なし</param> /// <param name="y">表示座標Y floatのobject nullを指定することで位置移動なし</param> /// <param name="fadeTime">フェード時間</param> /// <returns>成功したらture。テクスチャがないなどで失敗したらfalse</returns> public bool SetCharacterSprite(string layerName, string characterName, AssetFile texture, object x, object y, float fadeTime) { //既に同名のキャラがいるなら、そのレイヤーを取得 AdvLayer oldLayer = FindCurrentCharacterLayer(characterName); if (oldLayer != null && texture == null) { //テクスチャ指定がない場合、前の同名キャラのテクスチャを引き継ぐ if (oldLayer.DefaultSprite != null) { texture = oldLayer.DefaultSprite.CurrentTexture; } } if (texture == null) { //キャラのテクスチャ表示なし(エラーではない) return(false); } //表示するレイヤーを探す AdvLayer layer = null; if (!string.IsNullOrEmpty(layerName)) { characterLayers.TryGetValue(layerName, out layer); } if (null == layer) { //レイヤーが名前で設定できないなら、今のレイヤーをそのまま使う layer = oldLayer; if (null == layer) { //それもなければデフォルトレイヤーを使う layer = DefaultCharacterLayer; } } //スプライトを設定 layer.SetDefaultSprite(characterName, texture, x, y, fadeTime); //レイヤーが変わる場合は、昔のスプライトを消す if (oldLayer != layer && oldLayer != null) { oldLayer.FadeOutDefaultSprite(fadeTime); } return(true); }