質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

1991閲覧

CocosSharpViewのViewCreatedが動かない

ijufumi

総合スコア276

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2016/12/07 07:19

###前提・実現したいこと
Xamarin Forms + CocosSharpでゲームを作っています。
Xamarin開発者サイトにあるサンプル通りに実装しても、
ViewCreatedに設定したメソッドが実行されません。

実行されたかどうかは各所にSystem.Diagnotstics.Debug.WriteLineを記述し、ログが出力されたかどうかで判定しています。
なぜかViewCreatedに指定したところのログが出力されません。

###該当のソースコード

using System; using System.Diagnostics; using Xamarin.Forms; using CocosSharp; namespace CocosTest { public class GamePage : ContentPage { public GamePage() { var grid = new Grid(); grid.RowDefinitions = new RowDefinitionCollection { new RowDefinition{Height = new GridLength(1, GridUnitType.Star)}, new RowDefinition{Height = new GridLength(1, GridUnitType.Star)} }; var gameView = new CocosSharpView() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, DesignResolution = new Size(1024, 768), BackgroundColor = Color.Aqua, ViewCreated = LoadGame }; grid.Children.Add(gameView); Content = grid; Debug.WriteLine("GamePage init."); } void LoadGame(object sender, EventArgs e) { Debug.WriteLine("LoadGame"); } } }

###試したこと
ViewCreatedの設定を、CocosSharpViewをnewしたタイミングではなくそのあとに行ってみましたが、ダメでした。

var gameView = new CocosSharpView() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, DesignResolution = new Size(1024, 768), BackgroundColor = Color.Aqua }; gameView.ViewCreated += (sender, e) => { Debug.WriteLine("ViewCreated"); };

###補足情報(言語/FW/ツール等のバージョンなど)

  • OS : Mac OS 10.11.6
  • Xamarin Studio : Xamarin Studio Community 6.1.2
  • Xamarin Forms : 2.3.3.175
  • CocosSharp.Forms : 1.7.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

GamePage のコードは問題ないようです。

当方で、Visual Studio で iOS, Android
Xamarin Studio で iOS を確認しましたが、全て正常動作しました。

Xamarin Studio をお使いということなので、おそらく、その他のファイルに何か記述が足りない可能性があります。
※Visual Studio ではプロジェクトテンプレートが公式から用意されておりますので簡単です。

ご参考までに、当方が実験したソースをご参照頂ければ何か分かるかもしれません。

https://github.com/TomohiroSuzuki128/CocosSharpTeratail1207

投稿2016/12/07 10:53

編集2016/12/07 10:57
hiro128

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ijufumi

2016/12/12 01:29

ありがとうございます! 確認してみます。
ijufumi

2016/12/12 06:35

Visual StudioのCocosSharpのテンプレートからプロジェクト作成して実行したら、正常に動作することを確認できました。 ただ、Xamarin Formsのバージョンがかなり古く(1.5.0)、今回作成しようとしていたアプリで使っているバージョン(2.3.3)とだいぶ違うので、原因はこの辺な気がしています。(CocosSharpのバージョンは大差なかったので) Xamarin FormsのRelease Notesやソースファイルを見てみます。 原因ぽいことが分かったので、この質問は解決済みにします。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問