トップページgamedev
1002コメント432KB

【3Dゲームエンジン】Unity質問スレッド21 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/11/18(水) 00:53:16.90ID:6AegDlBR
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity総合スレッド27 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1441891966/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・ユーザーガイド
 http://docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド20 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1444194744/
0161名前は開発中のものです。2015/11/25(水) 11:54:50.79ID:FOlaTO8z
>>158
physicとphysic2Dで設定間違ってんじゃないか?
0162名前は開発中のものです。2015/11/25(水) 11:57:42.19ID:mJvx5fxi
>>150
>>151

ありがとうございます。
一旦課題としておいておいて、1小節分の無音をぶっこむ感じで対応したいと思います。
0163名前は開発中のものです。2015/11/25(水) 13:01:38.27ID:+JRnz/oe
一月ほど前にunityを使い始めたのですが、一緒にインストールされていたvisual studio2015
の試用期間が切れてしまいました。
検索してみたのですが、サインインすれば使えるようになるとか、無償のVisual Studio Community
が使えるとかあったのですが、どうするのが良いのか、教えていただけないでしょうか。
0164名前は開発中のものです。2015/11/25(水) 13:45:58.92ID:43q0ScFF
そうしろよ
0165名前は開発中のものです。2015/11/25(水) 13:50:14.00ID:M4BKjVLA
試用期間って試用版なら正規版のプロダクトキー入れるまで無理
サインインすれば使えるのはexpress版かな?
Community版がいいと思うけど
0166名前は開発中のものです。2015/11/25(水) 13:56:06.68ID:+JRnz/oe
そういう方法があるとだけあって、詳細はなかったので…
0167名前は開発中のものです。2015/11/25(水) 14:00:15.31ID:+JRnz/oe
>>165
ありがとうございます。
Community版をいれてみます。
0168名前は開発中のものです。2015/11/25(水) 14:00:47.36ID:M4BKjVLA
試用版(というか機能評価版)は90日使えるはずなので
30日のexpress版だろうね
アカウントは無料だし、Commyunity版でもアカウント作る必要あるから
どっちにしてもサインイン必要になるけど、ほぼ製品版と変わらない
Community版入れなおしたらいいと思うよ
0169名前は開発中のものです。2015/11/25(水) 15:14:54.12ID:oCTnJctX
ロードマップの5.3の内容に
Upgrading MonoDevelop to version 5.9ってあるけど
もしかしてC#のバージョン上がるの?
0170名前は開発中のものです。2015/11/25(水) 15:20:39.46ID:dEkn2rR5
>>160
むしろ普通の質問に異常な食いつきだしたお前の頭の構造とどういう親に育てられたかに興味しんしんなんやけどw
0171名前は開発中のものです。2015/11/25(水) 16:20:27.35ID:b9ewpj5B
まだまだだな
0172名前は開発中のものです。2015/11/25(水) 20:21:57.35ID:rEqSWQio
https://www.youtube.com/watch?v=N5iPaq6XKu0
この動画のような柔らかな光と影の表現はどのように設定すれば出来るのでしょうか?
unity5を使っていますがライトプローブ等いろいろ設定しても境界がクッキリした
堅い描写にしかなりません。
0173名前は開発中のものです。2015/11/25(水) 20:45:41.37ID:uv1Q7fb5
格闘ゲームみたいな1/60の固定フレームのゲームを考えてるのだけどどうするのが正解なのかな?
Updateは論外としてFixedUpdateも物理演算とは切り離したいので避けたいところ
Unityがそういうゲーム向けのエンジンじゃないってのもあるんだろうけど
ちょっと良い方法が思い浮かばないのよね
0174名前は開発中のものです。2015/11/25(水) 20:50:35.03ID:h+r8KWWP
いやUpdateでしょ
単純に1フレームで終わる処理に徹するしかない訳だし
0175名前は開発中のものです。2015/11/25(水) 21:21:32.29ID:7JL3PEIl
GPLについて詳しい人いたら教えてほしいんだけど・・・・

A Unityで作ったソフト(非GPL)
B 標準入出力を利用してAと対話するソフトをライブラリ化したもの(GPL)

