【ゲームエンジン】Unity初心者質問スレBuild1
■ このスレッドは過去ログ倉庫に格納されています
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
■注意事項
「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く
次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.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質問スレッド35
https://mevius.5ch.net/test/read.cgi/gamedev/1523771570/ 難しそうな質問ですねぇここは初心者用なので答えが出ないかもしれませんが
とりあえずggったのですが、きっともう読まれているのですかねぇ…
ttp://tks-yoshinaga.hatenablog.com/entry/2017/08/23/171354
ttps://framesynthesis.jp/tech/unity/windowsmixedreality/
ttp://sirohood.exp.jp/20180302-469/ uGUIについて質問です
Canvas->空のGameObject->複数のテキスト
という構造で複数のテキストを表示しているのですが
たまにすべてのテキストが空のGameObjectの座標に集まってしまい、レイアウトが崩れてしまいます
その都度手動で元のレイアウトに戻すのが面倒なので、レイアウトが崩れない対策があれば教えてください >>215
アセットストアで検索してみてはどうでしょうか? >>215
テキストの親のobjectにAddComponentでLayoutにあるLayoutGroupを追加してみてください
↓同じテキストの位置
https://i.gyazo.com/dd691dbdac0645698fb6c24c381c3573.png
↓layoutをオンすると自動で整列
https://i.gyazo.com/02e2c86353a4e6067c6a9e5076833933.png
これはVerticalLayoutということで縦に自動で整列します
他にもいろいろあるのでご自分の要望にあったのを取り入れれば良いかと思います >>215
たまにそうなるのは根本的に何かが間違っている
原因究明が大事 >>215
実行中じゃないのか?
実行中に変わった座標が、実行終了後に維持されるのは聞いたことないなぁ。メッシュやマテリアルは実行中に触るとそのままってのはあったけど。 >>217
丁寧な回答ありがとうございます
私のプロジェクトに
空のゲームオブジェクト->レイアウトグループ->テキスト
の構造がありましたが、
その場合はレイアウトグループの位置は変わってしまっていましたが、グループ内のテキストの配置は維持されていました
つまり、レイアウトグループの子の構造は崩れないが、空のゲームオブジェクトの子は崩れるということです
結局、空のゲームオブジェクト以下にGUIを配置しているのが問題な気がしますね
対策は、入れ子の親には必ずレイアウトグループをアタッチするといったところでしょうか
しかしレイアウトの自由度が制限されるのが問題ですね・・・
>>218
原因は未だに不明です
再現性の無い現象なのでなかなか原因究明が難しいです
>>219
気づいたら崩れているのでタイミングはよく分かっていません
感覚としては、実行後に崩れている傾向が強いと感じています >>220
原因が不明?
それ最悪だよ、
泥縄式に対処してたらこれから先バグに悩まされる
リリース後にもいつ発生するかわからない
プロジェクトが小さいうちに原因をはっきりさせることをおすすめする 2017.3のバグみたいです
報告多数ですね
https://forum.unity.com/threads/very-irritating-ui-bug-has-anyone-else-experienced-this.510596/
I encountered this after upgrading to 2017.3. One of my UI windows was all messed up,
so I tried to fix it, and upon hitting "Apply", some elements auto-centered.
After reviewing everything for rogue layouts or anything like that, and with it happening on other elements, I went to the internet and came across a few threads like this.
Fortunately, I saved a copy of my 2017.2 project and going back was as easy as renaming a folder.
But I think this is a pretty severe bug, it could effectively stale a project relying heavily on UI. さすが公式フォーラム
現役の人が集まるだけあって被害者多数でワロタ このバグ数ヶ月放置されてけっこう問題になってたみたい
エディターのバグとかどうしようもないし、最新版を使うことにしました >>222
日本語で話せやガイジ
ここは日本のUnityスレだぞ >>225
いや、unityつかうなら英語くらい覚えろよ…… >>225はアセットおじさんか
言葉の節々に知能の低さ、羞恥心の無さがにじみ出ているのは流石だな
誰か「アセットを買えば英語力も上がるし羞恥心も備わりますよ」って教えてやれよ >>229
アセットを買えばそんな勘違いもなくなりますよ スマホアプリ作っている人は
iphoneとandroid両方持ってるの?
androidしかないんだけどipone必要ですか?あとmacも無いんですけどこれもいりますか? >>231
macないとiPhone開発は実質無理だと思っていいよ
両OSにアプリ出すならmacは必須
iPhoneはなくても最悪mac上のエミュとかiPadとかでもなんとかなる 同じアプリでもiPhoneのが売上いいみたいだから出したいけど、mac必須ですか…
androidでmac買えるぐらい稼げたら買おうかな CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
って言われてAndroidでビルドができないよー、ちゃんとAndroid SDK toolsを25.2.5にしてもダメだったし
SDKが古いかもってことも書いてあったからSDK消して入れなおしてtoolsを25.2.5にしてビルドしてもダメだったし誰か助けてー! >>233
AppStoreは毎年1万くらい掛かるけど、GooglePlayなら2500円払えばあとは儲けるだけだからなぁ。 しっかり考えてちゃんとしたもの作って出さないと
GooglePlayは簡単には回収できないよ 個人アプリ開発者の9割はその年間2500円も稼げないけどね そもそも自称開発者は、アプリを完成させ、リリースすることすら・・・ それはお前が出来てないだけ。皆そうだと思っていれば幸せなんだろうな ソーシャルゲームが流行る前はしょぼい物作ってもGooglePlayのリストに出るから余裕で回収できたけどね。
今はリリースされたことすら知られないから…。 始めたばっかだけどunityで適当に画像入れてsave projectして、入り直したら画像じゃなくて何か別の物に変換されててlayer編集が効かなくて心折れそう、誰か助けてクレメンス さすがにそれじゃエスパーさえわからんで
なにがSSとか無いのん? 左が初期の画像、変わったのが右側って感じ
うまく貼れてなかったらスマソ
http://imepic.jp/20180726/261250 >>249
右みるとトランスフォームが子供になってるようだけど
手順としては、シーンに画像を張って、セーブしただけですか?
もし可能ならプロジェクトごとアップできます? >>250
そうです、貼ってセーブしただけです。
プロジェクトは仕事から帰ったら揚げます(社畜)
本体の設定に問題ある感じですかね? 一応画像をアセットにドラッグし、そのごヒエラルキにドラッグして
セーブした画面です
ttps://i.gyazo.com/6660cd11fc79b98801d275614fe26f8f.png
特に変化しないようです
自分はUnity2017.3.1f1を使ってます Unity 2018.2を使っているのですがunityの設定はどこでできますか?
ちなみに画像のバージョンはUnity 4.2.0 です
https://i.imgur.com/kyxzjRZ.png いい忘れてました自分はWindowsを使っています >>253
>unityの設定はどこでできますか?
Unityの何の設定でしょうか?
>いい忘れてました自分はWindows
画像はどうみてもMacですが、人の画像でしょうか? >>253
解決しました
>>255
再生中に周りの色を変える設定をしようとしたのですがeditのところでできました >>252
結局本体再DLして解決しました
付き合ってくれてありがとうございます… >>259
無事に解決してなによりです!
また何かあればお気軽に! 例えばシューティングなどで同じ敵を100体出したいとする
シーンに1体作ってあとはコピペで99体作ったとする
作ってる最中にこの敵に変更を加えたくなってきたとする
例えばタグをEnemyに変えたいとか
そうするとこの場合だと100体全てを修正しないといけなくなる
一方プレハブから100体作った場合だと
プレハブ本体を修正するだけでシーン中の100体が修正される
とかね >>261
プレハブはクローンだと思えばいい。
本体(オリジナルとも言う)のコピー品さ。
利点は大量に画面に表示した時に処理落ち(スロー再生状態)になりづらい。
ワンピース海賊無双というゲームをパクって作った場合
プレハブを使って作ると同じ物が作れるが
プレハブを使わないで作ると処理落ちが激しく遊べる状態ではない。 >>262 >>263
レスありがとうございます。
directX、C++からUnityに乗り換えた者なんですが
プレハブってのは、
敵のクラスをインスタンスしたものだというイメージでいいんでしょうか?
それとも、敵のクラスを定義したもので
あとでシーンの中でプレハブをインスタンス化させるのでしょうか? >>264
敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。
作成タイミングは自由。
シーンの中で動的にプレハブを作成する事も可能。
エディット画面で事前にプレハブを作成して配置して置く事も可能。 >敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。
こんなに堂々と嘘をつく奴も珍しいなw
素直にマニュアル見とけよ
https://docs.unity3d.com/jp/current/Manual/Prefabs.html >>266
説明に間違いなし。
名前の通り初心者にシンプルに説明するのが目的で細かい説明は全てカットしてる。
初心者には自信を持って
『敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK』
この説明を推す。 >>266-267
中級者以上の知識がある人達には
ゲームオブジェクト自体もクラスと説明すれば分かってもらえるかと。
ソースコード上で行うインスタンス生成を
Unity的な言葉に直したものがプレハブと呼ぶにすぎない。
相当細かく説明すると厳密には違うかもしれないけどね。 Instantiateなんてもんがわざわざあのになんでインスタンスにこだわるん?
プログラミングの知識あるならシーンに設置したオブジェクトがインスタンスって方がわかりやすいぞ
シーン内に個別に設置(インスタンス)したオブジェクトの値を変更してもプレハブ(クラス)には影響がないが
プレハブ(クラス)の値を変更したら個別に設置(インスタンス)したものにも影響がある
インスタンスからクラスに無理やり影響を与えるのがApply ほーんじゃあプレハブからクローンしたゲームオブジェクトはなんなんですかね
あれこそインスタンスじゃないんですかね プレハブはプレハブでいいじゃないか。いちいち既知の概念に置き換えないと理解できないの? 再利用しやすくするものくらいの認識でいいんじゃね? 博識のある方達は、やはり呼び名とか拘らないといけないんですね大変ですね。
私なんかは、インスタンスとか未だに理解していません、できてません。
ただスクリプトで複製したり、親子入れ替えたり消したり、ここに置いときゃいい、ぐらいの知識で十分作れてますから、初心者レベルは楽で良いですよ。 あえて言うとプレハブはインスタンスのスナップショットな。instntiateはクラスのインスタンス化とはまた違った仕組みだし。無理矢理他言語の経験持ち込まずに、素直にマニュアル読んだが利口。 >>270
>>271
シリアライズ機構を調べて出直しておいで。 >>268
惜しい、インスタンスを保存したもの、だったら合格点。 盛り上がってますね。
プレファブはテンプレート化されたファイルですよ。
クラスをインスタンス化したものと言うのはメモリ展開されたクラスです。不正解。
プレファブはキャッシュされる前のファイルです。
まあ、キャッシュして書き換える事も出来ますが、どこぞのボッキングが、アセット書き変わった言って嘆いてましたんで、注意が必要です。 初心者は議論なんかするなってか
そりゃ永遠に初心者やな >>279
お前には自分で立てた専用スレがあんだろ。あ、ここもでしたね、失礼しました。 匿名かつ初心者ばっかりだからこそ出来る、このいい加減な議論。楽しいじゃないか。 まあ、弟子さんも十分初心者なんで、議論みて行って下さいな。
アレですよ?ここで、出てきたキーワード、分からなかったら、ググると良いですよ〜 スレチなマウンター共は
【質問以外なんでもOK】Unity雑談スレッドその1
http://mevius.5ch.net/test/read.cgi/gamedev/1531742192/
で遊んであげるからここにこないでね、迷惑だから 昨日からの酷い流れを見て感じたけど
初心者同士で馴れ合ってても百害あって一利なし
正しい知識を習得するのが大事
調べ物は公式マニュアル見る習慣を
最低限公式チュートリアルの初級(英語版)はやったほうがいい 紙パンチに興味持てんわ
285さんのは正論ですね。
でも超概要として、こういうやり合い見るのも有りじゃないすかね。
自分も知らない事結構出てくるし。 ここはクソコテ弟子が初心者相手にマウント取るために立てたスレなんで
初心者以外が質問、回答すると通報されてしまいますよ。 決まったobjectの当たり判定内にいるかつボタンを押したときのスクリプトが組めません、、&&を使えばいいという知識でやったところコンパイルエラーが出てしまいました。名前の一致などは確認済みですこんなタイミングですが教えてもらえると助かります。、、 エラー文とその行を貼れ。
まずはそれからだ。テンプレ if (collision.gameobject.name == "Perfect")&& (Input.GetKeyDown(KeyCode.LeftShift));
{
Destroy(gameobject);
}
の部分です。エラーは多いんですが
・`UnityEngine.Collision' does not contain a definition for `gameobject' and no extension method `gameobject' of type `UnityEngine.Collision' could be found. Are you missing an assembly reference?
・Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement
・The name `gameobject' does not exist in the current context です collision.gameobject.name をログ出力できるかやってみ? ログ出力がなにかいまいちわかってなくて、、すみません。
&&は半角にしてもビジュアルスタジオ上で無効ですと書かれてしまいます Unityの「シリアライズ」というのは、インスペクタみたいなのに表示できるようにする為などに、データをUnity内部機構が読み込める独自様式に変換するという意味だろ
プレハブはあくまで型と初期値の定義であって、プレビュー時や実行時にシーンに生成されて初めてメモリ上に占有領域が確保されて情報が記憶される(メモリ上オブジェクトとしてインスタンス化される)
だからUnityプロジェクト中のヒエラル木も、厳密には型と初期値の定義でしかなく、インスタンス化されたメモリ上オブジェクトではない
Unityゲームオブジェクトやプレハブのインスタンス化は、Unity内部様式向けにシリアライズされた型と初期値の定義の情報に基づいて「デシリアライズ」することで行われる
あと日本語の解説ページは分かりにくい
さらにあと「スナップショット」は通常、システム全体の一時的状態を指すから、システムの構成要素(プレハブ)に使うのはニュアンスがずれてる >>293
if文の最後にセミコロンあるよね。
それをまず消してみて。 >>294
俺もそれ思った。スナップショットだとvmを思い浮かべてしまうわ。
ストレージの技術感のが高いよな >>290
Debug.Log (collision.gameobject.name);
で、何が表示されるか? >>290
if( (collision.gameobject.name =="Perfect")&&(Input.GetKeyDown(KeyCode.LeftShift)))
{
Destroy(gameobject);
}
こうかな? >>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね?
いただいたプログラム打ちましたが駄目でした、、一応全文載せてみます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class judgePerfect : MonoBehaviour
{
void Update()
{
if ((collision.gameobject.name == "Perfect") && (Input.GetKeyDown(KeyCode.LeftShift)))
{
Destroy(gameobject);
}
}
} >>300
>>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね?
で、これで表示された内容は? このプログラムに関する項目じゃないオブジェクトの詳細のようなものが追加されました collisionが唐突にでてきてるけど根本的に間違ってるんじゃね
OnCollisionEnterもつかってないし >>294
プレハブが型と初期値の定義なんてどこに書いてあるよwww日本語と英語には書いてないから、あとは俺が読めない韓国語か?
gameObjectとコンポーネントのSerialized dataだって書いてあんだろ。 ohiohiまた威勢のいい○○が沸いてきやがった
すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな
>Serialized data
そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い >>308
シリアライズされたデータだろ。プレハブには複数のゲームオブジェクト、複数のコンポーネントがシリアライズされて保存されてる訳だけど、型って何? >ゲームオブジェクト
>コンポーネント
これらはとどのつまりはクラス。
クラスとは何か? 基本的にゲームプログラミングでは
シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね?
for文でその配列の要素回して抜き出したり。
でもUnityの2Dシューティングとかのチュートリアルを確認してみると
次々と生み出された敵を配列に入れ込む処理が見当たりませんが
これ、個々のオブジェクトの把握はどうやってるんですか? >>310
なるほど、型か!ってなんねーよww
シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。
ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。 ■ このスレッドは過去ログ倉庫に格納されています