トップページgamedev
994コメント388KB

【3Dゲームエンジン】Unity 4 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/06/16(火) 01:35:14.74ID:VIGyPiQQ
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/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質問スレッド16
http://peace.2ch.net/test/read.cgi/gamedev/1425192691/

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

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0728名前は開発中のものです。2015/08/04(火) 08:19:20.52ID:gEK1E2WM
何をどうやってgetcomponentしてだめだっかくらいかけよ
0729名前は開発中のものです。2015/08/04(火) 08:34:07.68ID:FRpxq3j9
Aのtest.csでBのオブジェクトを取得すりゃいいんでねーの
0730名前は開発中のものです。2015/08/04(火) 09:05:42.90ID:BVz+WUji
>>727
オブジェクトA dog
オブジェクトB cat
とすると
dogのほうのスクリプトで
int modeLo = GameObject.Find("cat").GetComponent<test>().hoge;
で多分いく

hogeという名前をつけるのはやめたほうがいいとかなんとか。
hogeがpublic宣言じゃないと読み込めないから注意な
あとスクリプトの名前は先頭大文字のほうがええよ。俺小文字にしちゃうけど
0731名前は開発中のものです。2015/08/04(火) 10:11:59.31ID:dDpbLmri
>>730
そのとおりにしてうまくいきました!ありがとうございます
0732名前は開発中のものです。2015/08/04(火) 14:56:25.93ID:XK4uLt7d
An element with the same key already exist in the dictionary
というエラーが何やっても出てくるんですけどどういう意味ですか
0733名前は開発中のものです。2015/08/04(火) 15:19:57.82ID:PLSswhe5
「要素は既に同一キーで辞書に存在する」
0734名前は開発中のものです。2015/08/04(火) 18:46:11.71ID:ZoCpEnb/
つまり、全ては頭の中に入っている、だ。
0735名前は開発中のものです。2015/08/04(火) 18:46:16.36ID:CHB2A97R
意味っていうか対処法が聞きたかったんだった

なんとなく訳はわかるけど辞書か何を示しているのかわからないしだだのハローワールドでも出てくるから何を示しているのかがさっぱりわからない
0736名前は開発中のものです。2015/08/04(火) 18:53:24.68ID:PLSswhe5
>>735
新規プロジェクトでも出るのか?
Unityのバージョンは?
使っているOSは?
ビルドターゲットは何?

一般的過ぎるエラーメッセージの場合上の様な付帯情報の方が解決の糸口なんだぜ
0737名前は開発中のものです。2015/08/04(火) 19:20:08.17ID:lR4yHysF
スーパーエスパーしてやるとそのエラーはMacでxcodeプロジェクトにアウトプットしたときによくでるやつ
たぶんunityのバージョンの問題だった気がするから書いてみ
0738名前は開発中のものです。2015/08/04(火) 20:55:56.50ID:FkXeAL4H
unityとxcode最新にしたら、一括でビルド&ランしなくなった…泣

