sfc-sdp / gamecanvas-unity Goto Github PK
View Code? Open in Web Editor NEW慶應義塾大学『スマートデバイスプログラミング』教材 GameCanvas for Unity
Home Page: http://web.sfc.keio.ac.jp/~wadari/sdp/
License: MIT License
慶應義塾大学『スマートデバイスプログラミング』教材 GameCanvas for Unity
Home Page: http://web.sfc.keio.ac.jp/~wadari/sdp/
License: MIT License
カメラからのイメージと、イメージのクリップ機能に関しての要望です。
・カメラのイメージを一時的に保存するなどして、DrawImageなどから任意のタイミングで使えるようにしたい
・主にカメラのイメージに対して、指定ピクセルの色を取得できるようにしたい
・DrawClippedImage、現在の切り取り方法が、画像の上下左右の切り取る長さを指定する方式になっているものを、指定のx,y座標から指定のwidth,height分だけ切り取る方式にしてほしい。もしくはそのような別の関数がほしい
以上です。よろしくおねがいします。
gc.DrawString(60, 60, "");
で↓のエラーが出ます
ArgumentException: Zero-sized array is not allowed.
GameCanvas.GameCanvas.FlushDrawString (GameCanvas.DrawInfo info)
GameCanvas.GameCanvas.LateUpdate ()
gc.SetColor(0f, 0f, 0f)
とかしちゃうと黒くなってしまう。
誤ってパレットカラーをシェーダーに渡していた。
発生条件についての詳細待ち
WEB上のテキストや画像を取得できるように。
Mesh.vertices is too small. The supplied vertex array has less vertices than are referenced by the triangles array.
UnityEngine.Mesh:SetVertices(List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:687)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)
Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
UnityEngine.Mesh:SetUVs(Int32, List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:688)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)
Mesh.colors is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
UnityEngine.Mesh:SetColors(List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:690)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)
iOS/Android の高解像度環境での実行時にのみ、ネイティブ描画解像度を1/4に下げるオプションを用意する。
本当は有効にしたいところだけども、影響範囲が大きいので v1.2 系ではデフォルト無効にしておく。
T/O
DrawImage (int id,float x,float y)
する際に重ね順を指定できるようにしていただきたいです。
位置情報取得を許可するように設定しても、アプリを起動すると設定がもとに戻ってしまう
UnityRemote だと取得できる
T/O
描画手法を変更し、より大量のオブジェクトを描画できるように改善します。
Game ビューの大きさによる。発生頻度は100%
座標の丸め込みが左手座標系基準になっているので、スクリーン座標系において余白が出ないような丸め込みに修正する
ボタン表現などに便利な gc.DrawRoundedRect
を追加する
トラッキング(字送り)を指定
gc.SetTextTracking()
テキストの水平比率を指定
gc.SetTextHorizontalRatio()
Unity 5.4 以前の仕様なので、根本的な対処は不可能。5.5 で自然に直る。
ただ GameCanvas 側で回避手段を用意できなくもないので対処を検討。
デバイス内蔵マイクの音声を取得できるようにします
dll 化することで、C# コンパイルエラーが起きても GameCanvas のエディタ拡張が消えないようにできる
gc.DrawCircle()
gc.FillCircle()
にて半透明描画ができない
OnApplicationFocus(bool focus)
や OnApplicationPause(bool pause)
に対応する
apkを書き出して実機で動作確認したところ、drawRect系の奴が動かない(画面が紫色になる)機種があった。
以下のAPIを追加する
gc.DrawMultiLineString()
gc.SetTextLineHeight()
API 追加になるけども v1.2 系のままでマイナーバージョンアップは行わない
エディタスクリプトを DLL 化することで、ビルドエラーが発生した場合でも GameCanvas が機能し続けるようになります。
v1系とv2系でAPIを大きく変えたので、その対応表を作成する
発生頻度はまちまち。数回、多くても十数回プレビューしなおせば直る
Unity 側の不具合にも見えるが GameCanvas 側で対応できないか調査する
Android端末にて上記関数を使うと、画面全体がピンク色になる。
gamecanvasのシェーダーの設定がおかしいと思われる。
gc.SetLineWidth()
を呼び出しても gc.DrawRect()
で線の幅が 1
固定になる
後回しになっていた大事な作業。
ひとまず描画系 API のテストシーンを優先的に作成する。
T/O
Tiled GPU perf. warning: RenderTexture color surface (640x480) was not cleared/discarded, doing <run with profiler for info>
UnityEngine.Graphics:Blit(Texture, RenderTexture, Material)
v2.0.0β に含まれていない以下のAPIを復活させる
GPS など毎フレームは更新されないイベント等を扱いやすくするために、非同期APIを追加する
2017.03.19 現在予定している GameCanvas v2.0.0 の構想です。
実行中に解像度を変更すると以下のエラーが吐かれる
Releasing render texture that is set to be RenderTexture.active!
本日中に直す
各引数(top ~ left)に色々値を入れて試してみた結果、切り取られ方は以下のようになりました。
(1) top : left & bottom (top)
(2) right : left (right)
(3) bottom : left (top)
(4) left : left > right (left < right)それぞれ、切り取られる方向がずれているようです
括弧内は、ある程度値が大きくなった場合(画像サイズの半分程度?)に、追加で切り取られる方向です
(4)については、leftとrightの両方から切り取られ、値の大きさによって切り取られる比率が変わるという意味です
iOS 実機のみ
デバイス内蔵カメラの映像を取得できるようにします
unitypackage でインポート後にエラーがたくさん出る
5.6.1f1
FormatException: Input string was not in the correct format
System.Int32.Parse (System.String s) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Int32.cs:629)
GameCanvas.Editor.AssetProcessor.RebuildAssetDatabase () (at C:/Users/Seibe/Documents/GitHub/GameCanvas-UnityEditor/src/GameCanvas.Editor/AssetProcessor.cs:36)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:249)
T/O
エディタ上では正常なので、#21 とは別の問題の模様。
ユーザー側で改変しやすいように、GameCanvas 名前空間のオブジェクトを dll ではなく cs ファイル直置きに変える
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.