2017-07-19 11 views
0

私は単一プロジェクトを作成しましたが、私はC#のデータを統一にしようとしています。私はこのコードを実装し、私のC#のコードに:unityからjava androidにデータを送信

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); 
jo.Call("shareText","test","test"); 

それは私の活動のAndroid上で動作します:

public class UnityActivity extends AppCompatActivity { 

    public void shareText(String AppId,String PublisherID) { 
     Log.e("test","test"); 
     Log.e("test",AppId); 
     Log.e("test",PublisherID); 
    } 
} 

が、別のケースでは、私はunityPlayerを含むカスタムビューを作成しました。

だから今、私はUnityActivity(Javaクラスです)UnityViewを含むてきたし、最後の1は(のLinearLayoutを拡張)unityPlayerと、それは動作しませんでした同じコードで私のカスタムビューが含まれています。

public class CstUnityView extends LinearLayout { 
    private UnityPlayer mUnityPlayer; 

    public void shareText(String AppId,String PublisherID) { 
     Log.e("test","test"); 
     Log.e("test",AppId); 
     Log.e("test",PublisherID); 
    } 
} 

なぜそれがうまくいかなかったのか誰でも知っていますか?

+0

それが活動ではありませんので、あなたの活動の

? –

+0

はい、そうではありませんが、カスタムビューをアクティビティに使用しています。ユニティはうまく動作しますが、私はアンドロイドへの統一からデータを取得していません –

+0

なぜあなたはそれをlinearlayoutの中に入れたいのですか?代わりに、その線形レイアウトを使用しているアクティビティを呼び出します。 –

答えて

0

したがって、あなたのカスタム線形レイアウトのshareText()は、アクティビティで宣言されていない限り、単一で呼び出すことができません。ユニーフCallが機能を発動するためには、あなたの活動で宣言する必要があります。

コンソールログを最初に確認して、コンソールログが呼び出されていることを確認できます。 その後、アクティビティから受け取ったレイアウトをカスタムレイアウトビューに使用できます。

protected UnityPlayer mUnityPlayer; 

@Override 
protected void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
//this creates unityplayer with context to your activity 
mUnityPlayer = new UnityPlayer(this); 

//this requests focus so that the currentactivity is set to your activity 
//that is why shareText() can be called from your Unity 
mUnityPlayer.requestFocus(); 

//call layout here 
yourLinearlayout customlayout = new yourLinearLayout(); 
//do what you want to do with this customlayout 
//.... 
} 
public void shareText(String AppId,String PublisherID) { 
    Log.e("test","test"); 
    Log.e("test",AppId); 
    Log.e("test",PublisherID); 
} 
関連する問題