このABをAndroid向けに一つのapkにまとめて売った場合って、AはGPL汚染されないって認識であってるのかな?リンクしてるわけじゃないし・・・・?
仮にもし汚染が進むとすると、Unityの用意したプログラムのコードが公開できないから詰んじゃいそう
0176名前は開発中のものです。2015/11/25(水) 21:28:46.02ID:e/c1cdN9
>>173
Unity使う以上Updateだろ
Quality Settingsを開いてVSync Count を Every VBlankに設定(60fps固定)しておくこと
あとは処理落ちしないコードを書けばおk
0177名前は開発中のものです。2015/11/25(水) 21:49:43.90ID:y2Nf0zh+
>>175
一言で言うとあやしい。GPLの出た当時にAPKみたいなzipでまとめた配布パッケージの事例がなく考慮されていないこと、判例がないことが不安点
GPL絡みの判例って、炎上防止のために企業が急いで配慮する傾向にあるため、ライセンスの知名度の割には極端に少ないんだよね

少々余談ながら、ffmpegが恥の殿堂(hall of shame)と称してライセンス不正利用アプリ一覧を晒してたりするけど、アクションおこしてないし。
無断使用された側も裁判費用や時間が無駄と考えてる一例

JNIで繋げてる訳でないようだし、中身的には問題ないと思うのだけども

別apkとして起動時に追加ダウンロードを要求すればまず間違いない。別々の成果物をユーザの意図で組み合わせて利用していると見ていい

また、要するに誰も問題にしなければ良いという視点もあるので
・まぜたもの
・分けたもの(GPL側はソース公開)
を両方公開して、挙動が一緒であることを示し、GPL成果物に配慮している旨を記載するなど誠意を示せばまず問題視する人はいないと思う

参考でもないけど、ぐぐると悩んでる人は多い様子
ttps://groups.google.com/forum/m/#!msg/android-group-japan/HFXh-FFrH0Y/R6s-baNhpZsJ

GPL使わないのが一番なので、代替があればいいんだけどね
0178名前は開発中のものです。2015/11/25(水) 21:57:31.72ID:y2Nf0zh+
MX動画プレーヤーのcodecがちょうどAPK分けてた。ffmpeg含んでて改変部分のソース公開してたので、事例の一つとしてご参考まで
0179名前は開発中のものです。2015/11/25(水) 22:19:32.11ID:7JL3PEIl
>>177
なるほど
確かにセーフだったとしても問題視されたら困るわけで、分けておいたほうが無難ですね
ありがとうございます
0180名前は開発中のものです。2015/11/25(水) 23:16:53.56ID:MXmqzv+l
UNITY画面の「Project」エリアに「Resources」フォルダを作成し「Tama」プレハブを入れました。


GameObject Tama = Resources.Load("Tama") as GameObject;

これでnullが返ってくるのはなんででしょう?
どんなミスの可能性がありますか?
0181名前は開発中のものです。2015/11/25(水) 23:27:57.51ID:MXmqzv+l
スレ汚し大変申し訳ございません自己解決です、型の指定が抜けておりました。

GameObject Tama = Resources.Load("Tama", typeof(GameObject)) as GameObject;
0182名前は開発中のものです。2015/11/26(木) 00:14:54.50ID:R83AdHPM
>>176
まぁそうなんだけどフレーム落ちした時に1/60固定で処理してると
deltaTimeで動いてるAnimatorなんかと齟齬がでるよね?

この場合Time.captureFramerate使えば良いんだろか?
なんか違う気がするけど
0183名前は開発中のものです。2015/11/26(木) 00:46:47.96ID:YIh+HfaK
カーソル->UI、カーソル->カメラ(->は親->子の関係)にしてて、
カーソルが動かすと、UIも一緒に動かしたいのだが
(見た目UIが全く動いていないように見えるように)

カーソルを動かすとUIが微妙にちょっとずつずれて移動するのは何故?
経験則からこれじゃないの的なのがあったら教えてください。
0184名前は開発中のものです。2015/11/26(木) 00:52:24.89ID:YIh+HfaK
自己解決すんません
0185名前は開発中のものです。2015/11/26(木) 01:07:26.43ID:8WZbtnJj
Resourcesフォルダ下のフォルダ内のファイル名一覧を取得する方法ってありますか?
0186名前は開発中のものです。2015/11/26(木) 01:11:12.69ID:hZtg9lco
自己解決したならどう解決したかは書こうな
0187名前は開発中のものです。2015/11/26(木) 01:21:42.97ID:v8AoePG1
将来の誰かのために解決策書いてあげたら
0188名前は開発中のものです。2015/11/26(木) 01:22:02.03ID:v8AoePG1
すまんリロードし忘れた
0189名前は開発中のものです。2015/11/26(木) 02:19:12.66ID:qxoj7I8b
>>182
秒依存の処理を全てframeCountで処理する形に書き換える必要があるね

