【3Dゲームエンジン】Unity質問スレッド14 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/12/09(火) 19:29:53.11ID:x9Izo6T5Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。
■前スレ
【3Dゲームエンジン】Unity質問スレッド13
http://peace.2ch.net/test/read.cgi/gamedev/1414819294/
■本スレ
【3Dゲームエンジン】Unity総合スレッド24
http://peace.2ch.net/test/read.cgi/gamedev/1415828892/
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/japan/
・ユーザーガイド&リファレンス
http://japan.unity3d.com/developer/document/
・チュートリアル
http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
http://answers.unity3d.com/index.html
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう
0238名前は開発中のものです。
2014/12/17(水) 21:59:38.89ID:JPKKTkFXScrollRect外に放り込みたい、という処理を行う場合、
マウスボタンを押したままScrollRectの動作を停止させることは
可能でしょうか?
アイテムをドラッグした!という判定は行えるのですが、マウスボタンを
一度でも離さない限り、ずっとScrollRect動作が継続してしまうので、
そこをなんとか打ち切りたいんです。
0239名前は開発中のものです。
2014/12/17(水) 22:07:58.55ID:mbFtNJxCthis is only available in the pro versionとあるので
これはフリーでは使えないのでしょうか
ユニティちゃんでゲームを作ろうに書いてある順序どおりにやっているのですけど
もう悩み続けググって6時間くらい経ちました
問い合わせしたほうがいいでしょうか?
0240名前は開発中のものです。
2014/12/17(水) 22:09:01.96ID:mbFtNJxCそれでAIを作ることができました
お騒がせしすみませんでした
0241名前は開発中のものです。
2014/12/17(水) 22:26:06.79ID:mbFtNJxC笑止千万
unityも駄目GUIですな
0242名前は開発中のものです。
2014/12/17(水) 22:49:36.26ID:V/EzfgCeアイテムつかんだらScrollRectコンポーネントをディアクティブにするとか
で、ドラッグ操作が終わったらアクティブに戻す
0243名前は開発中のものです。
2014/12/17(水) 23:22:46.03ID:3xXG8kbwブラウザはIE11でFFなら起動する
どうしたらいいの
0244名前は開発中のものです。
2014/12/18(木) 00:48:40.73ID:tsvx7R9N0245名前は開発中のものです。
2014/12/18(木) 00:55:46.81ID:Vr2/gAVpほかにメモリを食うアプリを起動したんじゃない?
0246名前は開発中のものです。
2014/12/18(木) 01:26:07.90ID:YER/Q7x/なるほど、その手があったか!という感じです。
ありがとうございます
0247名前は開発中のものです。
2014/12/18(木) 03:49:38.47ID:4exkQJJFできるよ。この辺。
ttp://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
0248名前は開発中のものです。
2014/12/18(木) 08:03:54.03ID:xdzvvI7mバッググラウンドにあるアプリを当該のアプリのみにしても同じ症状なんです。
マルチタスクボタン?からアプリを選択すれば復帰できるのですが、
ホーム画面のアイコンタップが再起動に設定されているような動きです。
0249名前は開発中のものです。
2014/12/18(木) 09:13:13.15ID:d57VeRmlアセットをかえば解決すると思いますけど
0250名前は開発中のものです。
2014/12/18(木) 10:35:37.61ID:9Nb7FQviありがとうございます。なんとかなりそうです。
0251名前は開発中のものです。
2014/12/18(木) 13:28:16.55ID:fIUeJ0NFNGUIカメラとOnGUI用カメラ2つを使ってますが、Depthいじっても何してもGUI.DrawTextureがNGUIの手前に来ちゃうの。
0252名前は開発中のものです。
2014/12/18(木) 13:49:31.94ID:7SFFwvJyドローコールを減らそうと思い
Block_c = Instantiate(Block, transform.position, transform.rotation);
Block_c.renderer.material = Instantiate(Materials[MaterialNo]);
という形で実行して同じマテリアルが適用されたものが生成されてもドローコールが増えてしまいます
変数は
var Block : GameObject;
var Block_c : GameObject;
var Materials : Material[] = new Material[6];
var MaterialNo : int;
と定義して他のところで代入しています
マテリアルにはテクスチャーは使っていません
BlockのプレハブのマテリアルはSizeを0にしたりnoneにしても変わりませんでいた
あとBlock_c.renderer.material = Instantiate(Resources.Load("hoge"));
等も試したのですがやはり変わりませんでした
調べた限りでは上記の感じでマテリアルを設定すればドローコールを減らせるとあったのですが
どういったことが原因として考えられるのでしょうか?
0253名前は開発中のものです。
2014/12/18(木) 13:53:28.86ID:dv3wOmpNドローコールを減らすには、アセットをかえばいいですよ。素晴らしいアセットがいっぱいです
0254名前は開発中のものです。
2014/12/18(木) 13:55:55.73ID:RS54/gKMMaterialをInstantiateしてるから内部でnewされてるんじゃないの?
Materials[MaterialNo]ってprefabである必要あるの?
0255名前は開発中のものです。
2014/12/18(木) 14:15:55.05ID:4exkQJJFこの辺の下の方見るとむしろそのやり方はドローコールを増やすやり方とかいてあるが。
ttp://tokyo.supersoftware.co.jp/code/1189
同じマテリアルを使うとドローコールが減る、の話は要するにダイナミックバッチングで減るが
ダイナミックバッチングをどのように効かすかによってドローコール数は変化する、
のではないか、という話をこの辺でしている。
ttp://qiita.com/kuuki_yomenaio/items/eaea133479bb8be96870
あとこの辺とか
ttp://tsubakit1.hateblo.jp/entry/20130509/1368110060
0256名前は開発中のものです。
2014/12/18(木) 14:58:10.03ID:dv3wOmpN0257名前は開発中のものです。
2014/12/18(木) 19:21:08.27ID:2s9UeWNFhttp://tokyo.supersoftware.co.jp/code/1189
は見てたのですが変な勘違いをしていたようです
Block_c.renderer.material = Resources.Load("hoge");
に変えてやってみたのですがドローコールは変わりませんでした
もう一回調べながらやってみます
0258名前は開発中のものです。
2014/12/18(木) 19:51:09.92ID:4exkQJJF同じマテリアルを使ってもそれだけではドローコールは減らないんだ。
同じマテリアルのものがどれだけ連続したレンダーオーダーに並んでくれるかが問題で。
2Dならソーティングレイヤーである程度コントロール可能なはずだし
上の記事の例では生成の順番だけである程度コントロールできている。
3Dの場合は半透明オブジェクトの扱いとかカメラからのZの問題に縛られる場合があるので
完全なコントロールは無理な気はする。
エディター拡張でメッシュレンダラのソーティングレイヤーを実装している例はある
ttp://forum.unity3d.com/threads/drawing-order-of-meshes-and-sprites.212006/
0259名前は開発中のものです。
2014/12/18(木) 19:53:25.11ID:t6T/zTSD0260名前は開発中のものです。
2014/12/18(木) 20:20:21.63ID:RS54/gKMあとResources.Loadなんぞしたら同じマテリアル扱いにならないよ(plugins書いてポインタ渡して表示してみると解る)
0261名前は開発中のものです。
2014/12/19(金) 09:50:43.25ID:FHWbUxpTマテリアルの命名規則(Material Naming)にて
「Model Name + Model’s Material」を選択した場合、
作成されるマテリアル名が文字化けしてしまい、
正しくマテリアルをインポートできなくて困っています。
なにか、回避方法ないでしょうか?
(エディタ自体の文字コードを変更するとか。。。)
なお、日本語名称のfbxが大量にある為、fbxファイル名を英字に変更する対処方法は難しいです
0262名前は開発中のものです。
2014/12/19(金) 10:00:10.40ID:sDqY08SL0263名前は開発中のものです。
2014/12/19(金) 10:06:35.37ID:5l/16tmrそのような問題はアセットを買えば簡単に解決すると思います。
0264名前は開発中のものです。
2014/12/19(金) 10:07:20.41ID:D5yP9UIEいや、それ絶対ファイルリネームした方がいいってw
ファイルのリネームが難しいって何だよw意味がわからねぇよw
1万くらいあってもどうってことないだろw
0265名前は開発中のものです。
2014/12/19(金) 10:14:31.23ID:D5yP9UIEその辺でどうにかなるとかは基本的にありえないと思ったほうがいい。
0266名前は開発中のものです。
2014/12/19(金) 10:40:53.12ID:FHWbUxpTファイル名に意味があります。
fbxの動的な管理アプリケーションなので、ファイル名を変えたくない。
画面上にfbxのファイル名を表示するので連番や英字だと可読性が悪い。
というか、現状だけどうにかしたいわけでなく、根本的に解決できるなら解決したいと思った次第です。
0267名前は開発中のものです。
2014/12/19(金) 10:46:01.79ID:nCmP1da4どうしてもタップした瞬間に音が鳴ってくれません
気にすれば気になる程度遅れてしまいます。
SEを受け持つクラスを作って、別のオブジェクトのコライダーがタップされたらSendMessageしているんですが
0268名前は開発中のものです。
2014/12/19(金) 11:17:19.69ID:0ThumEdf0269名前は開発中のものです。
2014/12/19(金) 11:37:36.22ID:k0lr7eQaファイル名の管理に困っているならアセットをかえばいけると思いますよ
0270名前は開発中のものです。
2014/12/19(金) 11:38:12.22ID:iunceamf0271名前は開発中のものです。
2014/12/19(金) 11:40:56.44ID:VoVCCM7h日本語名FBXファイルなんてわざわざ用意する必要あるのかな?
MMDモデルファイルをFBXに変換してそれをゲーム画面上で選択して踊らせたいとか?
どういう作りにしているのか知らないけど、
・英語名FBXファイルを指定のフォルダに入れるようにする
・英語名と日本語名を対応付けるハッシュを設定ファイルとして別途用意する(FBXファイルを追加するたびに更新)
・ゲーム起動時にハッシュを読み込んで表示名に日本語を使う
くらいじゃないかなぁ
>>265にもあるようにUnityは日本語の扱いに弱いからWinアプリみたいな柔軟な対応は無理かもね
0272名前は開発中のものです。
2014/12/19(金) 12:32:35.00ID:D5yP9UIEナルホド。Unityっていうかインポータ内部の処理の問題だと思うので
直接的な解決はUnityに言って直してもらうしかないよね。
局所的な話だしリクエスト出せばさらっと直ってきそうな気もする。
3D系のものやってる身的にはファイル名を日本語でつけるとか
色々殺されるだろ的なものは感じるがそういう現場じゃしょうがないよな。
>>271の言うようにハッシュ使うか内部で表示する時にエンコード変換するとかか。
エンコードの変換は上手くいくかどうかはわからんけど。
0273名前は開発中のものです。
2014/12/19(金) 15:51:56.00ID:Xkc2mkTTゲームオブジェクトのスケールを自動で1にした状態でInstantiateする方法わかりませんか?
具体的にはRefernce Resolutionで設定した値より低い解像度でゲームを走らせて、
Spriteコンポーネントが含まれるプレハブをInstantiateしてCanvasの子にすると、
解像度が低い分、プレハブのスケール値(1スケール)より大きくなってしまうようで、
スクリプトでInstantiate後に毎回new Vector3でスケールを1に代入しています。
Instantiateしたら自動で実行解像度にスケールしてくれる方法わかりませんか。
長くてすいません。
0274名前は開発中のものです。
2014/12/19(金) 16:03:16.32ID:D5yP9UIEそんなオーバーロードはない。したがって自動でやる方法はない
0275名前は開発中のものです。
2014/12/19(金) 16:22:07.10ID:4sS81DrVアセットをかえばできると思いますよ
0276名前は開発中のものです。
2014/12/19(金) 16:26:16.14ID:ShNYGd3F0277名前は開発中のものです。
2014/12/19(金) 17:26:40.83ID:0T3XotavAnchorがうまく使いこなせません。
0278名前は開発中のものです。
2014/12/19(金) 17:47:32.04ID:LwfaEmD90279名前は開発中のものです。
2014/12/19(金) 18:14:24.68ID:jrh8ntQKAnchorプリセットでAltキー押してストレッチに設定すれば画面サイズに合わせて伸縮します
可能な限り目一杯広がるのでLeft・Right・Top・Bottomのパディング値も設定しましょう
0280名前は開発中のものです。
2014/12/19(金) 18:15:54.42ID:4sS81DrVモチベーションを上げるアセットをかいましょう。アセットストアで検索しましょう
0281名前は開発中のものです。
2014/12/19(金) 21:04:48.81ID:0T3Xotavできました!
ありがとうございます!
0282名前は開発中のものです。
2014/12/19(金) 22:40:51.21ID:Xkc2mkTTなんていうか、プレハブのオリジナルスケール値がInstantiateした直後にUnity側で変更されてて
さらにそれを元のスケール値に戻すためにvector3で代入するっていうのが気持ち悪いんですよね
パフォーマンス的にもどうなのか疑問なんですが、uGuiはこういうもんなんですかねぇ
解像度自体がデフォルトと違うから適時処理を変えろって話なのかもしれませんが...
0283名前は開発中のものです。
2014/12/20(土) 01:25:32.38ID:aF5E4qAv例えば10個並んだセットみたいなものを作りたいんですが、そのようなことは可能でしょうか?
(もちろん、セットの中のそれぞれのピースは独立に動く必要があります)
ドミノ自体はBlenderからblend形式でインポートし、それをプレハブ化しています。
0284名前は開発中のものです。
2014/12/20(土) 01:44:52.53ID:Sy0R1Oq2できますよ。アセットをかえばできます
0285名前は開発中のものです。
2014/12/20(土) 02:33:32.25ID:AVTFwoO/空のゲームオブジェクトを用意してドミノ10個を子にして並べる
空だったゲームオブジェクトをプレハブにする
0286名前は開発中のものです。
2014/12/20(土) 02:35:42.16ID:rxL7hiQ40287名前は開発中のものです。
2014/12/20(土) 03:13:40.43ID:aF5E4qAv初歩的な質問ですみませんでした
ありがとうございます、希望通りの動きでした!
0288名前は開発中のものです。
2014/12/20(土) 12:21:17.94ID:Ci4Z484kフィールド上のオブジェクト(岩とかブロック)にぶつかったときに、オブジェクトに入り込んでしまうのって、どうやって回避するんだろう。
もちろん敵キャラにもコライダーはつけてあって、自キャラとぶつかってもお互いにめりこんだりはしない…。
自キャラはぶつかって、めり込めないオブジェクトなのにな〜。
マテリアルとかコライダーの設定じゃなく、コーディングで回避するしかないのかな?
0289名前は開発中のものです。
2014/12/20(土) 12:39:16.90ID:kZxIjMWbどう動かしてるのかも判らんのにどう回避させればいいのかなんてわからんよw
確かなことはめり込まないように円運動させることは可能で、
めり込ませるような設定をしたりプログラムを書いたりしているからめり込んでるということだけだ。
0290名前は開発中のものです。
2014/12/20(土) 13:11:55.22ID:NFV4q4IN0291名前は開発中のものです。
2014/12/20(土) 13:36:08.96ID:HUpuvngH「Onm」でOnMouseEnterがリスト表示されるヤツです
ctrl+shift+Mで標準メソッドについてはリストアップされるみたいですが、そうじゃなく
3文字くらい打ったらオートコンプリートされる機能を使いたいです
0292名前は開発中のものです。
2014/12/20(土) 15:59:40.53ID:mclPNWYf値セットしても、ゲームデバッグ実行するとTextが初期化されて
しかも終了するとそのまま空の状態になっちゃうんですが
0293名前は開発中のものです。
2014/12/20(土) 17:00:08.05ID:5LO2/S0Sとりあえず、現状はマルチバイト文字が鬼門という感じですね。
提案してもらったハッシュ化など、現状とは別の方針で解決策を模索してみます。
有難うございました。
0294名前は開発中のものです。
2014/12/20(土) 18:55:01.95ID:jIrKIQSi使ってないからわからないけど、VSならCtrl+Spaceで自動補完じゃない?
0295名前は開発中のものです。
2014/12/20(土) 19:28:53.26ID:7Ku4O3/+レイヤーごとの当たり判定設定する項目いじったか?
それで敵とオブジェクトの判定オフにしてないとそういう挙動は起こらないはず
0296名前は開発中のものです。
2014/12/20(土) 19:46:34.62ID:jIrKIQSiForceじゃなくて座標で直接移動させてるんじゃない?
0297名前は開発中のものです。
2014/12/20(土) 20:46:09.94ID:HUpuvngHそれで自動補完出るんですが、unityのメソッドが出ないんです
とりあえずctrl+shift+Qで出してます
0298名前は開発中のものです。
2014/12/21(日) 00:00:57.62ID:Sy0R1Oq2アセットをかえば出るかもしれませんよ
0299名前は開発中のものです。
2014/12/21(日) 01:40:33.67ID:2lKsPRz0//弾丸を発射
}
というスクリプトを持ったPrefab_Gunがあったとすると、
Prefab_GunのインスタンスAとインスタンスBは、
どちらもaを押したときに弾丸を発射することになりますが、
これを
if(何らかの変数){
//弾丸を発射
}
という風にして、
aを押したらインスタンスAからだけ弾丸が発射されて
bを押したらインスタンスBからだけ弾丸が発射される、
という処理にすることは可能なのでしょうか?
0300名前は開発中のものです。
2014/12/21(日) 02:01:46.84ID:y2pE5h8q可能ですよ。スクリプトに頼らずともアセットをかえば簡単に可能です
0301名前は開発中のものです。
2014/12/21(日) 02:25:52.58ID:RpoaLujD俺もリズムゲーム作ってんだけど、同じだわ。
これAndroid(iPhoneも?)の遅延じゃないか?
似たようなゲームとか打楽器系アプリのレビュー見てみると遅れて音が鳴る件でマイナス評価多いし。
叩いた音が鳴る仕組みとタップは相性悪そう。
0302名前は開発中のものです。
2014/12/21(日) 02:43:04.22ID:Wv777wiSボタンが反応したりしなかったりします。
コンティニューボタンのように、
ゲーム内の特定条件で生成され、
押されると自分自身を消す動作です。
BoxCollider2D で判定を取っており、
BoxCollider2D の size は指定していません。
3回ぐらいは反応しますが、
何度も試していると、
生成されたあとにタップに反応しなくなります。
OnMouseDown の先頭にコメントを入れてみたのですが、
反応しなくなったときは、
OnMouseDown 自体に入ってきていません。
BoxCollider2D の size はそれらしい値が入っています。
OnMouseDown の検知が不安定になる事ってあるのでしょうか?
0303名前は開発中のものです。
2014/12/21(日) 02:56:04.24ID:y2pE5h8qタップの反応などは、アセットをかえば簡単に対処できると思いますよ
0304名前は開発中のものです。
2014/12/21(日) 03:21:22.31ID:LX9lIJlhOnMouseDownイベントが発生しない
スクリプトでメッシュを作成したオブジェクトのOnMouseDownイベントが発生しなかった。
オブジェクトにMeshColliderコンポーネントを追加することでイベントが発生するようになった。
ttp://narudesign.com/devlog/unity-careless-mistake/
0305名前は開発中のものです。
2014/12/21(日) 04:45:29.08ID:honHqmh4あの後色々試した結果、使用しているモデルが悪いという事が判明しました
キューブだとバッチングされるがスフィアだとバッチングされないという事が数件ネットの記事であったので
試しに自作のモデルをキューブに置き換えたところ見事にバッチングされました
自作のモデルは頂点数は多く見積もっても30以下でスケールは全て1
shadeで作成し、shade loaderでunityに持ってきてます
テクスチャは未使用
解決する方法はあるでしょうか?
0306名前は開発中のものです。
2014/12/21(日) 06:50:50.73ID:RpoaLujD自分もそういう理由で普段使いにiPhoneを選んだのを思い出した。
結果はAndroidの発音遅延仕方なし。
最近はAudioManagerAPI 利用、SoundPoolの利用で少しは解消されてるみたいだけど、すげーめんどいな。
0307名前は開発中のものです。
2014/12/21(日) 07:16:12.74ID:m4OzzVKxというか、解決出来なかった
0308名前は開発中のものです。
2014/12/21(日) 07:22:45.65ID:7rkINnOJそれアルゴリズムの話であってUnityの話ではないよなぁw
例えばだが
//略
static int thisNo= 0;
string inputKey;
void Awake(){
inputKey=(thiNo%10).ToString();
thisNo++;
}
void Update(){
if(Input.GetKey(inputKey){
//発射
}
}
とかやってやればキーの0から1までに発射ボタンを
割り当てていくことは出来る、ような気がする。
機体が11個以上になったら重複していく。
英字でやりたいなら
Awakeのところを
inputKey=((char)((thisNo%26)+97)).ToString();
とかやってやればできる、のではないか、多分、恐らく。
まぁabcedの順のボタンとか使い勝手的にどうかとは思うがw
テストとか一切してない。すまんw
0309名前は開発中のものです。
2014/12/21(日) 07:48:49.09ID:7rkINnOJそのデータの「悪さ」がなんなのかよくわからないのであれだが
頂点数30くらいなら試しにBlenderで似たようなデータ作って
試してみれば。
球だとばっちんぐされないって話はバッチングには頂点数の限界があって
それは現状900くらいだ、という話ではないかと思うのでこの話が
そうなのかは正直わからない。
ただモデルの頂点数は作り方によってUnity内での数え方は異なる。
それはUVが切れていたりとかの事情で変わってくるので
インポートしたオブジェクトの子になっている(であろう)メッシュオブジェクトを
選択してインスペクターに表示されるVerts、Trisを見た方がいい。
Shade固有の問題だったりするとと正直判らん。
0310名前は開発中のものです。
2014/12/21(日) 10:03:45.99ID:y2pE5h8q解決法はあります アセットをかえば解決すると思います
0311名前は開発中のものです。
2014/12/21(日) 13:09:07.35ID:ScNX9ylTOnMouseOverとかの一連のメソッドはMonoBehaviourから継承してるわけじゃないから普通は補完効かないと思う
あるとしたらUnityVS側の設定なんじゃないだろうか
見当違いだったらごめん
0312名前は開発中のものです。
2014/12/21(日) 13:22:08.09ID:sYzeLG8Iアセットをかえば一瞬で解決しますよ
0313名前は開発中のものです。
2014/12/21(日) 13:26:26.26ID:Wv777wiSそのページは見てますが、
一度も発生しないのではなく、
最初の数回は反応します。
だから逆にわからなくて。
z 軸を -0.1 したら反応精度が上がったけど、
この対処でいいのかどうか。
0314名前は開発中のものです。
2014/12/21(日) 14:56:01.19ID:3tAYP1Ssttp://docs-jp.unity3d.com/Documentation/Components/SL-VertexFragmentShaderExamples.html
ここのページのBehind Barという縞模様になるシェーダをコピペするとエラー吐いてオブジェクトがピンクになってしまいます。
エラーコードは
Shader error in 'Custom/WindowCoordinates/Bars': 'vert': function return value missing semantics at line 15
と出るのですがそれっぽいところをいじっても直らないので困っています。
どなたか詳しい方おりましたら教えていただけるとありがたいのですが...
0315名前は開発中のものです。
2014/12/21(日) 15:01:17.01ID:sYzeLG8Iシェーダは難しいですね。しかし、アセットをかえば勉強なしで簡単にシェーダを利用できますよ
0316名前は開発中のものです。
2014/12/21(日) 15:09:50.07ID:Ng1eWUpoエラーメッセージの通りstruct vertOutの定義部にセマンティクスを指定しましょう
float4 scrPos;
↑の行を↓と書き換えてください
float4 scrPos : TEXCOORD;
0317名前は開発中のものです。
2014/12/21(日) 15:22:44.17ID:3tAYP1Ssできました!ありがとうございます!
scrPosはPOSITIONだと思ってました。(これだとSV_POSITIONとだぶってエラーになるんですが)
テクスチャ使ってないと思っていたのでTEXCOORDは全然でてきませんでしたね。
0318名前は開発中のものです。
2014/12/21(日) 17:03:16.76ID:b6ei4u4Aあと2階層の子のオブジェクトを取得するのはわかるのですが、
たとえば6階層あったとき一番上の親と一番下の子のオブジェクトの名前のみを記述して取得するには
どうすればいいですか?
0319名前は開発中のものです。
2014/12/21(日) 17:05:44.21ID:3tAYP1Ss先ほどのコードなのですが...
vert内の o.scrPos = ComputeScreenPos(o.pos); の役割ってなんなんでしょう?
引数で渡した座標位置をウィンドウの座標位置に変換してくれるという記述を見つけたのですが、いまいちどういうことかわかりません。
試しにこの一行を削ってみるとオブジェクトは縞々ではなくなりました。画面位置によるグラデーションは不完全ですが機能していました。
それから float2 wcoord = (i.scrPos.xy/i.scrPos.w); についてです。
wcoordが0.0〜1.0の小数2つということはわかるのですが、w値で割るという操作が何を示しているのか理解できません。
0320名前は開発中のものです。
2014/12/21(日) 17:13:18.73ID:honHqmh4現在のshade loader経由(以下A)はverts319,tris332
vertsが頂点、trisが面でいいのでしょうか?
感覚は全然アテになりませんね…
試しにAをobj(余計な情報が入らなそうだから)でblenderに放り込んでFBXでエクスポート(以下B)
これをunityに放り込むとスケールが超小さくなりましたがverts168,tris332に!
Bをshadeで開くとスケールは正常だったので試しにFBXでunityに(以下C)
CとBのvertsとtrisは一緒ですがCのスケールは正常でバッチングもできました
Bをloaderに経由させてもCと同じ結果になりました
理由はイマイチ分かりませんが望む結果になって良かったです
0321名前は開発中のものです。
2014/12/21(日) 17:48:32.83ID:504KASFmスクリプトは難しいですね。無理せずアセットを使いましょう
無理は体に毒ですし、時間の無駄ですよ
0322名前は開発中のものです。
2014/12/21(日) 18:39:45.26ID:Ng1eWUpoComputeScreenPos関数は"UnityCG.cginc"というファイルで実装されています
http://unity3d.com/unity/download/archive
でbuiltin shaderをダウンロードして探してみましょう
はっきりいいって、関数の中身見ても何がなにやらわかんないと思います。(俺もわかんねっす)
要はスクリーン座標を計算してくれる関数だと理解しとけば問題ないです
0323名前は開発中のものです。
2014/12/21(日) 18:41:26.23ID:zYHSNMou残念ながらお金が無いのでアセットは買いません。
0324名前は開発中のものです。
2014/12/21(日) 18:51:45.92ID:h+MgiEm7else return 1か0
0325名前は開発中のものです。
2014/12/21(日) 19:12:00.33ID:7rkINnOJ0326名前は開発中のものです。
2014/12/21(日) 19:28:38.55ID:zYHSNMouすんません
0327名前は開発中のものです。
2014/12/21(日) 20:06:01.06ID:PuGxLnvyドンマイ
0328名前は開発中のものです。
2014/12/21(日) 22:03:16.62ID:zYHSNMouSpriteRendererで色を変化させてる時に、白ではなく黒で塗られている部分を変化させたいのですが
これは自前でシェーダー書かないと再現できないでしょうか?
0329名前は開発中のものです。
2014/12/21(日) 22:08:19.95ID:504KASFm自前でシェーダを書く必要ないです。アセットをかえば簡単にできると思いますよ
0330名前は開発中のものです。
2014/12/21(日) 22:39:50.36ID:gHWoZrVa0331名前は開発中のものです。
2014/12/21(日) 22:43:44.94ID:zYHSNMouあーなるほど
colorを変更する前に色を反転するって仕組みがあれば出来るっぽいですけど
プリセットに色反転するシェーダーなんてありましたっけ...
0332名前は開発中のものです。
2014/12/21(日) 23:05:45.74ID:3tAYP1Ssありがとうございます。見てみます。
0333名前は開発中のものです。
2014/12/21(日) 23:27:13.13ID:7rkINnOJ反転すると全部色変わっちゃうがそれでいいのか?
まぁどうであれ自分でシェーダ書くのがラクで早そうだが
0334名前は開発中のものです。
2014/12/22(月) 00:00:40.27ID:vLjoTVUlマウスでクリックしたらクリックした場所に物体が来るようなスクリプトを組みました。
ですがうまく動いてくれません。
作成したスクリプトは下記です。
if(Input.GetAxis("Fire1")){
var Mo:Vector3=Input.mousePosition;
var aa:Vector3=Camera.main.ScreenToWorldPoint(Mo);
aa.z=transform.position.z;
transform.position=aa;
}
かなり試行錯誤していたのですがどうもMo.zの値が0の状態でScreenToWorldPointにかけるとおかしな挙動になってしまうようです。
そこで下記のようにMo.zに先に値を与えてからScreenToWorldPointをするときちんと動いてくれました。
if(Input.GetAxis("Fire1")){
var Mo:Vector3=Input.mousePosition;
var t:Vector3=Camera.main.WorldToScreenPoint(transform.position);
Mo.z=t.z;
var aa:Vector3=Camera.main.ScreenToWorldPoint(Mo);
transform.position=aa;
}
すみませんが、Mo.zが0のときにScreenToWorldPointをするとおかしな挙動になってしまうのはなぜなのか教えていただけませんでしょうか。
よろしくお願いします
0335名前は開発中のものです。
2014/12/22(月) 01:26:37.97ID:jImNMacsスクリプトは難しいですね。無理せずにアセットをかって対処しましょう
簡単にできますよ
0336名前は開発中のものです。
2014/12/22(月) 07:23:11.99ID:6wTlTTx9どうおかしくなっているのか、がわからんので明確なことは言えないが
ScreenToWorldPointはスクリーン上のXYポイントを
ワールド上でカメラからみた、カメラの方向に向かった距離(深度)に変換する。
ttp://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html
"The z position is in world units from the camera."
Unityのシーンビューでカメラをつかむとパースペクティブになっていれば
四角錐のオブジェクトが示されるがこれがカメラが写す範囲だということはわかるだろう。
ScreenToWorldPointはカメラから見た点がこの四角錐の中のどこにあるのかを割り出すものだ。
そしてカメラからの距離が0、ということはこの四角錐の中での位置は
その頂点、カメラの位置、以外の場所ではあり得ない。
従って何をしても返ってくる位置はカメラ位置になる。
おかしい、というのがそういうことならそういうこと。
ただこれには例外があってそれはカメラがOrthographicになってる場合で
この場合には意図した位置がかえってくる、はず。
0337名前は開発中のものです。
2014/12/22(月) 15:18:06.93ID:RByeuiOD実際、ビジュアルスクリプティングアセット”{b} Behaviour Machine”ならノンコーティングでできるサンプルがありますよ
アセットおじさん大敗北
■ このスレッドは過去ログ倉庫に格納されています