//アバターターゲットからプロフィール画面へと誘導するブリッジコンポーネント component ProfController { const string other_profile_layer="other_profile"; const string avatar_target_layer="avatar_target"; private string currentPlayerID_;//現在選択中のプレイヤーID private bool isLoggedIn_;//自分がログイン済みかどうか private bool isHideTarget_;//現在のプレイヤーに対するターゲットを不可視にすべきか private ProfileModel profileModel_;//プロフィールコンポーネント参照 Player currentLockingPlayer_;//現在ロック中(プロフィール参照中)のプレイヤーオブジェクト public ProfController() { isLoggedIn_=false; currentLockingPlayer_=null; profileModel_=null; } //「自分が」ログイン済みかどうかを返す //ログイン中かどうかで、プロフィールメニューに表示される項目が変わるため public bool IsLoggedIn(){ return isLoggedIn_; } //heliport.v3.api.auths.isLoggedInのコールバック private void _LoggedInCallbackForFindUserData(JsVal val) { ReturnType result = hsLoadReturnType(val); if(!result.IsValid()) return; bool loginValid = result.data.GetBool(); isLoggedIn_=loginValid; LayerBundle layer=hsLayerGet(other_profile_layer); if(layer===null){ profileModel_=null; }else{ profileModel_=system.Layer_GetComponentByName(other_profile_layer); profileModel_.FindUserDataAndShowProfile(currentPlayerID_,loginValid); } } //heliportに問い合わせて、現在のユーザがログインユーザかどうかをチェックする //AvatarTargetから呼ばれる public void LoginCheckForProfile(){ heliport.v3.api.auths.isLoggedIn(_LoggedInCallbackForFindUserData); } //現在選択中のプレイヤーオブジェクトを返す //存在しなければnullを返す public Player GetCurrentLockingPlayer(){ return currentLockingPlayer_; } //現在選択中のプレイヤーIDを返す public string GetLockingPlayerID(){ return currentPlayerID_; } //ロックしているプレイヤーのロックを外す(外れた) public void UnlockPlayer(){ currentLockingPlayer_=null; currentPlayerID_=""; } //現在のプレイヤーを内部メモリに記憶しておく public void LockPlayer(string playerID){ currentPlayerID_=playerID; currentLockingPlayer_=hsPlayerGetByID(playerID); } //AvatarTargetオブジェクトをavatar_targetレイヤーから取得する //other_profileの前に必ず表示されているため必ず存在はするはず private AvatarTargetModel GetAvatarTargetModel(){ LayerBundle layerVCC=hsLayerGet(avatar_target_layer); if(layerVCC===null){ hsSystemOutput("avatar_targetレイヤーがNULL\n"); return null; }else{ AvatarTargetModel avatarTarget=system.Layer_GetComponentByName(avatar_target_layer); if(avatarTarget===null){ hsSystemOutput("avatarTargetコンポーネントがNULL\n"); return null; }else{ return avatarTarget; } } return null; } // public void DeactivateLockedPlayer(){ // AvatarTargetModel avatarTarget=GetAvatarTargetModel(); // avatarTarget.DeactivateLockedPlayer(); // } }