当然mecanimはンなこと考慮してないからフレームアニメーション周りのコードを適当に自製した方が手っ取り早い
演出に過ぎないパーティクルとかは、見た目の齟齬を無視して放置したけど

再現性を確保できるプレイレコード求められて作った経験があるんだけど、正直この実装しか方法がなかったと思う
0190名前は開発中のものです。2015/11/26(木) 03:41:43.52ID:iqk3eTEK
>>185
多分だがResources.FindObjectsOfTypeAllして名前とれば取れる気がする。
エディタスクリプトならsystem.IOとかでいくらでもとれるだろう
0191名前は開発中のものです。2015/11/26(木) 04:49:14.14ID:oFwC0oVU
mecanimはUnscaledTimeベースでも動かせるとどこかで見た記憶が
0192名前は開発中のものです。2015/11/26(木) 08:52:36.38ID:83Hak3/t
俺の校長3dやドラクエの復活の呪文のように、ある文字列からはある決まった結果が出力されるようにしたいのですが、どうやって実装すればいいのでしょうか?
まったく見当もつかないので、少しでもこんな風にしたら、という意見があったらお願いします
0193名前は開発中のものです。2015/11/26(木) 09:14:43.50ID:83Hak3/t
文字列を数値に変換すればできそう……?
0194名前は開発中のものです。2015/11/26(木) 09:17:32.81ID:iqk3eTEK
それUnityとか全然一切関係ないだろw
復活の呪文生成アルゴリズムとかでぐぐれw
0195名前は開発中のものです。2015/11/26(木) 10:30:59.70ID:cQsTrsvP
Unrealとの棲み分け時代はいつ終わるだろか
0196名前は開発中のものです。2015/11/26(木) 10:43:32.52ID:o4APNHy6
C#での質問です
クリックした座標(Vector3)にオブジェクトを生成できるようにしています
現在クリックして生成したオブジェクトの座標はInput.mousePositionで取れると思うんですけど
現在クリックしている座標のひとつ前にクリックして生成したオブジェクトの座標はどうやってとればいいでしょうか?
0197名前は開発中のものです。2015/11/26(木) 10:46:07.51ID:iqk3eTEK
>>196
生成した時にそのオブジェクトへの参照作っておくとか配列に格納してくとか
0198名前は開発中のものです。2015/11/26(木) 12:07:08.84ID:KVOvvVDj
>>189
やっぱそうなるのね
確かにそのうちリプレイも必要なんで自前で固定フレーム化は必須ぽいですわ
まぁちょっと工夫すれば何とかなりそうなので頑張ってみる
0199名前は開発中のものです。2015/11/26(木) 13:30:26.37ID:+Pp4mbw5
亀レスで申し訳ないが、スクロールが遅いとお困りの皆様に朗報

CanvasのPixelPerfectのチェックを確認、オンになってたらオフに変更すると劇的に早くなる

Contents以下にILayoutGroupやILayoutControlerがある場合、アイテムを追加更新してから1フレーム待ってこれらのコンポーネントをオフれ
スクロール時に再レイアウトがかかるのを抑制する事で若干早くなる
アイテムを追加更新する場合にこれらをオンに戻す事を忘れないこと
0200名前は開発中のものです。2015/11/26(木) 15:43:24.13ID:o4APNHy6
>>197ありがとうございます
配列に格納っていうのは
Vector3[] CurrentPosみたいな感じで座標が入る変数を配列にすればいいんですよね?
0201名前は開発中のものです。2015/11/26(木) 16:07:08.97ID:OwsVaWJv
windowsビルド、macビルドについて質問です
先日めちゃくちゃショボいミニゲームを作りました
ローポリモデル3種類とビルトインオブジェクトを数種類適当に配置して作っただけの
ミニゲームです
で、それをwindowsとmacでビルドしたのですがwindowsが170MB、macが
44MBなどという超高サイズになってしまいました
これって普通なんでしょうか?
データも少ないミニゲームなのでもっと軽量にしたかったのですが
windows版はplayer_win_x86.pdbとplayer_win_x86_s.pdbというファイルも
同時に出力されたのでそれ込みの数字です
0202名前は開発中のものです。2015/11/26(木) 16:23:39.41ID:iqk3eTEK
>>200
Vector3[]で座標を入れてもいいしGameObject[]とかTransform[]とかでオブジェクト自体を入れてもいい
前回のだけだったら配列じゃなくて単品でもいいだろうしね。
0203名前は開発中のものです。2015/11/26(木) 18:01:46.56ID:o4APNHy6
>>202
色々なやり方があるんですね
とりあえずVector3でも出来るとのことでVector3でやってみようと思っているんですが