そしたら、ちょっっとまえにまたアップデート、直るかねぇ…
0739名前は開発中のものです。2015/08/04(火) 21:13:00.24ID:PLSswhe5
>>738
xcode最新にするとダメなんだけどこれなんとかならんのかとiOS6位の時にかなり泣いたわ
xcode単体で起動してやれば済むことではあるんだけどさぁ、buildシーケンスの途中の無駄な待ち時間がもうね ('A`)
0740名前は開発中のものです。2015/08/04(火) 22:47:16.38ID:FkXeAL4H
そうそうw
DWARF?をなんとか短縮できたけどいやはや、まだ長ひ…
0741名前は開発中のものです。2015/08/04(火) 23:03:57.43ID:JnjMUCtt
FPS ControllerでFPSのようなものを作る場合に、自分のキャラクターも表示したいと思っています
そこで、設置したFPS Controller下にキャラクターを設置し、走るキーが押された際にLocomotion Playerなどについている走るアニメーションをしたのですが・・・・少し動きに違和感があるだけでなく、地形に応じてFPS Controllerとキャラクターがズレて行ってしまいます
(極端におかしな場面としては、木の枝のようなものにキャラクターのみが引っかかり、FPS Controllerだけ地面に着地してしまったりします)
本当はアニメーションをいじれればいいのですが無理そうなので、簡単な解決方法、良いアセットがあったら教えてください
よろしくお願いします
0742名前は開発中のものです。2015/08/04(火) 23:41:35.98ID:BVz+WUji
>>741
もしかするとAnimatorのApplyRootMotionのチェックを外すとうまくいくかもしれん。
違うかもしれん。
0743名前は開発中のものです。2015/08/05(水) 11:37:31.52ID:O2DRENoW
つかうまく表現してないだけなのかもしれんがなんかもう根本的に考え方が変なんじゃね
一人称と3人称のコントローラーの違いとかをちゃんとチュートリアルとかサンプルで見たのか?
0744名前は開発中のものです。2015/08/05(水) 11:38:53.14ID:sQ0lfZB7
Unityの基本を覚えようとチュートリアルのブロック崩しを作ってるんですけど、
ボールを反射させるところで詰まりました・・・。なんか真横にしか反射しない上に
反射するたびにボールが欠けていって2回反射すると何も見えなくなっちゃいます・・・

何が悪いんでしょうか?C#で書いてるから?
0745名前は開発中のものです。2015/08/05(水) 11:41:10.95ID:+K4+LokO
>>732のエラーはアップデートしたら出なくなりました
確認したつもりだったんですがunityのcheck for updateでは5.1.1で更新されなかったのに公式には5.1.2が来てたのでアプデしたら治りました
ありがとうございます

しかし今度は新しいエラーが2つ出るように
Namespace "System.Collections" is never used.
Namespace "UnityEditor" is never used.
この二つは何を意味しているのでしょう
情報はすぐ見つかったのですが知識が乏しくてよく理解できません
致命的なエラーではなさそうなので無視しても良さそうですしエラーの表示を消すことはできそうなんですけど根本的に改善することはできませんか

OSはMac yosemite 10.10.4
ビルドターゲットはよく分かりませんがおそらく初期設定
MonoDevelopでビルドすると出てきます
新規プロジェクトでDebug.Logしかつかってないのに出てきます
0746名前は開発中のものです。2015/08/05(水) 11:45:43.78ID:CamXSh92
>>745
ちなみにそれエラーじゃなくて警告な
スクリプトのアタマでusing System.Collections;とか宣言してコレクション使いたいなーって書いたのに
実際のスクリプトでは使ってないけどいいのけ?
って教えてくれてるんだぜ、C#さん優しいな
0747名前は開発中のものです。2015/08/05(水) 11:59:43.77ID:O2DRENoW
>>744
いろいろつっこみどころあるけど細かい事言ってたらキリがないから
プログラムも初心者でとりあえずそのまま真似てC#でやりたいならこっちがいいかも
もし2画面あるならビデオ見ながらやるとすごく効率いいよ

Creating a Breakout Game for Beginners
http://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/creating-a-breakout-game?playlist=17219
0748名前は開発中のものです。2015/08/05(水) 12:22:47.27ID:3nvpsIXf
>>744
悪いのはお前の頭だろ!
ソースと設定見直せとしか言えん
0749名前は開発中のものです。2015/08/05(水) 14:32:47.47ID:GZ4wlvWY
Physic MaterialのFrictionがあやしい
0750名前は開発中のものです。2015/08/05(水) 15:22:58.95ID:2cx28vay
>>744
そうそう、一字一句、見直しから始めよう。それが近道。
0751名前は開発中のものです。2015/08/05(水) 15:36:20.99ID:sA7q36NS
チュートリアルは英語でもビデオ版がいいな
マルチディスプレイで同じことやってけば確実に出来る
理解できず繰り返し見たり止めたりで1hモノが半日かかるとかざらだけど
0752名前は開発中のものです。2015/08/05(水) 18:53:36.00ID:1L/gqVwO
ライトを微調整してたつもりが、プレビューモードだった
苦労が水の泡になった・・・・
0753名前は開発中のものです。2015/08/05(水) 19:26:45.10ID:1PYrmJku
Unity5.1.2f1 Windows7 64bit
LeapMotion SDK インストール済み
OculusSDK インストール済み

下記の現象は自分の環境だけでしょうか?

EditorのLayoutでTallを選択し、シーンビューの右縁をクリックしたまま、マウスを左右に振りまくる。(要はシーンビューのリサイズをしまくる)
そうすると、作ったばかりの新規プロジェクトでも20秒から30秒でSUCCEEDED(hr)が出まくるようになり、Unityを再起動するしかなくなる。新規プロジェクトじゃなければもっと早いと思う。結構困ってます。

海外のフォーラムに色空間をガンマにすると治るという記述もあったんですが、改善しませんでした。
0754名前は開発中のものです。2015/08/05(水) 22:01:37.52ID:hjm953sz
同じバージョンのUnityでレイアウトは適当にカスタマイズしてる状態だけど、
Sceneのリサイズしまくろうがエラーなんて出ないなぁ
SDKが関係あるとも思えないし、Tall設定が問題なのか?
07557112015/08/05(水) 22:11:40.17ID:k77xwiRO
>>715
英語が苦手で海外の掲示板とかしらべてなかったけど、
公式チュートリアルにセーブ関連の記載見つけてなんとかなりました。
この言葉が無かったら挫折してた、ありがとう。
0756名前は開発中のものです。2015/08/05(水) 22:46:53.49ID:HHu91jjI
unityで良く使う共通処理ってどんな風に書けば良いかわかりません。

現在は
publicFunc.csに

namespace A {
  public class publicFunc : MonoBehaviour {
    static public int serachLayerNo(Animator _Animator, string targetLayerName){
      〜処理〜
    }
  }
}
と書いて
呼び出し側で
using UnityEngine;
using System.Collections;
using A;
〜略〜
layerNo[i] = A.publicFunc.serachLayerNo(mAnimator, layerStr);

という風にしてみました。

namespace Aとつけているのは現状このようにしたらできたからやっているのでよくわかってないです・・・
また というかインスタンスを作ってないのになんでクラスの関数呼び出せるのかも自分でわかっていないという・・・staticだから?

またこれだと複数の箇所で使うと関数にstaticがついてるから、値が共通になってしまうのでCanvasを複数つかうとバグるような気がしてます。

こういう共通した関数を実行するのはシングルトンを使う文献をネットでよくみかけるのですが
シングルトンはインスタンスを一つしかつくらないということなので尚更だめなような気がしてます。

単独ではつかわない(ゲームオブジェクトとかにセットしない)いろんな所のソースで呼び出す共通処理の書き方をお教え頂きたいです。
0757名前は開発中のものです。2015/08/05(水) 22:51:01.59ID:sA7q36NS
リファレンス見ようよ
リファレンスのどこが理解できなかったの?
0758名前は開発中のものです。2015/08/05(水) 23:26:13.29ID:CamXSh92
>>756
共通関数が欲しいだけのstatic method使いたいだけならMonoBehavior継承いらんだろ
とりあえずhas-aとかis-aとかの関係をきちんとわけて考える様にMSのC#本でも買っとけ

ぜんぜんかんけいないけどsealdで検索したら左翼ゲリラがでてきて困った出ござる
0759名前は開発中のものです。2015/08/05(水) 23:38:17.67ID:HHu91jjI
いままでコピペでなんとなく作れてましたが
質問してみて基礎が分かってなさすぎと分かったので
リファレンスのスクリプティング概要 読み直してみようと思います。
C#の基礎の本も買おう・・・ 

>>757さん 758さん ご回答有難う御座いました。
07607532015/08/06(木) 01:13:24.94ID:+T7HGyLY
>>754
やっぱり全員の環境で起こるわけじゃないんですね。。。
Defaultでやっても「SUCCEEDED(hr)」エラーでたのでTailは関係ないみたいです。
Unity再インストールもしてみたんですが、特に変わらず。

エラーメッセージも「SUCCEEDED(hr)」しかでないし、情報不足過ぎて何のエラーかすらようわかりませぬよ。。。
0761名前は開発中のものです。2015/08/06(木) 11:29:17.83ID:sN/F2r0B
すみません、shaderの質問です。
透過(半透明)させつつ他のオブジェクトの影が映るshaderってありませんか?
0762名前は開発中のものです。2015/08/06(木) 13:13:27.54ID:1PCQOc0+
>>761
オブジェクト2つ用意して1つをshadowsonlyじゃだめなの?
0763名前は開発中のものです。2015/08/06(木) 13:14:25.59ID:1PCQOc0+
ごめん読みまちがえた
0764名前は開発中のものです。2015/08/06(木) 13:32:09.27ID:cBJpMccl
普通にスタンダードシェーダーじゃまずいのか?
ガラスとか宇宙服のヘルメットとかみたいな表現だろ?
日本語で詳しく説明されてるぞ
0765名前は開発中のものです。2015/08/06(木) 13:39:42.75ID:1PCQOc0+
>>761
これかな?
ttp://famme-fatale.hatenablog.com/entry/2015/03/18/124410
07667612015/08/06(木) 15:45:39.19ID:sN/F2r0B
みなさんありがとうございます
765さんのでいけそうでしたが
Skinned Mesh Rendererを使っていると
だめみたいです。
0767名前は開発中のものです。2015/08/06(木) 16:24:07.94ID:1PCQOc0+
>>766
こっちの環境ではMeshRenderer関係無くいけてる気がする
ReceiveShadowsのチェックはずれたりしてない?
07687612015/08/06(木) 16:46:26.22ID:sN/F2r0B
>>767
失礼しました。
0769名前は開発中のものです。2015/08/07(金) 08:17:10.74ID:nAxCzz6h
>>107
自分もパーミッション勝手についちゃうけどその後どう?
0770名前は開発中のものです。2015/08/07(金) 22:45:57.39ID:+bECwRrn
Unityって今からはじめるともう時代遅れとかある?
敷居高いイメージがが
0771名前は開発中のものです。2015/08/07(金) 23:00:50.03ID:/TyZbXTY
FPS/TPSを作るならUnreal Engineの方がいいという意見もある
時代遅れと言うほど他に先んじてるものはないと思うが
敷居の高さは…


ド素人  RPGツクール   ウディタ        DirectX等    プロ
 ┝────────────────┼─────────┤
..                         △
.                         多分この辺
0772名前は開発中のものです。2015/08/07(金) 23:13:24.66ID:+bECwRrn
なるほどありがとう
やっぱり高めだなあ
勉強するよ
0773名前は開発中のものです。2015/08/07(金) 23:18:48.35ID:6MPrjvWO
Unreal Engineは、何もせずにFPSが作れるし、初めからFPS用の配慮が行き届いている
ただ大手が作ったFPS以外ってなかなか売れないからね・・・・
スマホ用の簡単ゲーム作成が中心となるとUnityとそのライセンス形態が結構よかったりするんだな
0774名前は開発中のものです。2015/08/07(金) 23:21:57.33ID:i52yCBjp
現状Unityで作れないものないから、
今から古いツール勉強してる使うくらいならUnityやる事を勧める
Unity無理ならWeb小説でも書けばよろし
0775名前は開発中のものです。2015/08/07(金) 23:40:33.44ID:hsQCoUC9
>>772
プログラミングの知識があるならスクリプト自体は簡単だよ。C#の初級レベルさえ知ってればとりあえずチュートリアルはできる
UEはいい素材を持ってるならグラはかなり良いけどスマホ向けには重いしロイヤルティ5%も取られるよ(ただし売上3000ドルまではロイヤルティフリー)
0776名前は開発中のものです。2015/08/07(金) 23:42:51.77ID:8P091hGo
そういえば昔の旧砂漠って流砂なかったの?
0777名前は開発中のものです。2015/08/07(金) 23:43:17.19ID:8P091hGo
すまん誤爆
0778名前は開発中のものです。2015/08/07(金) 23:52:01.26ID:+bECwRrn
>>775
プログラムはできるから嬉しいね
頑張ってみるよ
0779名前は開発中のものです。2015/08/08(土) 00:00:09.80ID:js8lfIDK
なんかボタンコンポーネントから警告が大量に出るようになったんだけど
Parameter 'Highlighted' does not exist.
UnityEngine.UI.Selectable:OnValidate() こんなのが大量に。

Animatorはつけてるけどボタンアニメーション設定してないんだよね。
0780名前は開発中のものです。2015/08/08(土) 00:14:15.28ID:Cum65bC1
>>779
俺は初心者だから意味わかんねーけど、それって、アニメーションの終わりを決めてないんじゃないのか?
0781名前は開発中のものです。2015/08/08(土) 00:15:20.15ID:/O4Hr1O9
ツクールなんかより縛りがないからよっぽど簡単だわ
0782名前は開発中のものです。2015/08/08(土) 00:57:31.45ID:prpVaKdz
流れで聞きたいんだけどUEとUnityって何が違うの?
UEはリアルって聞くけど、それってモデルの質とか
プログラムの書き方によって
変わるんじゃないの?と思うんだけど
Unityがモバイル向け、UEがハイエンド向け、と言われているのはどこなんですか
0783名前は開発中のものです。2015/08/08(土) 01:13:22.91ID:WTntF6Fb
UEはライティングのおかげでクソみたいなモデルでも少しはそれっぽく見えるが負荷のかかる方式だからハイエンド向け(ただしモバイル向けの最適化にも力を入れるらしい)
UnityはおおむねUE3相当のグラだがその分軽いのでモバイル向け

ただしUnityは中間言語方式だから実行時コンパイルに処理を割いてる分(PC向け以外は5.2でIL2CPPが導入され解消される予定)と
グローバルイルミネーションにEnlightenっていうのをつかってるんだけどこれは基本的に高速だけど光源の数が増えると重くなる欠点がありUEのGIは多くても少なくても変わらないという特徴がある

つまりUnityは超ハイエンド向けになると逆に遅くなるのでコンシューマのAAAタイトルには使われてないね
0784名前は開発中のものです。2015/08/08(土) 01:51:58.65ID:ULYH9pEs
UE4は言語がC++じゃなかったっけ?
ゲームプログラマーは歴史的にC++使いが多く、限られたハードウェアのリソースを
有効活用するためにメモリ管理をしたがるからベテランはUE4の方が
やりやすいってのも、あるんじゃないの

個人的にはC#はインテリセンスがよく効いてたりメモリ関連が自動だから
C++よりはとっつきやすいんじゃないかな。その分、重いけどわずらわしさは少ないのでラク

今はハードウェアのメモリが安価で大きくなってきてるからunityでも
AAAクラスでない限り実戦で使えるようになってきている感じかも
0785名前は開発中のものです。2015/08/08(土) 02:01:44.65ID:Y1oBQifD
最近から見ればC++は低級言語化してきてるしな
今更カベージコレクションない言語使うとかやってられんわw
0786名前は開発中のものです。2015/08/08(土) 10:47:59.68ID:396ATCKe
il2cppってc++に変換する技術っすよね?
c#もメモリ管理できないわけじゃないし、c++使う理由ないっすよね
0787名前は開発中のものです。2015/08/08(土) 12:01:59.85ID:GX5HfKzG
なんらかのプログラミング経験があるならC#とか言語自体はたして問題ないよ
ゲーム初心者はオブジェクトやコンポーネントを使いこなすのが大変
アニメとかマテリアルとかはやればやるほど奥が深くなる
0788名前は開発中のものです。2015/08/08(土) 12:14:48.75ID:nsvqXFx8
Unity5.1.2インストールしたんだけど、メニューからImport New Assetsの所を選んでもCustom Packageしか表示されません。
EffectsとかParticleSystemsとか表示されるのを期待したんだけど、Unity5はこういうもんですか?
0789名前は開発中のものです。2015/08/08(土) 12:17:34.61ID:apaLX1ex
>>788 そういうものです
0790名前は開発中のものです。2015/08/08(土) 12:34:39.49ID:GX5HfKzG
>>788
Import New Assets じゃなくてImportPackage だろ?
単にインストールした際にStandard Assetsをインストールしていなかっただけ
対処方法の詳細はググれば幾らでもある
0791名前は開発中のものです。2015/08/08(土) 12:42:05.19ID:nsvqXFx8
再インストールの際のダウンロード時間短縮のために、UnitySetup64.exeをバックアップして、それで再インストールしてたのが原因でした。
UnityDownloadAssistant-5.1.2f1.exeを実行して、>>790さんの言うとおり、Standard Assetsをチェックしたら大丈夫でした。
お騒がせしました。
0792名前は開発中のものです。2015/08/08(土) 21:28:10.10ID:N/D5gJUC
ところでUnityでフレームスキップしないように設定できる?
0793名前は開発中のものです。2015/08/09(日) 01:49:33.02ID:XyY7+yoD
そこそこ大きいデータをunity内部で扱うためにsqliteを使いたいのですが、何かいいアセットなどありますか?
もしくは他にいい感じのDBなどはありますか?
0794名前は開発中のものです。2015/08/09(日) 02:45:47.85ID:8vhmQCx9
>>793
sqliteを使うAssetはStoreで探せばいくつもある
DataBindをC#と密接にしたいのならオープンソース実装がGitHubにころがっている

どういう使い方をしたいかで決まるから自分で探す方が良い
なおどれもPlugin経由なのでプラットフォーム依存があるからAssetStoreなら評価をOSS物の場合はC#からの親和性とかを元にチェックする事
0795名前は開発中のものです。2015/08/09(日) 11:58:29.14ID:1Y3sDlK9
UNITYでVSが標準になるとかならないとか
VSで何G喰うのかな
Cドライブがやばい、かと言ってリンクしようにもD以降も余裕ない
HDD買い増しか、いっそのことPC買い替えか
0796名前は開発中のものです。2015/08/09(日) 12:40:41.84ID:MRvAVR8Q
https://www.visualstudio.com/ja-jp/visual-studio-2015-system-requirements-vs.aspx
一応インストールのシステム要件は 4GBの空き容量になってるね
作業するなら大量に空きがあったほうがいいね
0797名前は開発中のものです。2015/08/09(日) 14:23:00.07ID:/OhH7e0+
ラムダ式書くと、foreachで回すより明らかに遅いのだけど異常ですか?
0798名前は開発中のものです。2015/08/09(日) 14:43:54.26ID:8vhmQCx9
>>797
foreachの中身を別関数にして呼び出せば同じ速度になると思うぞ
0799名前は開発中のものです。2015/08/09(日) 14:59:07.10ID:/OhH7e0+
FidAllがやけに遅いと思ったけど、foreachでも別関数なら同じなのかな
0800名前は開発中のものです。2015/08/09(日) 15:05:00.83ID:8vhmQCx9
>>799
内部的にはdelegateを渡したのと一緒で渡したLambda式を関数呼び出しするからね
0801名前は開発中のものです。2015/08/09(日) 17:31:16.80ID:juyi80yV
テストプレイ中に稀に以下のエラーが発生して止まってしまうのですが、対処出来なくて困っています。
当方Unity5。
エラーの発生箇所がeditorやInspector臭いのですが、特にカスタマイズはしてないです。
せいぜい、OnValidate()でInspectorの変更をオブジェクトに適用させるくらいです。

MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEditor.GameObjectInspector.DoRenderPreview () (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:680)
UnityEditor.GameObjectInspector.OnPreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:745)
UnityEditor.Editor.OnInteractivePreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorBindings.gen.cs:309)
UnityEditor.ObjectPreview.DrawPreview (IPreviewable defaultPreview, Rect previewArea, UnityEngine.Object[] targets) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:225)
UnityEditor.Editor.DrawPreview (Rect previewArea) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:522)
UnityEditor.InspectorWindow.DrawPreviewAndLabels () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:759)
UnityEditor.InspectorWindow.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:386)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
(at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


稀にしか発生せず結構お手上げ状態です。
よろしくお願いします。
0802名前は開発中のものです。2015/08/09(日) 17:33:39.23ID:cORaqZFq
業務でやってるならUnityに聞いた方がいいんじゃないかな
0803名前は開発中のものです。2015/08/09(日) 17:41:04.67ID:MRvAVR8Q
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
でググると結構出てくるな
nullチェック時に==はオーバーライドしてんのか
0804名前は開発中のものです。2015/08/09(日) 17:52:22.98ID:8vhmQCx9
>>801
エラーログからみるにテストプレイはUnityEditor上でALT+PかCMD+Pでプレイしてるんだよね
死んだ(Destroy済み)のGameObjectをUnityEditor上のインスペクタ(あるいはUnityEditor用のAsset)で開きっぱなしにしてない?
0805名前は開発中のものです。2015/08/09(日) 18:06:36.80ID:juyi80yV
>>804
ここここれっぽいです!!! ありがとうございます!!
destroyされたGameObjectのprefabをInspectorに開きっぱなしです。
確かに、この状態だと100%発生しますね(恐らく生成のタイミングで)。
とはいえ、どうしてそうなるんでしょう
0806名前は開発中のものです。2015/08/09(日) 19:30:08.93ID:MJa1D6eV
質問です。
CharacterControllerを使わずにそうさしてるのですが、接地判定がうまくいきません。

void CheckGround(){
if(Physics.Raycast(transform.position,Vector3.down,out hit, 10 )){
if(hit.collider.tag == "Ground"){
isGrounded = true;
}
}

で、処理してるのですが、isGroundedがtrueになりません。プレイヤーにBoxColliderとRigidbodyを
地面にはBoxColliderを付けて、タグを"Ground"にしています。
どなたかわかる方、または参考になるサイトをご存知の方居たら教えてください。
0807名前は開発中のものです。2015/08/09(日) 19:35:54.21ID:a0bgjuvw
Unityの2Dモードで、何枚か張られているパネルをマウスでクリックして消すゲームを作っております。
同じプレファブを使い、同じコードを使ったところ、1個のパネルを消すと全て消えてしまいます。

spriterenderer,boxcolider2dを付けてます。

実装は、クリックされたら以下のコードが実行されます(panel.cs)
v2には、クリックポイントが入ります。

v2 = GameObject.Find("Main Camera").camera.ScreenToWorldPoint(v2);
RaycastHit2D hit = Physics2D.Raycast(v2, Vector2.zero);
if (hit) {
Debug.Log ("x:"+v2.x+" y:"+v2.y);
Destroy(this.gameObject);
return;
}
で、consoleで見ると、1個当たっただけで全部のパネルが消えているのが確認できました。
consoleに大量のx,yの表示がされております。
自分自身かどうか判断する方法は無いでしょうか?よろしくお願いいたします。
0808名前は開発中のものです。2015/08/09(日) 19:57:23.46ID:a0bgjuvw
自己解決しました。申し訳ございません。
0809名前は開発中のものです。2015/08/09(日) 22:15:38.25ID:iIBFuBQ/
Unityを使用するブラウザゲームをやっているんですが、
最近、数十分前には起動できていたのに、ゲームを立ち上げようとしたらUnityが消えてる(アンインストールされてる?)事があります。
(Unityダウンロードページでもnot installedになっている)
なにかウイルスか設定のようなものでこうなったりするんでしょうか?
0810名前は開発中のものです。2015/08/09(日) 22:54:46.87ID:bQXYImrI
>>805
ギャグかよw
destroyしたからに決まってんだろうw
もう使わないよと言っておきながら使うという矛盾www
0811名前は開発中のものです。2015/08/09(日) 22:58:41.88ID:bQXYImrI
>>809
きっと妖怪の仕業だわ
お祓いしなきゃね
0812名前は開発中のものです。2015/08/09(日) 23:20:09.22ID:M1ulE9Fv
最初のシーンが重いのかUnityロゴ表示がかなり長くなってしまったので
シーン切り替えスクリプトのオブジェクトのみ配置したシーンを最初に作ったんだけど
変わらずロゴ画面でロードしてしまいます
なるべくロゴ表示を早く切り替えるのにはどうすれば良いですか?
0813名前は開発中のものです。2015/08/09(日) 23:31:12.99ID:eHkK7Iki
Proを買う
0814名前は開発中のものです。2015/08/10(月) 00:39:12.02ID:NcNOCafI
キャラIDとスキルIDをボタンの引数として登録する機能を作っています。
ボタンを押した時にShowSkillWindow(int, int)を実行するのですが、
2個目の引数の値をこの時点のiの値で呼び出したいのに、ボタンを押した時点での値で呼び出されてしまいます。
(この場合はループ終了後のiの値である5が引数になる)

public void Init(int charaID) {
for (int i = 0; i < 4; ++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
clickEvent.AddListener(() => BattleManager.I().ShowSkillWindow(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}

引数を固定させる方法か、代わりになる方法はありませんか?
0815名前は開発中のものです。2015/08/10(月) 01:01:41.62ID:NcNOCafI
解決と言えるのか自信がないけど意図した動作が出来たので残します。
引数を保持するための構造体の定義を作っておき、そこから処理を呼ぶ方法で実装出来ました。
構造体を作って放置するのがメモリ的に不安なので、改善点あれば教えてもらえると助かります。

struct StrSkillAction {
public UnityAction SkillAction(int charaID, int skillID) {
return () => {
BattleManager.I().ShowSkillWindow(charaID, skillID);
};
}
}

public void Init(int charaID) {
for (int i = 0; i < 4;++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
StrSkillAction eventClass = new StrSkillAction();
clickEvent.AddListener(eventClass.SkillAction(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}
0816名前は開発中のものです。2015/08/10(月) 01:55:01.36ID:5Hk6N57m
>>806
>if(Physics.Raycast(transform.position,Vector3.down,out hit, 10 )){

out hit,

ここに空白が入っていても、構文エラーにならないの?
0817名前は開発中のものです。2015/08/10(月) 02:03:06.07ID:NcNOCafI
outは関数の中で値を入力して返すためのもの
この場合はRaycast関数の中でhitに衝突情報が入って返ってくるということ
いわゆる参照渡しみたいなもの
0818名前は開発中のものです。2015/08/10(月) 02:09:07.80ID:NcNOCafI
>>806
衝突自体していないのか、
Raycastは真だけどtagに別の値が入ってるのか、
別の物体とは衝突するのか
あるいは別の物体と先に衝突しているのか
その辺りを調べればいいと思う
予想では、別の物体が先に衝突してるんじゃないかと
その場合はレイヤーマスクの指定で解決するかも
0819名前は開発中のものです。2015/08/10(月) 02:23:40.44ID:FUa01Ekr
806です。

>>816
参考にしたサイトに、第三引数にoutで指定すると衝突したオブジェクトの情報が入る。と書いていたので
そのまま使ってます。hitのColliderを判定してるので必要ですよね?エラーは出てないですが、isGrounndedは返ってきません。

接地判定やcheck groundで検索してみたんですが、どうしても欲しい情報がないんですよね。
0820名前は開発中のものです。2015/08/10(月) 04:40:26.71ID:WlJ3IdsP
ブレイクポイントの使い方を覚えると捗るよ
0821名前は開発中のものです。2015/08/10(月) 12:06:28.96ID:FUa01Ekr
806です。
皆さん本当にすみません。ただ単にBlenderからインポートしたオブジェクトが大きすぎて、
Raycastが届いて無かっただけの様です。
サイズ調整したらちゃんと接地判定してくれました。色々おかしかった所の大半がリサイズで解決しました。

アドバイスいただいた皆さんありがとうございます。
0822名前は開発中のものです。2015/08/10(月) 14:22:11.83ID:mK6U9Zck
設計の問題かもしれませんが、ダンジョンで使ったオブジェクトやらスクリプトを町で使いまわしたいのですが
ゲームの状態(ポーズ画面とかインベストリ画面とか)を操作するスクリプトを変える必要があって、これを変えると他の部分も大量に変える必要が出てしまうので
シーンごとに同じ名前(スクリプト名やら)だけど内容は違うみたいなことが出来る方法ってありますか?
やりたいことは倉庫の実装でインベストリ画面を開いたままにしたいのですが、ゲーム状態のスクリプトのupdateの部分に色々かいてたりするので倉庫だったらリターンtかも出来なさそうですし・・・
この方法以外にもいいやり方あったら教えていただけると幸いです
0823名前は開発中のものです。2015/08/10(月) 14:26:44.54ID:v4fNYOjT
>>822
もしかして:インベントリー画面
設計が間違ってると思うぞ、パーツとしてのスクリプトやプレファブの独立性を高くしないとどんどん酷くなると思う。
0824名前は開発中のものです。2015/08/10(月) 14:33:12.42ID:mK6U9Zck
>>823
なにぶんゲームやらプログラミング初めてなのでいまいち設計がわからなく・・・
次からは気をつけようとは思うのですが(どう気をつけるべきかも分からないってのもありますが)
今回はちょっとこのままごり押しで行きたいと思うのです
この作品では倉庫と店さえできれば(二つともインベントリひらくだけ)あとはつくるものはほぼないのでこのままいけたらなとは思ってます
0825名前は開発中のものです。2015/08/10(月) 14:40:00.14ID:mK6U9Zck
うーんよく考えたらゲーム状態の上位にさらにゲーム状態くっつければいいような気もしてきました
updateの部分をダンジョンだったら動作するように変えて町かダンジョンかの状態も操作するような物にしてみます
0826名前は開発中のものです。2015/08/10(月) 15:04:38.80ID:sZwBkfWo
UNITYをRPGツクールかなんかと思ってないかw
スクリプト変えないで町を作ろうとか
0827名前は開発中のものです。2015/08/10(月) 15:13:10.50ID:mK6U9Zck
>>826
一番楽だろうなと思ったのはスクリプト名を同じものにして(他で名前変えるのが面倒だったので)スクリプトの内容は変えるという感じで
これが出来たら一番楽だなと思って質問しました
■ このスレッドは過去ログ倉庫に格納されています