【3Dゲームエンジン】Unity質問スレッド11
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/08/05(火) 22:02:24.88ID:WCQkNfyPWindows/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質問スレッド10
http://peace.2ch.net/test/read.cgi/gamedev/1403791323/
■本スレ
【3Dゲームエンジン】Unity総合スレッド23
http://peace.2ch.net/test/read.cgi/gamedev/1404212872/
■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0169名前は開発中のものです。
2014/08/14(木) 14:22:58.69ID:x/wXFTVzアセットをかえば取れますよ
0170名前は開発中のものです。
2014/08/14(木) 14:32:44.70ID:z7hCwaDW0171名前は開発中のものです。
2014/08/14(木) 15:28:26.23ID:Hq5qNBfI半透明描画されるからテキストの間に他の半透明なオブジェクトが入っているとドローコールが分割されるようだ
テキストが常に画面の一番手前に描画されるのであれば
間に他の半透明オブジェクトが入らないようにテキストの位置を調整するか
テキストはレイヤーを分けて別のカメラに描画させるか
すれば1回で描画されるんじゃないのかな
テキストが他のオブジェクトに隠れたりするんなら知らん
0172名前は開発中のものです。
2014/08/14(木) 18:29:18.52ID:O4dKumIkカメラのレイヤーを分けたところドローコールがかなり減少しました。
教えてくださってありがとうございました。
0173名前は開発中のものです。
2014/08/14(木) 20:17:12.54ID:z7hCwaDW開発に役に立つ物は入ってますんか?
0174名前は開発中のものです。
2014/08/14(木) 20:37:46.38ID:b5izg2+e0175名前は開発中のものです。
2014/08/14(木) 22:42:50.59ID:XjZrUYTs目的のスクリプトを別のスクリプトに変えてもそのままそのスクリプトを取得するようにできますでしょうか
キャラクターのAIソフトとして入れ替えられるようにしたいのですが
0176名前は開発中のものです。
2014/08/14(木) 22:43:20.31ID:x/wXFTVzアセットを購入すれば簡単ですよ
0177132
2014/08/14(木) 23:06:25.69ID:mRRRa5I/遅くなったけどありがとう
コンポーネント取得のところでミスしてたみたいでそういうことはできないのかと思ってたよ
0178名前は開発中のものです。
2014/08/14(木) 23:22:50.62ID:sPAMaztz各スクリプトに共通のインターフェイス乗っけたらうまく行かんかな?
0179126
2014/08/15(金) 01:01:06.43ID:gxPoAiCHおお〜!参考になります。
gameObject.transform.root って記述は初めて知りました。とても使えそうです。
ありがとうございます
0180名前は開発中のものです。
2014/08/15(金) 02:49:13.04ID:1LeycAJJスクリプトで行間の高さも指定する方法はありますか?
0181名前は開発中のものです。
2014/08/15(金) 08:07:08.33ID:pp+iGN13アセットをかってみるとできるかもしれませんね
0182名前は開発中のものです。
2014/08/15(金) 11:10:50.20ID:pQkWFfv7できない。そういうメソッドオーバーロードはない。
>>175
できない。違うスクリプトは違うクラスなのだから同じ
GetComponentで取得することはできない。
0183名前は開発中のものです。
2014/08/15(金) 11:58:25.31ID:mzFPz0GG1つのGetComponentで違うクラスを取得できないのは確かにその通りだが、
違うクラスでも同一のスーパークラスを継承したものであれば、
スーパークラスをGetComponentするとスーパークラスで定義された部分は取得できるよ。
例えばスーパークラスでpublic 変数を宣言し、サブクラスで計算結果を代入しておいて、
他のクラスからスーパークラスをGetComponentしたら、計算結果の入った変数にアクセスできる。
0184名前は開発中のものです。
2014/08/15(金) 12:09:51.07ID:JGD68MO3先にプレハブを読み込んでInstantiateのオーバーロードにrotationを入れればできる。
var prefab = Resources.Load<GameObject>( "PrefabPath" );
var instance = GameObject.Instantiate( prefab, prefab.transform.position, prefab.transform.rotation ) as GameObject;
>>175
基底クラスが同じならできる。
クラスAを継承していれば、クラスBでもCでもGetComponent<A>()で取得できる。
アセットおじさんの次はできないおじさんか…勘弁してくれよ……
0185名前は開発中のものです。
2014/08/15(金) 12:59:46.06ID:g0u3iocdできないおじさんには困ったものですね
0186名前は開発中のものです。
2014/08/15(金) 13:06:21.71ID:UFK9JcdFどのアセットを使えばプログラミングせずに>>175を実現できるのか教えて欲しい
割とマジで
0187名前は開発中のものです。
2014/08/15(金) 13:43:40.08ID:SBGZ0lU90188名前は開発中のものです。
2014/08/15(金) 13:59:16.31ID:1LeycAJJこれ、Label 以外でも良いので、
行間調整できるシステムフォント表示の方法、無いでしょうか。
0189名前は開発中のものです。
2014/08/15(金) 14:26:21.04ID:g0u3iocdアセットがかえばできると思いますよ
アセットストアで探しましょう
無料アセットを探してもダメですよ
0190名前は開発中のものです。
2014/08/15(金) 15:59:35.32ID:UFK9JcdFどのアセット使うの?
0191名前は開発中のものです。
2014/08/15(金) 18:53:44.70ID:kZAIt/lcC#の方が資料多いしそっちに慣れたほうが良いですかね
0192名前は開発中のものです。
2014/08/15(金) 19:01:11.56ID:WHWGg501enum MYSTATE {
STOP,WALK,RUN
}
funciton GetMyState() : MYSTATE {
return MYSTATE.STOP; // example return value
}
と普通にかけるよ
0193名前は開発中のものです。
2014/08/15(金) 19:03:31.88ID:WHWGg501詳細はMicrosoftの.netのJScriptを調べると良いよ
0194名前は開発中のものです。
2014/08/15(金) 19:08:34.23ID:JGD68MO3>>183と>>184で>>175を実現する方法言ってんでしょ!
アセットおじさんはアセットを使えばできるよ以外の言葉発しないから会話しても無駄だよ!
0195名前は開発中のものです。
2014/08/15(金) 19:12:37.79ID:g0u3iocdアセットをかえばプログラム要りませんよ
0196名前は開発中のものです。
2014/08/15(金) 20:37:06.12ID:1LeycAJJスクリプト start 内で下記のように記述しましたが、実行すると画面には何も出ません。
手動でヒエラルキービューに置いた GUIText は表示されています。
ほぼ同じ設定をしているのですが、どうしたら表示されるんでしょうか。
GameObject goTestGui = new GameObject();
goTestGui.AddComponent(typeof(GUIText));
goTestGui.GetComponent<GUIText>().text = "testGUI";
goTestGui.GetComponent<GUIText>().fontSize = 18;
goTestGui.GetComponent<GUIText>().font = new Font("Arial");
goTestGui.GetComponent<GUIText>().color = Color.blue;
goTestGui.transform.position = new Vector3( 0.1f, 0.1f, 0.0f );
0197名前は開発中のものです。
2014/08/15(金) 21:04:25.90ID:g0u3iocdアセトを買いましょう!表示されますよ
0198名前は開発中のものです。
2014/08/16(土) 04:48:54.95ID:626RbEma>>184
ありがとうございます!
なるほどクラスの継承を使えばいいのですね
rotationの取得は一旦プレハブとして取得すればいいと
非常に参考になりました
0199名前は開発中のものです。
2014/08/16(土) 09:00:57.48ID:XTkGjVBnって書いたらどういう反応するんだろうね?
0200名前は開発中のものです。
2014/08/16(土) 12:34:39.74ID:giYDLQibっていうに決まってるでしょ(´・ω・`)
0201名前は開発中のものです。
2014/08/16(土) 12:55:37.22ID:i1FdYvXb0202名前は開発中のものです。
2014/08/16(土) 16:00:28.75ID:Bgv4pORGアセットを買ったら見ることができると思いますよ
0203名前は開発中のものです。
2014/08/16(土) 16:54:06.47ID:pGIxIPwH保守用Botなのでスルーでおっけー
意味のある返事はしない
0204名前は開発中のものです。
2014/08/16(土) 17:25:46.43ID:xvUUuA/I出来ないんだよ
0205名前は開発中のものです。
2014/08/17(日) 01:31:51.73ID:WSu//9t9GetComponent<COMPONENT_NAME>().example();
というのを
AddComponent<COMPONENT_NAME>().example();
としても動いてしまったのですが、
これも正しい書き方でしょうか。
0206名前は開発中のものです。
2014/08/17(日) 02:05:26.26ID:E+qLFcKattp://docs.unity3d.com/ScriptReference/GameObject.AddComponent.html
0207名前は開発中のものです。
2014/08/17(日) 02:09:44.21ID:WSu//9t9間違って書いたのをあとで見つけて、
それでも動くのでもやもやしていました。
ありがとうございます。
0208名前は開発中のものです。
2014/08/17(日) 03:00:00.94ID:2Ljw5zOMnew Texture2Dって模様の無い空のテクスチャ作るんじゃないの?
new Texture2D(1,1)ってやれば塗りつぶされたカラーが描画されるけど、
そもそも空のテクスチャって実はUnityが自動で読み込むひし形のテクスチャがデフォで設定されるって事??
リファレンスにも書いてないし、この空のテクスチャって奴は一体何なのさ???
0209名前は開発中のものです。
2014/08/17(日) 03:11:25.82ID:E+qLFcKaというのがプログラムでの約束事
0210名前は開発中のものです。
2014/08/17(日) 03:37:46.06ID:dxQX/v9Sアセットをかえばアセットがどうにかしてくれますよ
0211名前は開発中のものです。
2014/08/17(日) 11:57:56.28ID:cJdZ2OXSassetsとsceneのscriptの一覧が出てきますよね。
sceneタブには何も表示されないんですが、
ここはどういうフォルダ構成にすれば表示されるのでしょうか?
0212名前は開発中のものです。
2014/08/17(日) 23:50:46.52ID:dxQX/v9Sアセットをかえば表示されますよ
0213名前は開発中のものです。
2014/08/18(月) 04:53:24.05ID:uXKh7UDW0214名前は開発中のものです。
2014/08/18(月) 13:02:21.20ID:qdhKXjRd速さが変わるのを調節するためにTime.deltaTimeを使おうとおもったので
すが、できません。
transform.localScale += new Vector3(-1,0,0) * Time.deltaTime;
このようにしました。ちなみに、Time.deltaTimeを消すと、ちゃんと動作
します。
0215名前は開発中のものです。
2014/08/18(月) 13:32:27.75ID:FgtPURuHアセットをかったらちゃんと動作するよ!
0216名前は開発中のものです。
2014/08/18(月) 13:35:21.16ID:/QOTlVyMちなみにUpdate()にそれだけ書いた状態だと動く。
つまり何か使い方を間違えている。
0217名前は開発中のものです。
2014/08/18(月) 14:27:45.99ID:ARh+Aum/実はVector3(-1,0,0) じゃなくてもっと絶対値の小さい値を指定していて
動いているけど変化量が小さすぎて見た目に変化がないようにしか見えないトカじゃないだろうね。
0218名前は開発中のものです。
2014/08/18(月) 14:37:38.30ID:JLhwIizL0219名前は開発中のものです。
2014/08/18(月) 18:28:34.67ID:qdhKXjRdできました。>>217さんのとおり、変化量が小さすぎて変わっているように見えない
のが原因でした。物体が動いている状態だったため短くなっていることに気づきませんでした。
また、しっかりと質問できず申し訳ありませんでした。
3人みなさん教えていただきありがとうございました。
0220名前は開発中のものです。
2014/08/18(月) 23:43:20.02ID:WaPZtjZ1Unity5になったらSpriteオブジェクトもオワコンになるの?
0221名前は開発中のものです。
2014/08/18(月) 23:55:30.25ID:kfy/jK+TSpriteは軽いから将来的にオワコンになったとしても寿命は結構あると思う
0222名前は開発中のものです。
2014/08/19(火) 11:21:05.58ID:g6kVbLGrゲームのイメージは
transform,Translateを使い強制縦スクロールでうごかして
Sliderで敵を避けると言った感じを考えています。
フリー版のNGUIを使用してHorizonSliderをつくり
Sliderを動かすとplayerも連動して左右動く。
という流れを作りたいです。
スライダー作成は問題なくできましたが
そこから先がよくわかりません。
なんとなく
GameObject.Find("HorizonSlider").GetComponent(Slider)を
playerにアタッチすると思うのですが
うまくいかないだけではなく
それ以上がよくわかりません。
どなたかよろしくお願いします。
0223名前は開発中のものです。
2014/08/19(火) 12:17:45.80ID:QiSZCTeYフリー版のアセットはダメですよ
アセットは買うと動くと思います
0224名前は開発中のものです。
2014/08/19(火) 12:17:46.58ID:MCm34Oqg原点から移動したスライダーの差分を求めて、
それにあわせてプレイヤーの高さを更新すれば多分行ける
……スライダーはOnGUIでも行ける希ガス
0225名前は開発中のものです。
2014/08/19(火) 12:26:41.96ID:kx1/iXJiちゃんとチュートリアル一通りやれば?
スライダーでコントロールと言っても
・スライダーの左右位置にプレイヤーの左右位置も一致する
・スライダーの左右位置でプレイヤーの左右方向への速度が変わる
とかありえるのでそのゲームではどうしたいのか、が問題で
それは本人が決めるしかない。
プログラム自体がわかりません、というのは勉強するしかないが
そうでないなら大概の場合どうすればいいかがわからないというのは
自分がゲーム自体をどうしたいのかが曖昧にしかイメージできてない、
ということ。
そういうことはプログラムの知識など全くなくてもできるし
そういうことをしないとかなり単純なゲームでもできあがらない。
0226名前は開発中のものです。
2014/08/19(火) 12:28:58.36ID:QiSZCTeY0227名前は開発中のものです。
2014/08/19(火) 14:54:13.25ID:g6kVbLGr勉強するしかないのは仰るとおりなんだけど
自分の勉強の仕方はやりながら覚える派だからとりあえず作ってみてる。
写経はどうも性に合わなくて。
そのせいで迷惑かけたようならすみません。
もう少し試行錯誤してみます。
0228名前は開発中のものです。
2014/08/19(火) 16:14:02.73ID:kx1/iXJi具体的なやり方をある程度書くなら
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
UISlider sl
Vector3 pos;
void Start () {
sl = GameObject.Find("HorizonSlider").GetComponent<UISlider>();
pos = transfrom.position;
}
void Update () {
pos.x = (sl.sliderValue-0.5f)*10f;
transform.position=pos;
}
}
とでも書いたC#スクリプトをプレイヤーオブジェクトにでも放り込んでおけばとりあえずは動く。
0229名前は開発中のものです。
2014/08/19(火) 16:22:53.54ID:kx1/iXJiusing UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
UISlider sl;
Vector3 pos;
void Start () {
sl = GameObject.Find("HorizonSlider").GetComponent<UISlider>();
pos = transform.position;
}
void Update () {
pos.x = (sl.sliderValue-0.5f)*10f;
transform.position=pos;
}
}
0230名前は開発中のものです。
2014/08/19(火) 16:38:07.64ID:kx1/iXJiusing UnityEngine;
using System.Collections;
public class test2 : MonoBehaviour {
UISlider sl;
Vector3 pos;
Vector3 dump=Vector3.zero;
public float smthTime=1f;
public float maxSpd=3f;
void Start () {
sl = GameObject.Find("HorizonSlider").GetComponent<UISlider>();
pos = transform.position;
}
void Update () {
pos.x = (sl.sliderValue-0.5f)*10f;
transform.position = Vector3.SmoothDamp (transform.position, pos, ref dump, smthTime, maxSpd);
}
}
とかでもいい。
もう少し簡易にVector3.LerpやVector3.Slerpでもいいだろうし。
0231名前は開発中のものです。
2014/08/19(火) 16:38:34.72ID:SDJ5Szcg0232名前は開発中のものです。
2014/08/19(火) 19:25:32.04ID:MCm34Oqgその際の銃本体の視点への追従の仕組みが分かりません。
単に、銃をRayがヒットした場所にLookAtでよろしいのでしょうか?
だとしても、リロード時の銃身の動きはスクリプトでできるものなのでしょうか。
0233名前は開発中のものです。
2014/08/19(火) 20:48:43.96ID:QiSZCTeYアセットは買いましたか?
0234名前は開発中のものです。
2014/08/19(火) 21:01:23.92ID:ARA40/9x作りのレベルにもよるんだろうけどああいうのは基本的に
FPS用の腕と銃みたいなのをカメラに親子付けしとけばいいんじゃね?
リロード用のアニメーションつけておいて
リロード時はそれを再生する。
0235名前は開発中のものです。
2014/08/19(火) 21:04:05.83ID:eg7yj5lwそれの描画がスクリーン座標上で重なってしまった時に後側のビルボードを重ならない位置にずらすってどういうアルゴリズムで実装すればいいんだろうか
0236名前は開発中のものです。
2014/08/19(火) 21:20:12.42ID:ZLkux2zUやさしいのぉ
やさしいのぉ〜(;_;)
ありがとう。
わからないことがあったらまたバンバン聞くぜっ。
0237名前は開発中のものです。
2014/08/19(火) 21:26:20.12ID:cYa/Ca0p0238名前は開発中のものです。
2014/08/19(火) 21:32:24.25ID:MCm34Oqgありがとうございます。やっぱりあのモーションをスクリプトで実現するのは骨が折れますよね…
0239名前は開発中のものです。
2014/08/19(火) 21:33:44.62ID:ARA40/9x言ってしまえば物理処理の衝突と同じなんじゃね?
重なりを検出してどの方向に押し出すか決めて移動させる。
前後をどうするのかとかは自分で決めるしかないけど
それが決まれば前後順にソートして前から優先で位置決めしていけばいい。
0240名前は開発中のものです。
2014/08/19(火) 21:36:22.98ID:QiSZCTeYアセットをかえば簡単にできますよ
0241名前は開発中のものです。
2014/08/19(火) 21:40:14.53ID:HJlGowUA他のモデルに流用出来ないのでしょうか?
0242名前は開発中のものです。
2014/08/19(火) 21:40:50.36ID:eg7yj5lwやっぱりレイ投げたり当たり判定取って後は地道な移動する感じかな
地道に処理書きます
ありがとう
0243名前は開発中のものです。
2014/08/19(火) 21:44:44.48ID:ARA40/9xまったく同じ構造・名前の骨なら
そのままどういう手段でも使える。
mecanimでHumanoidなら
多少違う構造でもある程度使える。
場合によってはおかしくなる。
0244名前は開発中のものです。
2014/08/19(火) 22:00:41.94ID:HJlGowUAHumanoidでスキニング行列の動作確認も出来ているにも関らず動かない場合は
アニメータコントローラの条件等の設定ミスを疑うべきでしょうか?
0245名前は開発中のものです。
2014/08/19(火) 22:30:36.80ID:ARA40/9xまぁコントローラ側の設定がおかしければ
それはもうアニメーションの問題ではないからなぁw
プレビューウインドウで適切にアヴァター選んで動くようなら
アニメーションのデータ自体は大丈夫なはず。
0246名前は開発中のものです。
2014/08/19(火) 23:07:10.23ID:x5wCXhk9ですよね
ありがとうございました
0247名前は開発中のものです。
2014/08/19(火) 23:16:22.04ID:gRimHKsi0248名前は開発中のものです。
2014/08/20(水) 02:15:09.21ID:xJA8Et7Gアセットをかえば無効にできますよ
0249名前は開発中のものです。
2014/08/20(水) 06:36:03.86ID:87IaKluD前回ビルド時の画面サイズが勝手に適用されてしまう
0250名前は開発中のものです。
2014/08/20(水) 08:17:08.43ID:xJA8Et7Gアセットをかえばいいとおもいますよ
0251名前は開発中のものです。
2014/08/20(水) 08:50:10.78ID:7+eCtfZ1ToolsメニューのOptionsを選択して
TextEditorのGeneralを選択して
Enable code completionのチェックをはずす
0252名前は開発中のものです。
2014/08/21(木) 00:06:01.69ID:UjCIVMhjって出来ないんでしょうか。
やったけどエラーになりました。
0253名前は開発中のものです。
2014/08/21(木) 00:18:33.25ID:LR/WB4rJアセットをかえばいいとおもいますよ
0254名前は開発中のものです。
2014/08/21(木) 00:23:48.83ID:ZMzzdvjfすみません、javascript派の私にはC#の文法すら不安定なんです…
0255名前は開発中のものです。
2014/08/21(木) 00:32:13.99ID:uELHl3caなんかそれはできないらしいよ。
この辺参照
ttp://answers.unity3d.com/questions/60262/the-type-unityenginevector3-cannot-be-declared-con.html
0256名前は開発中のものです。
2014/08/21(木) 01:07:26.32ID:8d94nKJqゲーム開始直後に変数trueでGUIボタンを表示するようにスクリプト書いてたんだけど、その変数は宣言時にfalseを代入してたんだ。
まさかと思ってStartメソッドでfalse代入するように書き換えてWebビルドしたら、GUIボタンがクリックできるようになったんだ。
スタンドアロンのビルドは変数宣言時代入でも普通に動作してたんだけど、WebビルドってStart内で変数初期化しないとダメなの?
0257名前は開発中のものです。
2014/08/21(木) 01:11:30.95ID:LR/WB4rJアセットをかえばできると思いますよ
0258名前は開発中のものです。
2014/08/21(木) 02:02:32.74ID:WTALi2BOアセットをかえばできると思いますよ
http://unity3d.com/unite/unite2014/keynote
0259名前は開発中のものです。
2014/08/21(木) 02:07:58.69ID:FY4IWOMe0260名前は開発中のものです。
2014/08/21(木) 03:03:48.60ID:iTAS0eP5public bool useGUI = false;
とかpublicで宣言してたりしたらインスペクタで値を設定しちゃうとシリアライゼーションでシーンにインスペクタの値で保存されちゃうんだけど間違ってそういう操作したりしてないか?
0261名前は開発中のものです。
2014/08/21(木) 16:34:35.64ID:Jqw6iCnU現状、色々ググった結果、
「動く床」の子要素にキャラクターを持ってくれば一緒に動いてくれるようだと理解しました(あってるかどうかはさておき)
(例えば http://blog.be-style.jpn.com/article/58581741.html )
そこで試しに作ってみたケース1がこれです↓
( https://3ac7952d4f3d414f13ef5ac978121676474d7eb4.googledrive.com/host/0B3YVex4p4Ui0LXVQaWhSYmVwWnM/UGOKUYUKA.html )
↑で前進 ←→で旋回 ↓でバック スペースキーでジャンプ ドラッグでカメラ回転 右クリックドラッグでズームイン・アウト
OpenDoorを押すと足元のブロック(floor)に力が加わって動きます。動くブロックの上に浮いているブロックに触れている間、ビキニのキャラクターが動くブロックの子要素に入ります
結果、画像のように浮いているブロックに触れている間は「bikini」は「floor」の子要素になり、離れると子要素からも外れます。
http://iup.2ch-library.com/i/i1266692-1408603985.png
http://iup.2ch-library.com/i/i1266695-1408604210.png
ですが、キャラクターはfloorと一緒に動いてくれません。落ちます。
続く
0262名前は開発中のものです。
2014/08/21(木) 16:36:11.63ID:Jqw6iCnU#pragma strict
var player : GameObject;
var floor : GameObject;
function OnTriggerEnter (Other : Collider) {
if(Other.gameObject.tag == "Player"){
player.transform.parent = floor.transform;
}}
function OnTriggerExit (Other : Collider) {
player.transform.parent = null;
}
続く
0263名前は開発中のものです。
2014/08/21(木) 16:41:31.12ID:Jqw6iCnU( https://84a708f0eabd3f2702c6ab12a4dde86dc30c463c.googledrive.com/host/0B3YVex4p4Ui0WUhFSkZzODVxaVU/UGOKENAIYUKA.html )
これだとOpenDoorでfloorと一緒に動いてくれますが、今度はキャラクターが操作できません(ジャンプはなぜかできる)。
親子関係のスクリプトは以下
#pragma strict
function OnControllerColliderHit(hit : ControllerColliderHit) {
if (hit.gameObject.name == "floor") {
transform.parent = hit.gameObject.transform;
} else {
transform.parent = null;
}
}
どうすれば動く床と一緒にキャラクターを動かせて、かつ操作できるんでしょう。
0264名前は開発中のものです。
2014/08/21(木) 16:55:58.91ID:qmSeZOfZアセットをかえば簡単楽にできますよ
0265名前は開発中のものです。
2014/08/21(木) 18:14:44.56ID:ZMzzdvjfケース2の場合は、完全に、足場とポジションを同期しちゃってるじゃん…
多分、各当たり判定系のスクリプトの更新順序とかだろうけど、もっと詳しい人に期待
位置を更新するときに加算でポジショニングが出来ればいいんだろうけど
これの上下運動版がアングリーボットにあったはず
もしかしたら参考になるかもしれない
0266名前は開発中のものです。
2014/08/21(木) 19:02:40.96ID:F8+uwHwGこのチュートリアルまで無事終わらせて、一旦Unityを終了させて再度起動→テストプレイすると
NullReferenceException: Object reference not set to an instance of an object
Manager.IsPlaying () (at Assets/Scripts/Manager.cs:41)
Emitter+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Emitter.cs:29)
というエラーが出ました。
ManagerオブジェクトのManagerスクリプトコンポーネントを一度消去して
再度同じコンポーネントを取り付けるとエラーが出ずにテストプレイできたのですが
Unityを再起動した時には、やはりエラーが出ます
これは何が原因なんでしょうか
あとエラーを防ぐ方法はありますか?
0267名前は開発中のものです。
2014/08/21(木) 19:15:42.29ID:qmSeZOfZその手のエラーは、よくあって解決方法としては、アセットをかうことをオススメします
0268名前は開発中のものです。
2014/08/21(木) 20:19:39.49ID:uELHl3caManagerの中のタイトルオブジェクトが取得されない内に
Emitter側がManagerのタイトルオブジェクト参照してる
関数を呼び出そうとしてる、というのが原因。
解決方法は正直よくわからないw
・スクリプトの実行順序をExcuteOrderで決めてしまう(恐らく確実)
・Managerのタイトルオブジェクトtitleについてpublicにした上でインスペクターで対象を設定してGameObject.Find()は削除。(まず間違いなく確実)
・Managerオブジェクトから一度全部スクリプトを削除して登録の順番を変えてみる(効果あるかわからん)
とか、そんなあたりか?
■ このスレッドは過去ログ倉庫に格納されています