Vector3[] CurrentPos = new Vector3[2];

if (Input.GetMouseButtonDown(0))
{
currentPos[0] = Input.mousePosition;
Renge = Vector3.Distance(currentPos[0],currentPos[1]);
}

上のような感じでcurrentPos[0]の座標に関しては取得できていますが
肝心のcurrentPos[1]に一つ前の座標を格納するやり方が分からずじまいです。
あとは何を付け加えたらいいんでしょう?
0204名前は開発中のものです。2015/11/26(木) 18:22:31.48ID:FlHZZDwy
アニメーションの作成やキーでの操作を勉強中なのですが、
Wキーを押す 歩くモーション
Wキーを離す 立っているモーション
この状態ではモーションの途中でキーを離すと補完されず、
立っているモーションに飛んでしまうのですが、良い解決方法はないでしょうか?
0205名前は開発中のものです。2015/11/26(木) 19:18:27.78ID:iqk3eTEK
>>203
生成した時にとればいい。
そこには生成時のコードが書かれていないが
恐らく生成は
Instatiate(Obj,pos,rot);
でやっているのでは?
じゃあそのposをCurrentPos[1]に入れるようにしておけばいいんじゃない?
0206名前は開発中のものです。2015/11/26(木) 19:51:28.60ID:iqk3eTEK
>>204
飛んでしまわないようにMecanim内でTransitionを設定してやる
0207名前は開発中のものです。2015/11/26(木) 22:06:51.21ID:HP4axHxg
ビルドしたらShadersの項目がやけに大きくなったんですが、何が原因でしょうか?
Unityのバージョンは5.2.2f1です

Textures 19.0 mb 30.9%
Meshes 3.7 mb 6.0%
Animations 1.1 mb 1.8%
Sounds 1.0 mb 1.6%
Shaders 16.4 mb 26.7%
Other Assets 9.6 mb 15.6%
Levels 5.6 mb 9.2%
Scripts 676.8 kb 1.1%
Included DLLs 3.9 mb 6.4%
File headers 432.8 kb 0.7%
Complete size 61.5 mb 100.0%
0208名前は開発中のものです。2015/11/26(木) 22:46:02.40ID:8HfB1mXN
将来のアップデートで、2D用のマップエディタ(?)の実装が予定されてるらしいけど
実際どんな感じになるのかとか、そういう情報ってどこかに載ってる?
0209名前は開発中のものです。2015/11/26(木) 22:57:23.59ID:5Cz/ml+e
>>205
確かにInstantiateで生成しています

Vector3[] CurrentPos = new Vector3[2];

if (Input.GetMouseButtonDown(0))
{
currentPos[0] = Input.mousePosition;
Instatiate(Obj,pos(currentPos[0]),rot);

~~~~~~~~~~~; //格納する処理?

Renge = Vector3.Distance(currentPos[0],currentPos[1]);
}

多分こういうことだと思い~~~の部分に色々処理書いてみたんですが上手くいかず・・
どう処理を書けば格納されるのでしょう
あと少しな気がするんですが・・
0210名前は開発中のものです。2015/11/26(木) 23:22:03.11ID:5Cz/ml+e
>>205
確かにInstantiateで生成しています

Vector3[] CurrentPos = new Vector3[2];

if (Input.GetMouseButtonDown(0))
{
currentPos[0] = Input.mousePosition;
Instatiate(Obj,pos(currentPos[0]),rot);

~~~~~~~~~~~; //格納する処理?

Renge = Vector3.Distance(currentPos[0],currentPos[1]);
}

