トップページgamedev
1001コメント358KB

【3Dゲームエンジン】Unity質問スレッド5

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/06/25(火) 03:51:44.47ID:vfI8rCSw
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。

Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他

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

■前スレ
【3Dゲームエンジン】Unity質問スレッド4
http://toro.2ch.net/test/read.cgi/gamedev/1362821620/

■本スレ
3Dゲームエンジン】Unity総合スレッド19
http://toro.2ch.net/test/read.cgi/gamedev/1368814728/

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0136名前は開発中のものです。2013/07/12(金) NY:AN:NY.ANID:pIoGzvnf
Unityの勉強を始めたいと思っています
近々PCを買い換えるのですが、AMD A8のグラボ無しとかだと厳しいですか?
2Dのゲーム(RPG、SLG)を作りたいと思っているので、それほど高価なPCは必要ないと予想していますが、甘いですか?
0137名前は開発中のものです。2013/07/12(金) NY:AN:NY.ANID:Tn4nTOmR
>>136
自分が2Dとして使うつもりでも、中の仕掛けは平行投影で表示する3Dであって、
「2Dだからロースペックでいい」みたいな話は基本的に見当違い
0138名前は開発中のものです。2013/07/12(金) NY:AN:NY.ANID:U8kp+ej9
2Dならプチコンで作ればいい
0139名前は開発中のものです。2013/07/12(金) NY:AN:NY.ANID:ONHYLHk3
>>135
コピーしたソフトを特定多数に売ったり配布した結果
それをやった人間の身に何が起こったか知らないのか?
0140名前は開発中のものです。2013/07/12(金) NY:AN:NY.ANID:U8kp+ej9
知らないから教えて
0141名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:0wDWQ2Yz
知らないねぇ。
0142名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:ftbn7RHB
2Dでも良いのかった方が良いとおもうよ
性能が悪いとフィルレートの方で頭打ちになる
0143名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:DBk0xDEj
>>140-141
https://www2.accsjp.or.jp/piracy/piracy.php
通報して実験してみればいいよ
0144名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:+a+F6FDj
なんだ知ったか専門学校生か
0145名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:0wDWQ2Yz
>>143
それは特定可能じゃないものでしょ?
だいたいウェブで見れる時点で不特定多数に公開してるって事だしな。
0146名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:ZpoUx+We
アップロードや海賊版販売の場合の報告先だなこれは
まぁよくわからんがどうでもいいのとスレチ
0147名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:MUshrCgZ
>>136
A8の内蔵GPUならこのスレに居る奴の大半のPCよりスペック高いから十分だよ
足りなくなったらRadeon増設すれば良い
0148名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:FccQ5igj
>>136
2D限定ならUnity使わないで他のツールを使った方が速いし捗ると思う。
0149名前は開発中のものです。2013/07/13(土) NY:AN:NY.ANID:XTuQRntR
>>148
他のツールっつってもあんまりこういうドラッグ&ドロップ+スクリプトみたいなので使い勝手良いのないよね。
AdobeのFlashツールでそのまま使えれば2D系の人は幸せなんだろうけど。
0150名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:waX78rJm
すみません、主観カメラの制御をしてるんですが、
0151名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:waX78rJm
Z軸を固定する方法を是非教えて下さい
0152名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:utrMSTzY
xとYしか動かないようにしろ
0153名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:HgMOf7f6
>>144
ネットオークションは基本的に特定多数だろ
落とした特定の個人に発送するんだから
これだから屁理屈ばかりこねる割れ厨(予備軍を含む)は困る
0154名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:3t5B+JKS
>>150
カメラにrigidbodyを付けて、Freeze Positionを適当に弄る
0155名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:dqftsLKd
>>153
早く教えてよ〜
知らないなら黙ってろks
0156名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:36wpqnGV
なんかよーわからんが会社のPCに入ってるProでビルドしてもバレんっぽいな
0157名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:hvhxsvI6
お前の所はデータ持ち込み持ち出し自由なのか?
0158名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:VEwP4MSU
零細なんだろw
0159名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:36wpqnGV
>>157
スマホをPCにUSB接続してても「充電してます」で通る現場がまだまだ大多数だぜ
通らない現場でもせいぜい誓約書に禁止事項として書かれてるくらい
社内セキュリティシステムにそれを検出する機構まであるのは極限られた大企業だけってのが現実さ
0160名前は開発中のものです。2013/07/14(日) NY:AN:NY.ANID:3t5B+JKS
Unityのkeystore生成機能、もう修正されてるんかな
昔はkeytoolで生成しないとエラー吐いたから使ったけど、正直面倒臭い
0161名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:bMLmHnWQ
壁に銃弾痕を作りたいんですが、銃弾痕を作りたいコリダ―の上にキャラをせき止めるコリダ―を重ねたら
rayが銃弾痕のコリダ―に届きませんでした。何かいい方法はないでしょうか?よろしくお願いします。
0162名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:ib03ItJj
レイヤー分ければできそう
0163名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:DiwhCf2d
>>162
ありがとうございます!レイヤマスクでできました!
0164名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:JqG7KO3m
またコリダー君かw
0165名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:7KYx5vHJ
男根が届きませんでしたってどんだけ短小なんだよ
0166名前は開発中のものです。2013/07/15(月) NY:AN:NY.ANID:YjYA+KAM
9cmってことか
0167名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:3hHtctOV
>>136

