★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。

SampleApp1でScene切り替え

SampleApp1を元に実装していたのですが、Live2Dモデルが配置されたシーンを二つ用意して、再生し、スクリプトでシーンを切り替えて、ゲームビューをクリックするとストップし、以下のエラーメッセージが出ます。

MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Transform.TransformPoint (Vector3 position)
LAppView.UpdateTouchPos_2DCamera (Vector3 inputPos)
LAppView.TouchesEnded (Vector3 inputPos)

SampleApp1を元にした実装で、シーン切り替えを行うにはどうすればいいでしょうか?

コメント

  • Transformの値がnullの時にも処理が走ってる時があるようなので
    以下のようにコード追加すれば、シーン切替できるかと思います

    [LAppView.cs]284行目あたり
    /*
     * カメラの Projection が Orthographic である場合(2Dカメラ)
     */
    protected void UpdateTouchPos_2DCamera(Vector3 inputPos)
    {
    	// コード追加 Start 
    	if (transform == null)
    	{
    		return;
    	}
    	// コード追加 End 
    	//--- calc local plane coord ---
    	{
    		Vector3 worldP_LT = transform.TransformPoint( localP_LT ) ;
    		Vector3 worldP_RT = transform.TransformPoint( localP_RT ) ;
    		Vector3 worldP_LB = transform.TransformPoint( localP_LB ) ;
    		
    		Vector3 ScreenLT = Camera.main.WorldToScreenPoint( worldP_LT ) ;
    		Vector3 ScreenRT = Camera.main.WorldToScreenPoint( worldP_RT ) ;
    		Vector3 ScreenLB = Camera.main.WorldToScreenPoint( worldP_LB ) ;
    		
    		Vector3 sVX = ScreenRT - ScreenLT;
    		Vector3 sVY = ScreenLB - ScreenLT;
     ・
     ・
    	}
    }
    
コメントするにはサインインまたは登録して下さい。