多分こういうことだと思い~~~の部分に色々処理書いてみたんですが上手くいかず・・
どう処理を書けば格納されるのでしょう
あと少しな気がするんですが・・
0211名前は開発中のものです。2015/11/26(木) 23:22:44.18ID:R83AdHPM
>>209
そのcurrentPosはメンバーに持たせ給えよ
ってか1つ前でいいなら配列でなくてprePosでええと思うでよ
0212名前は開発中のものです。2015/11/26(木) 23:23:36.41ID:eUj/rJh1
>>209
いや単にそこでCurrentPos[1]=currentPos[0]になるってだけだが。
問題はCurrentPosは関数内の自動変数ではなくクラスのメンバとして宣言しておくべきだということか。
またそのRengeを何に使うのか知らんが後に書いては意味がない。
例えばだが

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
public Vector3 lastPos=Vector3.zero;
public float renge;
public GameObject obj;
void Update() {
if (Input.GetMouseButtonDown(0))
{
Vector3 currentPos=Input.mousePosition;
Renge = Vector3.Distance(currentPos,lastPos);
Instatiate(Obj,pos(currentPos,Quaternion.identify);
lastPos=currentPos;
}
}
}

みたいな話。まぁテストとかしてないから動くかしらんが
0213名前は開発中のものです。2015/11/26(木) 23:25:54.25ID:eUj/rJh1
なんかInstantiateの行が変だなw
Instatiate(Obj,currentPos,Quaternion.identify);
だ。あとrengeは小文字で宣言してるから
renge = Vector3.Distance(currentPos,lastPos);
だな
0214名前は開発中のものです。2015/11/26(木) 23:45:50.47ID:FlHZZDwy
>>206
レスありがとうございました。
無事にできました。
0215名前は開発中のものです。2015/11/27(金) 00:34:30.60ID:UvIX4z0f
>>211>>212
なんとか無事形にする事ができましたありがとうございます
まだunityを触り始めたばかりだったので助かりました

やはりこういうのを理解するには、ひたすらソースコード書いて
身体に覚えさせるのが1番なんですかね
0216名前は開発中のものです。2015/11/27(金) 01:13:51.27ID:yEW7kv3s
歩く足のモーション、腕のモーション2種を用意したのですが
歩くモーションを再生したままで腕お動かすモーションをやりたい場合、
レイヤーを使えばいいと思うのですが、マスク設定で困っております。

Mask 作成して TransFormタブのUse skeleton fromにBlenderで作ったfbxファイル内の
Avatarをドラックドロップ 腕から下のボーン構造にチェックを入れる。
新レイヤーを追加して、作ったMaskを登録。アニメーションを新レイヤーに追加。

再生してみると、腕のモーションは発生せずにMaskを見てみると、Avatarを入れた部分がnoneになって
追加できていないようでした。
解決方法やマスク、レイヤーに関する情報があれば教えていただければと思います。
0217名前は開発中のものです。2015/11/27(金) 09:15:56.93ID:vox+pubD
UnityEditor.EditorUtility.DisplayDialog() でダイアログをだしています。
エディタで実行すると大丈夫なのですが、
win/mac のスタンドアローン用にビルドするとエラーになってしまいます。
(UnityEditor が無いから?)

スタンドアローンでダイアログを表示する別の関数があるのでしょうか?
それともなにかおまじないが足りないのでしょうか?
0218名前は開発中のものです。2015/11/27(金) 09:24:04.46ID:NGTQsYr3
なんでエラー内容を書かないのか
0219名前は開発中のものです。2015/11/27(金) 09:40:41.45ID:xb1lNq8b
>>217
UnityEditor以下の機能はエディタアセットを作成するためのパッケージで成果物に含めることは出来ない

ネイティブエクステンション使うかゲーム画面内にダイアログを模したUIを表示するのが普通じゃないかな
0220名前は開発中のものです。2015/11/27(金) 10:35:16.36ID:vox+pubD
>>219
> UnityEditor以下の機能はエディタアセットを作成するためのパッケージで成果物に含めることは出来ない

やっぱりそうだったんですね。

> ネイティブエクステンション使うかゲーム画面内にダイアログを模したUIを表示するのが普通じゃないかな

ありがとうございます。
どちらかの方法で対処したいと思います。
0221名前は開発中のものです。2015/11/27(金) 16:43:35.88ID:UOHB3T3I
>>208
あんまないよね、俺も気になってる
Uniteの動画が一番情報量あるんじゃないかな
まだいつ搭載されるのかも決まってないようだし、pro買ってアルファ版アクセス権得るのが手っ取り早いんだろな
0222名前は開発中のものです。2015/11/27(金) 19:29:54.66ID:yEW7kv3s
質問したとおりにやってみたらなんかできた・・・
何が原因だったかわかりませんが自己解決しました。
スレ汚しごめんなさい。
0223名前は開発中のものです。2015/11/27(金) 21:59:19.37ID:Q32gfWAf
Android向けにビルドしたのですが、
ホームボタンで画面を切り替え、
アプリアイコンから復帰させようとすると、最初のスプラッシュ画面からになってしまいます。
レジュームするには何かコードを書く必要があるのでしょうか?
0224名前は開発中のものです。2015/11/27(金) 22:24:02.15ID:Q32gfWAf
すみません自己解決しました