金なさ過ぎ。
石はcoreシリーズで、グラボ2万くらいの載せろよ。
Unity以外でも使うんだろ
0168名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:Lx/3xIoQ
昨年春の薄型ノート(Intel HD 4000)で開発してるけど、
PS3ソフトでやるようなよっぽどのエフェクトでも使わん限り、
ぜんっぜん問題なくサクサク動いてるよ。
0169名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:hTCJSU2K
開発マシンは性能が高い方がいいけど
動作保証性能ギリギリのマシンも動作確認用に欲しいな
しかし、わざわざ性能の低いマシンを買うのも勿体ない気がする
そういう意味では今現在ゴミマシンをタダで手にしている>>136がうらやましい
0170名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:a2BRLGv6
流れのある水の中に一円だまを投げ入れるような物を作りたいのですが、
Unityで流体の動きを再現するのは難しいですか?
0171名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:1XcUDVcl
お前なら出来る!
0172名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:bKg+NUEV
まともに計算は無理だろうからそれっぽくつくれば
0173名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:Lx/3xIoQ
Unityベースの水流ゲームがあった気がするけど
かといってUnityなら簡単にとかっていう話ではないな
0174名前は開発中のものです。2013/07/16(火) NY:AN:NY.ANID:a2BRLGv6
やっぱ機能にないしUnityだけでやるのは難しいんですかね。
となると別の開発方法で検討してみます
0175名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:yMVagp7E
aniso level を9にしても、テクスチャがボケることがあるのですが
これはもうどうしようもないのでしょうか?
0176名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:/9+L7Ybt
どういう状況でボケて表示されるかを明らかにしないと答えようがない
伸縮率があまりに違えばボケるのは当たり前。でも他に原因があるかもしれない
0177名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:36r5SVlx
>>172
文化や芸術を理解するには知識ではなく知性が必要だからね
テストでいい点取って喜んでいるうちは所詮朝鮮人レベル
日本人としてはそれより一段高い知的水準になければ達しているとは認められないだろう
0178名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:PTeAk2qR
>>177
そんな事いってるとしばき隊がくるよってばぁちゃんが言ってた
0179名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:W2G1ims3
少し前から、一般論を振りかざしてドヤ顔してる奴がスレに貼り付いてるな
0180名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:m3NBmkT8
ゲーム専門学校生よりマシになったね
0181名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:0BuFjOmK
そもそも日本語理解できてなさそう
0182名前は開発中のものです。2013/07/17(水) NY:AN:NY.ANID:R1zTtRxc
日本語は難しいからなぁ
0183名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:yqhKyrBF
すみません、今Unityでタワーディフェンスにチャレンジしているのですが、
敵を目標に向かって、自動的に移動するスクリプトにチャレンジしているのですが、
動かす予定である、enemyタグを付けたオブジェクトを座標(0,0,0)に移動させるため、以下のJavaScript(後でC#に最適化予定)を適応させました。
けれども、プログラムに問題がありスクリプトが実行されませんでした。

var spd:float = 0.05;
GameObject enemy = GameObject.Find("enemy");

function Update () {
// x座標が0以下なら移動する。
if(0>enemy){
transform.position.x += spd;
}
// z座標が0以下なら移動する。
if(0>enemy){
transform.position.z += spd;
}
}

問題点としては、
1.座標データ書き方を間違えた
2.オブジェクトのタグを取得できなかった
と、考えているのですが、どのようにすれば直るでしょうか。
0184名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:uifWrfR0
>>183
if(0>enemy){

ってなんなんだ?

最初からC#で書くといいかもよ?
型を意識できるから。ケアレスミスも減る。
0185名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:uMCEidxp
enemy.x enemy.z とかじゃないの?
enemyで参照するとスカラー値かなんか帰ってくるのかな?
0186名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:imnTIcj9
一定のルートを移動するだけなら
透明のコリダーとかを配置して通路を作って、そこに敵を放り込むのがいいと思うよ。
0187名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:UbedvFXW
テストしてないし、仕様上全角スペース入れてるから、多分コピペしても動かないけど

using UnityEngine;
using System;

public class EnemyAi : MonoBehaviour {

 Vector3 toGoPoint = new Vector3(0.0f, 0.0f, 0.0f); // 目指す座標
 float spd = 0.05f;
 GameObject enemy = gameObject;

 void Update() {
  transform.LookAt(toGoPoint); // toGoPointの座標へ向く
  transform.Translate(Vector3.forward * spd * Time.deltaTime); // 1秒間にspdメートル正面へ移動
 }

}
0188名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:UbedvFXW
enemy はGameObject型だから、以下のメンバしか参照できない
http://docs.unity3d.com/Documentation/ScriptReference/GameObject.html

もし座標を直接参照したいなら、 こんな感じで辿ってく必要がある
enemy ← GameObject型 http://docs.unity3d.com/Documentation/ScriptReference/GameObject.html
enemy.transform ←Transform型 http://docs.unity3d.com/Documentation/ScriptReference/Transform.html
enemy.transform.position ←Vector3型 http://docs.unity3d.com/Documentation/ScriptReference/Vector3.html
enemy.transform.position.x ←float型
0189名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:UbedvFXW
gameObject や transform と書くだけで参照できるのは、EnemyAiがComponentを継承しているから。
Componentクラスには、gameObjectやtransformが定義されている
http://docs-jp.unity3d.com/Documentation/ScriptReference/Component.html

「EnemyAi : MonoBehaviour」だから、MonoBehaviourしか継承していないんじゃないの?と思いきや、
MonoBehaviourも別のクラスを継承しているから、実際の継承の関係はこうなってる:
Object←Component←Behaviour←MonoBehaviour←EnemyAi
0190名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:LH33bsJH
それ以前にこれOKだっけ?
transform.position.x += spd;
こうじゃね
transform.position = new Vector3 (なんとか);
Positionプロパティの返すコピーされた構造体を書き換えても全く無意味。
JavaScriptだといけるのか?
0191名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:yqhKyrBF
>>184 >>185 >>186
>>187 >>188 >>189
返信ありがとうございます。
C# 自動移動 でググッたのですが、見つからなくて、
JavaScriptでやりたいことを実行できるようにしてから、
C#に書き換えた方がいいのかなと思いました(Unityのスクリプト難しい)。
リンク先を見て、勉強していきたいと思います。

>>186
まず、ゴールに行くロジック作ってからのほうが楽かなと思いました。
ゴールの位置が変わっても、いつでもそこに向かって行くように設定すれば、
ゴールの位置や敵の出現位置を変えることができるので、ステージの幅が増えるかと考えました。
0192名前は開発中のものです。2013/07/18(木) NY:AN:NY.ANID:yqhKyrBF
>>190

JavaScriptではできました。
オブジェクトのx座標を変数spd分だけ増減させるので、
一方向に移動するなら、これだけで十分でした。
0193名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:doSR8nqv
すみません、初歩的な質問なのですが、
スクリプトの記述が誤っていると、
他の操作をすると、スクリプトが未編集と表示されて、
スクリプトを入れ替える等の操作ができなくなります。
今までは、ソースファイルごと削除して、対処したのですが、
ソースファイルの書き換えをしようとすると、余計な手間がかかるので、
どうしたらいいのでしょうか?
0194名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:/fmR9BxQ
コメントアウトでググりなさい
0195名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:doSR8nqv
書いたところ全部、コメントアウトするということですか。
一応、間違っていると思ったところをコメントアウトするのですが、
それでも症状が変わらなかったです。
0196名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:h1RXLXQ4
> スクリプトの記述が誤っていると、
記述が誤ってるなら、エディタの下の方にエラーが表示されてるはずだから
それを参考にスクリプトを修正して、エラーを消す。
0197名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:/fmR9BxQ
>一応、間違っていると思ったところをコメントアウトするのですが、
>それでも症状が変わらなかったです。

プログラム、勉強でググりなさい
0198名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:doSR8nqv
>>197
すみません、とりあえず、ソースコードを全てコメントアウトしたのですが、
編集中とあって、コンポーネントの編集ができませんでした。
やっぱり、スクリプトファイルを少しでも間違えると、
Unityは、他の作業ができなくなる仕様ということでしょうか?
0199名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:q4VUzOo/
>>198
そんなことは無い
というか編集中だろうが何だろうが
テキスト自体のデータは保存するまでは前の保存時のままのデータとして扱われるので関係ない
ソースにミスがあるとコンパイルできないってだけ
コンポーネントの編集ができないってのは何かがおかしい
コンポーネントはいつでも編集できるやつだから
コンポーネント自体のファイルを直接何かで開いてるって可能性もあるが、無料版だと普通はブラックボックス化されてるのでどれかわからないし無理
だからインストール時にファイルが破損した可能性の方が高いのでインストールしなおすのが良いと思う
0200名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:doSR8nqv
>>199
なるなる、インストールするときに破損した可能性を見落としてました。
いま、PC内のUnityをアンインストールして、インストールしなおしています。
0201名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:wcHxuvA4
再インストールしても同じだよ
コンパイルエラーのままじゃEditor操作出来ないよ
とりあえずコメントアウトしてコンパイル通す程度のプログラミング能力をてに入れよう

ソースコード全てをコメントアウトしようがエラー直さなきゃ駄目でしょ
コンソールの情報を見て、その指摘内容を修正するていどの力がなきゃ
いくらUnityでも使うレベルに無い人間だよ
0202名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:DQp16W20
>>183

基本的にunityはjavaScriptかC#が理解できて
プログラム組める人じゃないと何も作れないと思うよ?

コード見てると基礎的な部分が理解できてないから
unityと並行してjavaScriptを勉強した方が良いと思う

これから覚えるという段階ならC#はウインドウズアプリも
組みやすいというメリットがあるから、どちらが自分に合った言語か判断して選ぶと良い

たぶん、それなりに長い道のりになるだろうけど頑張ってくれ
0203名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:pyZCHZMZ
> C# 自動移動 でググッたのですが、見つからなくて、

って言うレスを見た瞬間 >>202 のレスが妥当だと思った
0204名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:VBcDHjKs
日系の釣りかと思ったらちがうっぽ
0205名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:dN+9yzPm
すみません、初心者です。
プレビューしながらエフェクトなどを追加したり数値をいじったりして、
それをそのまま、シーン及びエフェクト、カメラの設定等、全部一括でセーブできる
プラグインってないのでしょうか…><
0206名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:AP/s787v
>>205
https://www.assetstore.unity3d.com/#/content/188
コレは何?
0207名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:AP/s787v
間違えた。
https://www.assetstore.unity3d.com/#/content/2092
こっちか。
0208名前は開発中のものです。2013/07/19(金) NY:AN:NY.ANID:dN+9yzPm
これ、買ってから気づいたのですが、
イメージエフェクトはUnityの制限か何かで、数値をセーブできない
みたいなんです。なのでリアルタイム(実際のゲーム画面?)で
エフェクトを調整してマルっとセーブというのは、あきらめました。。。
ありがとうございました!!
0209名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:YkDTiyea
なるゲーム再生しながらプロパティーの数値いじったら変更されずに元に戻るUnityの仕様いらなくない?
普通に変更されて欲しいのだけど
0210名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:XqstlZ3g
再生中なら普通に考えても無理じゃね
例えばVisualStudioなんかのIDE上でRunしてる時に、中のクラスメンバの値を
勝手に外部から書き換えできないのと同じ意味で
0211名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:66aalc6+
キャッシュに保存しといて、ベイクしますか?選択肢出せるようにしてくれればベスト
毎回はウザイだろうから変えた時だけ選択肢出てきてくれればいいなー
0212名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:rZcNKLpQ
paならできるぞ
0213名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:XqstlZ3g
PAはそんな枝葉末節以前の問題で却下
0214名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:yTQgtvQY!
>>209
それは困る。
色々数値変更してテストしてるうちに初期値忘れちゃうもん。
0215名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:ExCGSRAn
ソースの初期値を変えても反映されないとか
何回はまったことか
0216名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:f5a+cjaK
初心者のものです。みなさんはモデリングソフトに何を使っているんですか。
0217名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:yxu8a8Qt
blenderとzbrushかな
GoBで連携出来てすげー便利
0218名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:f5a+cjaK
ありがとうございます。>>217
0219名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:dJMvXjLa
maya mudbox
0220名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:f5a+cjaK
ありがとうございます。>>219
0221名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:f5a+cjaK
mayaの機能のムービーにロックマン的なのがありましたね。3Dのロックマンを作ろうかなと考えていたんです。
0222名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:f5a+cjaK
補足>>219
0223名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:yxu8a8Qt
見逃してたけど、メールアドレスのとこに本当のアドレス入れなくていいよw
面倒なことになるかもしれないからさ
通常は半角でsageって入れておけばok
0224名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:zPKD8Loc
どーせ嫌いな奴のアドレス挿れてるんだろ
0225名前は開発中のものです。2013/07/20(土) NY:AN:NY.ANID:DAR6/vL1
全然知らない人が使うと書いちゃうよなw
0226名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:neHXkp6i
大昔に書いた(ぺんぎんさんがいっぱい居る板)えらいめにあった
0227名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:iWKsYeSy
2chも初心者なもので…。すいません。
0228名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:e6Q14lTp
>>223>>225
sageとかを知らなくてもE-mailのところはもとから(省略可)って書いてあるんだから、
普通教えたくなければ書かないんじゃ・・・?
っていうのは置いといて。

エラーが解決できないので質問させてください。
Unity+JavaScriptで神経衰弱を作っています。
神経衰弱自体は以前HTML+JavaScriptで作った経験があります。
めくったカードの確認やターンの制御などをさせている関数turns()があるのですが、
そのturns()の中でturns()を呼び出すと以下のエラーが2つずつ出ます。
「Assets/Script/sinkeisuijaku.js(205,49): BCE0070: Definition of 'sinkeisuijaku.turns()' depends on 'sinkeisuijaku.turns()' whose type could not be resolved because of a cycle. Explicitly declare the type of either one to break the cycle.」
「Assets/Script/sinkeisuijaku.js(230,41): BCE0070: Definition of 'sinkeisuijaku.turns()' depends on 'sinkeisuijaku.turns()' whose type could not be resolved because of a cycle. Explicitly declare the type of either one to break the cycle.」
turns()の中でturns()を呼び出している部分をコメントアウトすると、このようなエラーは出ません。
再帰が使えない可能性も疑いましたが、ネットで調べてみてそのような話は見かけませんでした。
この文章だけでは伝わらないと思うので、以下にすべてアップしてみました。
http://gmdev.xrea.jp/
[955.zip] 神経衰弱 エラー BCE0070 1.01MB 2013-07-21 sinkeisuijaku.zip
スクリプトは↑にあるようにAssets\Scriptに入っているsinkeisuijaku.jsです。
現状まだコンピュータのAIを書いていないため、無駄にコンピュータ用の関数を呼び出していたりしています。
まだ順番に移植してスクリプトを手直ししている最中なので、もしかしたら他のエラーやバグが潜んでいるかもしれませんが、
上のエラーに関すること以外ならスルーでもかまいません。
シーンはAssets\Sceneに入っているsinkeisuijaku.unityです。
もとは別のプロジェクトの一部であるためかトランプのテクスチャーが破損(?)してピンク色(?)になってしまっているのはスルーしてください。
(トランプ52枚のテクスチャーを再設定させるのは面倒なので・・・; すいません。)
0229名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:ltdkKzLm
>>228
ネットで調べる前に、Unityさんが再帰って言うか
turns()の解決が出来ないから、そう言うコードを書くなって
ちゃんと言ってるだろ

人の2chの使い方突っ込む前に、自分のunityの使い方を学びなよ
その自身の設計が間違って無いって猛烈な自信はどっから沸いて来てるの?
0230名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:O4y3qBSO
>>228
> 再帰が使えない可能性も疑いましたが、ネットで調べてみてそのような話は見かけませんでした。
残念ながらUnityは、ディープな話に関しては日本語の情報がまだまだ少ない
unityscript recursion辺りでググれば出るんじゃない?
0231名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:e6Q14lTp
>>229
>turns()の解決が出来ないから、そう言うコードを書くな
turns()の中でturns()を呼ばなければエラーが出ないので、
なんとなく再帰呼び出しを疑ってみただけです。

>人の2chの使い方突っ込む前に
軽い気持ちで書いてしまってどうもすいませんでした。

>その自身の設計が間違って無いって猛烈な自信はどっから沸いて来てるの?
間違ってないっていう自信はないです。
移植もとがうまくいっても移植先でうまくいかない経験は何度もしています・・・;
今もturns()のなかでturns()を呼び出さずに実行させてみたら、配列の範囲外にアクセスしようとしていたエラーが1つ見つかりました。
あとはエラーは出ませんでしたが思ったところで処理が止まらないバグが見つかりました。
すべてを試す前に投げてしまってすいませんでした・・・
0232名前は開発中のものです。2013/07/21(日) NY:AN:NY.ANID:RN7Vswj9
>>231
turnsの呼び出しじゃなくて
yield WaitForSeconds
を削ったらうまくいきませんか?
0233名前は開発中のものです。2013/07/22(月) NY:AN:NY.ANID:0n1C9rMd
function turnsの定義の戻り値をvoid指定して定義を他の呼び出しよりも先にしても駄目か?
function turns(): void {にして、コードをもっと若い行に移動
0234名前は開発中のものです。2013/07/22(月) NY:AN:NY.ANID:0n1C9rMd
見直したらyield WaitForSeconds(ほげ)が原因っぽいなー
それよりも普通に未定義変数が入っててコンパイルできないのもアレだわ
0235名前は開発中のものです。2013/07/22(月) NY:AN:NY.ANID:k2lefDgM
>>232>>234
turns()内のyield WaitForSecondsをコメントアウトしてみましたが、それでも同じエラーが出ました。

>>233
turns()の戻り値にvoidを指定してみたところ、
「Assets/Script/sinkeisuijaku.js(143,18): BCE0101: Return type 'void' cannot be used on a generator. Did you mean 'IEnumerator'? You can also use 'System.Collections.IEnumerable' or 'object'.」
と言われてしまい、どうやらvoidは使えずIEnumerableかobjectじゃないといけないみたいです。
(Document Outline見る限りUpdateやOnGUIなどはvoidらしいんですけどね・・・ 宣言しなければturns()もvoidのようですし・・・)
そこで、わけもわからずですがStartと同じようにIEnumeratorに(エラー文が行っている方と違ってますね・・・;)を宣言してみると、
turns()の呼び出し位置そのままにエラーが出ることなく思った動作(カードめくって同じカードか判断したり、必要に応じてターンを切り替えたりなど)ができました。
また、書いてある通りの型―何も返すつもりはないのでobjectにはせずIEnumerableにると、エラーは出なかったもののそろってなかったときに戻すという動作が進みませんでした。
IEnumerableやIEnumeratorは知らなかったので、これから自分で調べてみようと思います。
そもそもfunction 関数名():型名で戻り値の型宣言ができること自体知りませんでした・・・;

>>234
コンピュータの動作はまだ特に記述していませんが、関数自体は一応定義はしています。
呼び出されても何もしないものですけど。
呼び出されても何もしない関数を呼び出したということではエラーは出ていません。
戻り値の型宣言してエラーが出なくなってからも問題なく実行できています。

こんな私の質問に答えてくださってどうもありがとうございました。
ファイルの方は削除させてもらいました。
■ このスレッドは過去ログ倉庫に格納されています