AndroidManifestを設定することでOK

UnityPlayerNativeActivity内で以下のタグを追加
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>

だそうです
http://mgstyt.blogspot.jp/2015/07/unity-manifest.html
0225名前は開発中のものです。2015/11/27(金) 22:24:42.44ID:zidhKiM3
ものすごい初心者ですみません。
PlayerPrefs.DeleteAll();でデータが消えないです
PlayerPrefs.DeleteKey(sample);でキーを指定すると消えるのですが、
いちいち指定せずにすべてまとめて初期化したいです。
かれこれ数時間調べていますが原因がわかりません。。。
0226名前は開発中のものです。2015/11/27(金) 22:37:11.19ID:beS4xmUs
エディタ上でシーンAに対してシーンBに配置されているオブジェクトXを持ってくる
ということをしたいのですがどうすればよいでしょうか?
0227名前は開発中のものです。2015/11/27(金) 23:10:48.93ID:/CA6Z/t/
コピペかプレファブじゃいかんの?
0228名前は開発中のものです。2015/11/27(金) 23:14:34.15ID:utSkfed3
Androidアプリを作っているのですが、
他のアプリが保存しているファイル(data/data以下にあるファイル)をこのアプリで読み込むためにはどうすればいいですか?

AndroidJavaClass jc=new AndroidJavaClass("java.content.context");
AndroidJavaObject ctxt=jc.Call<AndroidJavaObject>("createPackageContext","com.aaa.sample",0);
StreamReader sr=ctxt.Call("openFileInput","hoge.txt");

のような感じでファイルを開こうとしたのですが今いち上手くいきませんでした。
0229名前は開発中のものです。2015/11/27(金) 23:34:12.70ID:s5Sz3pae
ずっとDirectX7と8ベースの自作ライブラリを使って
2Dゲームにちょっと3D機能を組み込んだゲームとか作ろうと思ってるんだけど
Unityのが使いやすいかな?もしUnityで同じような事が簡単に出来るなら移行した方が楽なのかな。
機能としては板ポリを多重スクロールのマップやスプライトっぽく表示して
それに各種3Dの機能をかけてるみたいな感じだけど(拡縮変形、フォグ、ライティング、ミップマップ、ステンシルとか)。
0230名前は開発中のものです。2015/11/27(金) 23:38:59.02ID:beS4xmUs
>>227
シーンをまたいでコピペできることに気が付きませんでした
ありがとうございます
0231名前は開発中のものです。2015/11/27(金) 23:50:24.13ID:4iajQ9uz
>>229
どの時代から来た方ですか?
Unityを使うと15年程の隔たりを感じることになると思います
0232名前は開発中のものです。2015/11/28(土) 00:22:29.15ID:6Eftl0GH
>>229
それで自在に使えてて機能に不満ないならそっち使い続けた方がいいと思うよ。
まぁUnityの機能でも全部できるような範囲なら多少楽になるかもしれないけど
「これがやりたいのにできない!」みたいな部分が出てくるとすげえめんどくさくなるので
むしろそういう人ならUE4にいった方がまだいいと思う。C++だし
0233名前は開発中のものです。2015/11/28(土) 00:28:46.99ID:PB3TonwB
UnityというかC#の質問なのですが、
文字列変数の内容を式として評価させる、あんまりややこしくない方法ってありますか?
大量の分岐条件があるので、CSVファイルで一括管理して読み込んで使いたいのですが

こういうのです
条件は色んなパターンがあります

string jouken = "flag >= 5";

if(jouken){
//flag5以上の場合実行
}
0234名前は開発中のものです。2015/11/28(土) 00:38:09.06ID:p8glCBJ3
意味がわからん
0235名前は開発中のものです。2015/11/28(土) 00:41:54.48ID:eKkgdT/J
2ch以外で質問に即レスくれる所はどこですか?
0236名前は開発中のものです。2015/11/28(土) 00:44:57.72ID:cU3vonGW
>>225
どうして消えないのかよくわからんけど、最終的な妥協策としてキーを全部列挙型で管理してforeachで全部消すメソッドでも自前で作るといいんじゃね
配列とかリストでもいいけど
0237名前は開発中のものです。2015/11/28(土) 00:46:15.04ID:cwU+dOTE
>>231
もうかなり古いverのDirectXですからねえ汗
>>232
確かにそれが怖いんですよねえ。
今のライブラリで簡単にできてた事が
結構めんどくさかったりとかプログラムってそういうの結構あるじゃないですかー
まぁ隅々まで把握してる今のライブラリでとりあえず作ってた方がいいのかなあ。

ありがとうございました。
0238名前は開発中のものです。2015/11/28(土) 00:46:22.84ID:br/g1Wfy
>>233
evalでぐぐれば何か見つかるんじゃないだろうか
0239名前は開発中のものです。2015/11/28(土) 00:47:33.56ID:6Eftl0GH
>>233
リフレクションやDynamicで動的にコード生成するとかしかないと思うが
速度を要求されるようだと厳しいだろうし外部の変数とか参照したいとかになると
かなり冗長なシロモノになるとは思う。
まぁC#スレで聞いた方がいいだろうね。

そういうのはむしろコード生成用のプログラムを書いちまう方が早い気はする
0240名前は開発中のものです。2015/11/28(土) 00:53:25.58ID:PB3TonwB
>>238-239
ありがとうございます
http://www.codeproject.com/Articles/11939/Evaluate-C-Code-Eval-Function
この辺りで何とかなりそうなので試してみます
あまり冗長になるようだったら諦めます
0241名前は開発中のものです。2015/11/28(土) 00:53:37.81ID:FfMUOsYz
>>233
https://gist.github.com/baba-s/9287103#file-tagnamecreator-cs
これみたいにc#のソースファイルを書き出すスクリプト書いてその自動生成したクラスを読み込むとか?
javascriptなら文字列の中の構文を解析するやつが標準であったけどc#はどうだろうね
02422332015/11/28(土) 00:55:33.01ID:PB3TonwB
JavaScriptだとeval関数で一発なんですね……
0243名前は開発中のものです。2015/11/28(土) 00:57:56.17ID:FfMUOsYz
奇遇にもUnityではjavascriptもどきが使えるではないか
0244名前は開発中のものです。2015/11/28(土) 01:01:04.95ID:UH+o5jUy
Unity lua interface libraryじゃあかんか?
0245名前は開発中のものです。2015/11/28(土) 02:33:19.55ID:/pOQOmpd
質問です
StandardAssetのFPScontrollerのカメラ操作を変更したいのですがどうすればいいのでしょうか?

具体的には標準の「マウス移動→カメラ移動」という動作から
「右クリックをしながらマウス移動→カメラ移動」に変更したいです

どなたかお力をお貸しいただければ幸いです
0246名前は開発中のものです。2015/11/28(土) 03:04:59.85ID:719eJwCn
>>236
親切にありがとうございます。
諦めてキー列挙して消す原始的なスクリプトでその場しのぎしました。
結局原因はわからずでした。。。
0247名前は開発中のものです。2015/11/28(土) 04:41:54.93ID:D5Egayte
オブジェクトのピボットポイントの変更ってどうやるんです?
0248名前は開発中のものです。2015/11/28(土) 06:41:42.24ID:FfMUOsYz
>>245
Standard Assets > Characters > FirstPersonController > Scripts > MouseLook.csのLookRotationメソッドが実際にカメラを動かしてるみたいだから、
そこの35,36行目辺りを右クリックを押してたら実行するようにすればいいんじゃないかね
右クリックは確かGetButton("Fire2")だったっけか
0249名前は開発中のものです。2015/11/28(土) 08:53:18.54ID:6Eftl0GH
>>247
オブジェクトにピボットがついているのではなく
ピボットを基準点にして座標がきまっているのだから
メッシュなら全ての頂点の位置をピボットをずらしたい逆方向に
移動した新しいメッシュデータを作るしかない。

親子付けでオフセットすればそれで足りるならそっちの方がラク。
0250名前は開発中のものです。2015/11/28(土) 09:32:08.79ID:JktwsIA3
>>233
> 文字列変数の内容を式として評価させる、あんまりややこしくない方法ってありますか?

ちゃんとやるなら、字句解析して式を構文解析して評価すればいい
ただ、それを「ややこしい方法」と思うかどうかは、
人それぞれだと思う。
0251名前は開発中のものです。2015/11/28(土) 13:07:36.44ID:K7SMwwsA
そもそも条件分岐をCSVで管理するメリットが本当にあるのかね
量が多いだけなら普通に実装した方が楽そうだが…
0252名前は開発中のものです。2015/11/28(土) 14:43:07.28ID:oaZXNjjE
変数 演算子 実数
で分ければラクチンなんだけどそういう問題じゃないんだよなきっと
0253名前は開発中のものです。2015/11/28(土) 16:16:21.38ID:O1Xrl+GW
Photon Unity Plus(課金する方)について質問です。
PhotonNetwork.ConnectUsingSettings (null);

void OnJoinedLobby(){
0254名前は開発中のものです。2015/11/28(土) 16:18:38.73ID:O1Xrl+GW
すみません、書いてる途中でご送信しました。

Photon Unity Plus(課金する方)について質問です。
Androidにapkを渡してゲームをインストールさせているのですが
PhotonNetwork.ConnectUsingSettings (null);
がどうもキチンと動いてくれないようで、
void OnJoinedLobby(){}
の関数が実行されません。

PC同士だと正常に通信できるのですが、Androidだと動いてくれないのですが、何が原因でしょうか……
0255名前は開発中のものです。2015/11/28(土) 17:16:26.27ID:Zgz7Weyj
あるモーションが終わった時に、そのオブジェクトを消す処理をしたいんですが、
モーションが終了したことを取得する方法がわかりません。
どうすればいいのでしょうか?
0256名前は開発中のものです。2015/11/28(土) 17:16:58.03ID:O1Xrl+GW
先ほど書き込んだ>>254です。
自己解決しましたので一応他の方のためにも解決方法記載しておきます。
アンドロイドでインターネット通信を許可させる設定を設定する必要があったようです。
Edit>Project settings>Player
内のアンドロイドタブの「Inernet Access」を「Require」にしたらできるようになりました。

お騒がせしました。ありがとうございました
0257名前は開発中のものです。2015/11/28(土) 18:59:45.63ID:5qGI1BMK
棒オブジェクトの角度xに制限をかけてRotateで回転させているのですが、
角度が90度になった時点で入力を受け付けなくなってしまいます

//棒オブジェクトの回転制限。棒に直接アタッチ。
void Update(){

bar.transform.rotation=Quaternion.Euler(Mathf.Clamp(transform.eulerAngles.x,10,100),0,0);

}
//メインオブジェクトから入力に応じて回転

void Update(){

float ver_move=Input.GetAxis(
0258名前は開発中のものです。2015/11/28(土) 19:04:04.86ID:5qGI1BMK
途中で送信してしまうだと…
メインオブジェクトからの操作
void Update(){

float ver_move=Input.GetAxis("Vertical");
bar.transform.Rotate(ver_move,0,0);
}
一応、bar.eulerAngles.xの値をDebug.Logで監視しているのですが、
角度が90を超えた途端にロックがかかったように数値の増減がなくなります。
(ちなみに10以下にはならずちゃんと制限がかかっている)
何が原因で回転角度が90を超えた途端に動かなくなるのか教えてつかぁさい…
0259名前は開発中のものです。2015/11/28(土) 19:08:47.25ID:6Eftl0GH
>>255
まぁそういう単純なことをしたいならレガシーなアニメーションを使った方がラクではある。
http://docs.unity3d.com/ja/current/ScriptReference/Animation.IsPlaying.html
Animatorの場合は中でどういう設定が行われているか次第なので一概には言えない部分もあるのだが
・GetCurrentAnimatorStateInfoを使ってAnimatorStateInfo.normalizedTimeをみる
・クリップにイベントを発行させる
・StateMachineBehaviour.OnStateExitを使う
あたりだろう
0260名前は開発中のものです。2015/11/28(土) 19:16:34.88ID:6Eftl0GH
>>258
本体側のtransformの挙動をInstpectorで監視していればわかると思うが
Xの角度が90度以上になっていないはず。
だからそれを受けたbar側への入力も90度以上にはならない。
何故そうなってしまうのかというとQuaternionをオイラー角に変換する時の手続きの問題。
その手続きの変更はUnityのQuaternionの機能には含まれてないので
自分で変換しなおしてやるか別のやり方をするしかない。
ちなみにY角からもってくるようにすれば大丈夫なはず
■ このスレッドは過去ログ倉庫に格納されています