[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
245: 2018/07/21(土)10:33 ID:Wf3Uoe2X(1)調 AAS
それはお前が出来てないだけ。皆そうだと思っていれば幸せなんだろうな
246: 2018/07/21(土)18:00 ID:EggmhhQD(1)調 AAS
ソーシャルゲームが流行る前はしょぼい物作ってもGooglePlayのリストに出るから余裕で回収できたけどね。
今はリリースされたことすら知られないから…。
247: 2018/07/26(木)04:46 ID:kNQ25ubs(1)調 AAS
始めたばっかだけどunityで適当に画像入れてsave projectして、入り直したら画像じゃなくて何か別の物に変換されててlayer編集が効かなくて心折れそう、誰か助けてクレメンス
248: 弟子 ◆rZPPjYuxmQ 2018/07/26(木)05:42 ID:fev1xFrc(1/3)調 AAS
さすがにそれじゃエスパーさえわからんで
なにがSSとか無いのん?
249
(1): 2018/07/26(木)07:19 ID:H78k3yRK(1)調 AAS
左が初期の画像、変わったのが右側って感じ
うまく貼れてなかったらスマソ
http://imepic.jp/20180726/261250

250
(1): 弟子 ◆rZPPjYuxmQ 2018/07/26(木)07:32 ID:fev1xFrc(2/3)調 AAS
>>249
右みるとトランスフォームが子供になってるようだけど
手順としては、シーンに画像を張って、セーブしただけですか?
もし可能ならプロジェクトごとアップできます?
251: 2018/07/26(木)08:05 ID:1mgpo5S/(1)調 AAS
>>250
そうです、貼ってセーブしただけです。
プロジェクトは仕事から帰ったら揚げます(社畜)
本体の設定に問題ある感じですかね?
252
(1): 弟子 ◆rZPPjYuxmQ 2018/07/26(木)21:17 ID:fev1xFrc(3/3)調 AAS
一応画像をアセットにドラッグし、そのごヒエラルキにドラッグして
セーブした画面です

https://i.gyazo.com/6660cd11fc79b98801d275614fe26f8f.png


特に変化しないようです
自分はUnity2017.3.1f1を使ってます
253
(2): 2018/07/27(金)05:07 ID:u+ao3S/Q(1/3)調 AAS
Unity 2018.2を使っているのですがunityの設定はどこでできますか?
ちなみに画像のバージョンはUnity 4.2.0 です
https://i.imgur.com/kyxzjRZ.png

254: 2018/07/27(金)05:10 ID:u+ao3S/Q(2/3)調 AAS
いい忘れてました自分はWindowsを使っています
255
(2): 弟子 ◆rZPPjYuxmQ 2018/07/27(金)09:03 ID:+juP2VsI(1/3)調 AAS
>>253
>unityの設定はどこでできますか?
Unityの何の設定でしょうか?

>いい忘れてました自分はWindows
画像はどうみてもMacですが、人の画像でしょうか?
256
(1): 2018/07/27(金)09:27 ID:u+ao3S/Q(3/3)調 AAS
>>253
解決しました

>>255
再生中に周りの色を変える設定をしようとしたのですがeditのところでできました
257: 2018/07/27(金)11:27 ID:PHzeq30F(1)調 AAS
>>255
その程度もエスパーできないのかよ
258: 弟子 ◆rZPPjYuxmQ 2018/07/27(金)13:05 ID:+juP2VsI(2/3)調 AAS
>>256
無事に出来て良かったです
259
(1): 2018/07/27(金)23:23 ID:xl4o2aTS(1)調 AAS
>>252
結局本体再DLして解決しました
付き合ってくれてありがとうございます…
260: 弟子 ◆rZPPjYuxmQ 2018/07/27(金)23:33 ID:+juP2VsI(3/3)調 AAS
>>259
無事に解決してなによりです!
また何かあればお気軽に!
261
(1): 2018/08/02(木)14:10 ID:8NS2VTtG(1/2)調 AAS
すみません、Unity独特なプレハブについて
どういうもので、具体的にはどういう使い方ができるのか、
わかりやすく教えてくれませんか?

これではわかりません。
https://unity3d-com-jp-learn-tutorials.s3.amazonaws.com/2d-shooting-game/images/game/01/prefab.jpg

262
(1): 2018/08/02(木)14:26 ID:YQXK/fNI(1)調 AAS
例えばシューティングなどで同じ敵を100体出したいとする
シーンに1体作ってあとはコピペで99体作ったとする

作ってる最中にこの敵に変更を加えたくなってきたとする
例えばタグをEnemyに変えたいとか

そうするとこの場合だと100体全てを修正しないといけなくなる

一方プレハブから100体作った場合だと
プレハブ本体を修正するだけでシーン中の100体が修正される

とかね
263
(1): THE・シンプル先生 2018/08/02(木)14:50 ID:MarJrTds(1/2)調 AAS
>>261
プレハブはクローンだと思えばいい。
本体(オリジナルとも言う)のコピー品さ。

利点は大量に画面に表示した時に処理落ち(スロー再生状態)になりづらい。

ワンピース海賊無双というゲームをパクって作った場合
プレハブを使って作ると同じ物が作れるが
プレハブを使わないで作ると処理落ちが激しく遊べる状態ではない。
264
(1): 2018/08/02(木)15:11 ID:8NS2VTtG(2/2)調 AAS
>>262 >>263
レスありがとうございます。
directX、C++からUnityに乗り換えた者なんですが
プレハブってのは、
敵のクラスをインスタンスしたものだというイメージでいいんでしょうか?
それとも、敵のクラスを定義したもので
あとでシーンの中でプレハブをインスタンス化させるのでしょうか?
265
(1): THE・シンプル先生 2018/08/02(木)20:25 ID:MarJrTds(2/2)調 AAS
>>264
敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。
作成タイミングは自由。
シーンの中で動的にプレハブを作成する事も可能。
エディット画面で事前にプレハブを作成して配置して置く事も可能。
266
(2): 2018/08/02(木)22:16 ID:IKwT233P(1)調 AAS
>敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。

こんなに堂々と嘘をつく奴も珍しいなw
素直にマニュアル見とけよ
https://docs.unity3d.com/jp/current/Manual/Prefabs.html
267
(1): 2018/08/03(金)00:07 ID:YqXFTdeb(1)調 AAS
クラスかインスタンスかの二択なら
クラスだろ
268
(1): THE・シンプル先生 2018/08/03(金)04:00 ID:gwkzOX1I(1/2)調 AAS
>>266
説明に間違いなし。
名前の通り初心者にシンプルに説明するのが目的で細かい説明は全てカットしてる。

初心者には自信を持って
『敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK』
この説明を推す。
269: THE・ステップアップ先生 2018/08/03(金)04:11 ID:gwkzOX1I(2/2)調 AAS
>>266-267
中級者以上の知識がある人達には
ゲームオブジェクト自体もクラスと説明すれば分かってもらえるかと。
ソースコード上で行うインスタンス生成を
Unity的な言葉に直したものがプレハブと呼ぶにすぎない。
相当細かく説明すると厳密には違うかもしれないけどね。
270
(1): 2018/08/03(金)07:25 ID:UvI2T87H(1)調 AAS
Instantiateなんてもんがわざわざあのになんでインスタンスにこだわるん?
プログラミングの知識あるならシーンに設置したオブジェクトがインスタンスって方がわかりやすいぞ

シーン内に個別に設置(インスタンス)したオブジェクトの値を変更してもプレハブ(クラス)には影響がないが
プレハブ(クラス)の値を変更したら個別に設置(インスタンス)したものにも影響がある
インスタンスからクラスに無理やり影響を与えるのがApply
271
(1): 2018/08/03(金)07:26 ID:/74BHbXn(1)調 AAS
ほーんじゃあプレハブからクローンしたゲームオブジェクトはなんなんですかね
あれこそインスタンスじゃないんですかね
272: 2018/08/03(金)08:42 ID:Z5jah2NB(1/4)調 AAS
プレハブはプレハブでいいじゃないか。いちいち既知の概念に置き換えないと理解できないの?
273: 2018/08/03(金)08:57 ID:8Qhd0PCF(1)調 AAS
再利用しやすくするものくらいの認識でいいんじゃね?
274: 2018/08/03(金)09:13 ID:Tb6IvIdd(1/8)調 AAS
博識のある方達は、やはり呼び名とか拘らないといけないんですね大変ですね。
私なんかは、インスタンスとか未だに理解していません、できてません。
ただスクリプトで複製したり、親子入れ替えたり消したり、ここに置いときゃいい、ぐらいの知識で十分作れてますから、初心者レベルは楽で良いですよ。
275: 2018/08/03(金)09:29 ID:Z5jah2NB(2/4)調 AAS
あえて言うとプレハブはインスタンスのスナップショットな。instntiateはクラスのインスタンス化とはまた違った仕組みだし。無理矢理他言語の経験持ち込まずに、素直にマニュアル読んだが利口。
276: 2018/08/03(金)10:05 ID:Z5jah2NB(3/4)調 AAS
>>270
>>271
シリアライズ機構を調べて出直しておいで。
277: 2018/08/03(金)10:12 ID:Z5jah2NB(4/4)調 AAS
>>268
惜しい、インスタンスを保存したもの、だったら合格点。
278: 2018/08/03(金)10:52 ID:+s2o5GnK(1)調 AAS
盛り上がってますね。
プレファブはテンプレート化されたファイルですよ。
クラスをインスタンス化したものと言うのはメモリ展開されたクラスです。不正解。
プレファブはキャッシュされる前のファイルです。
まあ、キャッシュして書き換える事も出来ますが、どこぞのボッキングが、アセット書き変わった言って嘆いてましたんで、注意が必要です。
279
(1): 弟子 ◆rZPPjYuxmQ 2018/08/03(金)11:30 ID:M8FCr8g3(1/2)調 AAS
ここ初心者用に建てたスレなんで議論とか他でやって
280: 2018/08/03(金)11:58 ID:udevAjot(1)調 AAS
初心者は議論なんかするなってか
そりゃ永遠に初心者やな
281: 2018/08/03(金)13:15 ID:+vZr26Ym(1/2)調 AAS
>>279
お前には自分で立てた専用スレがあんだろ。あ、ここもでしたね、失礼しました。
282: 2018/08/03(金)13:27 ID:+vZr26Ym(2/2)調 AAS
匿名かつ初心者ばっかりだからこそ出来る、このいい加減な議論。楽しいじゃないか。
283: 2018/08/03(金)14:04 ID:lMgrnDzV(1/2)調 AAS
まあ、弟子さんも十分初心者なんで、議論みて行って下さいな。
アレですよ?ここで、出てきたキーワード、分からなかったら、ググると良いですよ〜
284: 弟子 ◆rZPPjYuxmQ 2018/08/03(金)14:08 ID:M8FCr8g3(2/2)調 AAS
スレチなマウンター共は
【質問以外なんでもOK】Unity雑談スレッドその1
2chスレ:gamedev

で遊んであげるからここにこないでね、迷惑だから
285: 2018/08/03(金)14:10 ID:KvMBRbxy(1)調 AAS
昨日からの酷い流れを見て感じたけど
初心者同士で馴れ合ってても百害あって一利なし
正しい知識を習得するのが大事
調べ物は公式マニュアル見る習慣を
最低限公式チュートリアルの初級(英語版)はやったほうがいい
286: 2018/08/03(金)14:27 ID:lMgrnDzV(2/2)調 AAS
紙パンチに興味持てんわ

285さんのは正論ですね。
でも超概要として、こういうやり合い見るのも有りじゃないすかね。
自分も知らない事結構出てくるし。
287: 2018/08/03(金)15:13 ID:euFxSDg2(1)調 AAS
ここはクソコテ弟子が初心者相手にマウント取るために立てたスレなんで
初心者以外が質問、回答すると通報されてしまいますよ。
288: 2018/08/03(金)17:18 ID:XE8vIJkM(1/6)調 AAS
決まったobjectの当たり判定内にいるかつボタンを押したときのスクリプトが組めません、、&&を使えばいいという知識でやったところコンパイルエラーが出てしまいました。名前の一致などは確認済みですこんなタイミングですが教えてもらえると助かります。、、
289: 2018/08/03(金)17:26 ID:Tb6IvIdd(2/8)調 AAS
エラー文とその行を貼れ。
まずはそれからだ。テンプレ
290
(2): 2018/08/03(金)17:32 ID:XE8vIJkM(2/6)調 AAS
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 です
291: 2018/08/03(金)17:36 ID:Tb6IvIdd(3/8)調 AAS
collision.gameobject.name をログ出力できるかやってみ?
292: 2018/08/03(金)17:37 ID:Tb6IvIdd(4/8)調 AAS
ちな、&&は全角じゃないよね?
293
(1): 2018/08/03(金)17:43 ID:XE8vIJkM(3/6)調 AAS
ログ出力がなにかいまいちわかってなくて、、すみません。
&&は半角にしてもビジュアルスタジオ上で無効ですと書かれてしまいます
294
(2): 2018/08/03(金)17:52 ID:y6ZFjsSR(1/3)調 AAS
Unityの「シリアライズ」というのは、インスペクタみたいなのに表示できるようにする為などに、データをUnity内部機構が読み込める独自様式に変換するという意味だろ
プレハブはあくまで型と初期値の定義であって、プレビュー時や実行時にシーンに生成されて初めてメモリ上に占有領域が確保されて情報が記憶される(メモリ上オブジェクトとしてインスタンス化される)
だからUnityプロジェクト中のヒエラル木も、厳密には型と初期値の定義でしかなく、インスタンス化されたメモリ上オブジェクトではない
Unityゲームオブジェクトやプレハブのインスタンス化は、Unity内部様式向けにシリアライズされた型と初期値の定義の情報に基づいて「デシリアライズ」することで行われる
あと日本語の解説ページは分かりにくい

さらにあと「スナップショット」は通常、システム全体の一時的状態を指すから、システムの構成要素(プレハブ)に使うのはニュアンスがずれてる
295: 2018/08/03(金)17:53 ID:s8alTO1O(1/2)調 AAS
>>293
if文の最後にセミコロンあるよね。
それをまず消してみて。
296: 2018/08/03(金)17:54 ID:XE8vIJkM(4/6)調 AAS
消しました。特に変化なしです
297: 2018/08/03(金)17:56 ID:s8alTO1O(2/2)調 AAS
>>294
俺もそれ思った。スナップショットだとvmを思い浮かべてしまうわ。
ストレージの技術感のが高いよな
298: 2018/08/03(金)19:05 ID:Tb6IvIdd(5/8)調 AAS
>>290
Debug.Log (collision.gameobject.name);
で、何が表示されるか?
299: 2018/08/03(金)19:12 ID:Tb6IvIdd(6/8)調 AAS
>>290
if( (collision.gameobject.name =="Perfect")&&(Input.GetKeyDown(KeyCode.LeftShift)))
{
Destroy(gameobject);
}
こうかな?
300
(1): 2018/08/03(金)20:24 ID:XE8vIJkM(5/6)調 AAS
>>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);
}
}
}
301
(1): 2018/08/03(金)20:25 ID:BofVo0Am(1/2)調 AAS
gameObjectじゃないの?
302: 2018/08/03(金)20:28 ID:Tb6IvIdd(7/8)調 AAS
>>300
>>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね?
で、これで表示された内容は?
303: 2018/08/03(金)20:33 ID:Tb6IvIdd(8/8)調 AAS
>>301
これですね。
304: 2018/08/03(金)20:38 ID:XE8vIJkM(6/6)調 AAS
このプログラムに関する項目じゃないオブジェクトの詳細のようなものが追加されました
305
(1): 2018/08/03(金)20:46 ID:BofVo0Am(2/2)調 AAS
collisionが唐突にでてきてるけど根本的に間違ってるんじゃね
OnCollisionEnterもつかってないし
306: 2018/08/03(金)20:56 ID:g4hffkLt(1/3)調 AAS
>>294
プレハブが型と初期値の定義なんてどこに書いてあるよwww日本語と英語には書いてないから、あとは俺が読めない韓国語か?
gameObjectとコンポーネントのSerialized dataだって書いてあんだろ。
307: 2018/08/03(金)21:11 ID:g4hffkLt(2/3)調 AAS
>>305
俺もそれ思った。
308
(1): 2018/08/03(金)21:13 ID:y6ZFjsSR(2/3)調 AAS
ohiohiまた威勢のいい○○が沸いてきやがった
すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな

>Serialized data
そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い
309: 2018/08/03(金)21:57 ID:g4hffkLt(3/3)調 AAS
>>308
シリアライズされたデータだろ。プレハブには複数のゲームオブジェクト、複数のコンポーネントがシリアライズされて保存されてる訳だけど、型って何?
310
(1): 2018/08/03(金)22:40 ID:y6ZFjsSR(3/3)調 AAS
>ゲームオブジェクト
>コンポーネント

これらはとどのつまりはクラス。
クラスとは何か?
311: 2018/08/03(金)23:17 ID:5oCXpdg6(1)調 AAS
アプデしたらいつも調子悪くなる
312
(5): 2018/08/04(土)04:54 ID:nYTIxyUA(1)調 AAS
基本的にゲームプログラミングでは
シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね?
for文でその配列の要素回して抜き出したり。

でもUnityの2Dシューティングとかのチュートリアルを確認してみると
次々と生み出された敵を配列に入れ込む処理が見当たりませんが
これ、個々のオブジェクトの把握はどうやってるんですか?
313
(1): 2018/08/04(土)05:19 ID:uwGBYqQ5(1/5)調 AAS
>>310
なるほど、型か!ってなんねーよww
シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。
ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。
314: 2018/08/04(土)06:49 ID:jfygBgbK(1/2)調 AAS
おまえら日本語で話せよ
315: 2018/08/04(土)07:35 ID:uwGBYqQ5(2/5)調 AAS
>>312
7.2は読んだか?
316
(1): 2018/08/04(土)09:43 ID:8h4ounWr(1/3)調 AAS
>>313
わかったわかった
お前の人生は大ハズレだな

インスタンスについて基本的な理解が不足してるぞ
ヒエラル木も結局は型定義と初期値に関するシリアライズされたデータの集まりで、プレビュー時や実行時に初めてインスタンス化されてるんだよ
317
(2): 2018/08/04(土)10:32 ID:uwGBYqQ5(3/5)調 AAS
>>316
プレハブの話だよ、ヒエラルキーからゲームオブジェクトをドラッグしてプレハブ作成した時点でヒエラルキー上のはプレハブインスタンスになるだろ。
そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。
このプレハブソースを型だったて言い張るのは無理があると言う話だ。だからどんな意味で型と言ってるか聞いたんだ。雛形って意味なら俺も納得。
318: 2018/08/04(土)10:36 ID:uwGBYqQ5(4/5)調 AAS
>>317
あ、ヒエラルキー上のプレハブインスタンスはソースと変更の参照でOOPで言うインスタンスじゃないのはわかってるから。
319: 2018/08/04(土)10:41 ID:uwGBYqQ5(5/5)調 AAS
>>317
>そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。

ヒエラルキー上のプレハブインスタンスが、実行時やプレビュー時にデシアライズ、と付け加えとく
320
(1): 2018/08/04(土)10:55 ID:8h4ounWr(2/3)調 AAS
>ヒエラル木
デバッグ時にはモニタできるから、「シリアライズされた初期値およびデバッグ実行時の現在値」という表現が良いのか

しかしなぜ「シリアライズ」という言葉を使うんだろうか
ヒエラル木を構成する連続した要素の一つに組み込むという意味なのか
321
(1): 2018/08/04(土)11:19 ID:qIP9aSz0(1/8)調 AAS
>>320
お前ら何でプレファブの中身見て見ないの?
YAMLで書かれたファイルだって一発で分かるだろ、つまりシリアライズされて保存されてるファイルって事だよ。
一方ヒエラルキーに見えてるのもファイル。
再生実行した時だけ、メモリに展開されてる。
わかった?
322: 2018/08/04(土)13:22 ID:8h4ounWr(3/3)調 AAS
1000回日本語文章読んでもバカには無理w
323
(1): 2018/08/04(土)13:36 ID:ASd5/j6X(1)調 AAS
>>321
へー、ヒエラルキーに表示されているのはシーン上のオブジェクトのリストじゃなくてファイルなんだぁ。
ファイルシステムのどこにそのファイルがありますか?またシーンビューで編集しているときはメモリ上にはなくてディスク上にあるんですか?
公式のマニュアルとは違う説明で混乱しそうです。
324
(1): 2018/08/04(土)13:52 ID:qIP9aSz0(2/8)調 AAS
>>323
右上のケバDebugにするとLocalIdentifierInfileってでてくんだろ。
隠蔽されてるが、あるんだよ。それアクセスされると色々ぶっこわれるからな。
325: 弟子 ◆rZPPjYuxmQ 2018/08/04(土)13:55 ID:+VI6JuUR(1/5)調 AAS
初心者スレでマウント取りたいのは分かるから巣に帰って
ちゃんと新しいの作ったからさ
【3Dゲームエンジン】Unity質問スレッド37
2chスレ:gamedev
326
(1): 2018/08/04(土)14:04 ID:qIP9aSz0(3/8)調 AAS
初心者に分かるように言ってんじゃん。
紙パンツスレ飽きちゃったんか?あっちで吠えてろよ
327: 2018/08/04(土)14:29 ID:jfygBgbK(2/2)調 AAS
おまえらの話は誰にも通じてないし役にもたってないぞ
328
(2): 弟子 ◆rZPPjYuxmQ 2018/08/04(土)14:41 ID:+VI6JuUR(2/5)調 AAS
>>326
YAMLとは?
シリアライズとは?
ケバdeaugとは?

初心者なんでまったく訳わかんないですわ
329
(2): 2018/08/04(土)14:43 ID:yHEIRFFR(1/2)調 AAS
>>324
それってシーンファイルに書いてある識別IDじゃない。んでシーンを保存するまで0だよ。保存する前のヒエラルキーはどう説明するのさ。
330
(1): 2018/08/04(土)14:45 ID:yHEIRFFR(2/2)調 AAS
>>328
初心者スレで聞いてみれば。
331: 2018/08/04(土)14:50 ID:cpg8UDOV(1)調 AAS
>>328
知らなくても作れるけどな。
332
(1): 2018/08/04(土)15:05 ID:qIP9aSz0(4/8)調 AAS
>>329
Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。
シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。

未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。
保存前のヒエラルキーは見た目だよ、ドラフト扱いな。
もう少しEditorとUnityEngineの違い分かった方がいいな。
333
(1): THE・シンプル先生 2018/08/04(土)15:07 ID:KOItUBKr(1/2)調 AAS
>>312
自分で工夫する事で昔の「main()ループ」に近い物が作れる。

?:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。
?:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。
?:?を?にアタッチ
?:?の中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy;
?:?の"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new GameObject[3];
?:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject;
?:後はGameObject[0]を使う

当然他のやり方も無数にある。
334
(1): THE・ステップアップ先生 2018/08/04(土)15:19 ID:KOItUBKr(2/2)調 AAS
>>312
次の内容はおまけなので意味不明な場合は気にしなくていいよ。

ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。
今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。
旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。
とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。

じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと
中〜大規模のゲーム作成も想定して作られてるのもあると思う。
この規模になると次の事を実現しないといけない。
・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル
・もともと非常に重い3D物理演算を実用レベルで運用する
・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする
これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり
MMOやオープンワールド系のゲームを作れるポテンシャルを実現している。

FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。
実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより
オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。

余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。
今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。
アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。
335
(1): 弟子 ◆rZPPjYuxmQ 2018/08/04(土)16:23 ID:+VI6JuUR(3/5)調 AAS
>>330
それはどこですか?
誘導お願いします 
ここは、そういうスレなので教えてください
336
(1): 2018/08/04(土)16:28 ID:qIP9aSz0(5/8)調 AAS
>>335
ほらよ、君にうってつけだ
2chスレ:gamedev
337
(1): 2018/08/04(土)17:03 ID:u4pCimN6(1)調 AAS
>>332
>>329
>Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。
>シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。

ヒエラルキーの表示じゃなくて、ヒエラルキーに表示されている、シーン上のオブジェクトの話をしてたつもりなんですけど。

>未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。

未保存のときもlocal identfierfile 0のままシーンビューやヒエラルキービューで編集出来ますけど、そのオブジェクトはメモリ上じゃなくてどこで動いてるんですか?
338
(1): 2018/08/04(土)17:27 ID:qIP9aSz0(6/8)調 AAS
>>337
シーン情報はシーンにある。プレファブ情報はプレファブファイルにある。
てか見たんだろ?ファイルにあるわ。

もちろん画面に表示したり、編集させるにはメモリを使ってる。だけど電源オフったら消える通りストックはされておらん。
編集はできとるが、これがそのまま再生実行時に使われると思ってるところがあんたが嵌ってるところだ。

新規作成したらEditor用のメモリに展開はされる。
だけど電源オフったら消える通りストックはされておらん。

未保存データは再生実行時には使われておらん。
再生実行時に保存データを使ってEditor用のメモリに一旦展開する。これがデシリアライズな。

分かった?
339
(1): 2018/08/04(土)18:23 ID:bPWDdaDo(1)調 AAS
>>338
誰か再生実行時の話してましたっけ?プレハブを作る場面の話だったと思いますけど。
ヒエラル木とか言ってる人に合わせて、ヒエラルキー上にリストされているシーン上のオブジェクトの事を指して、またはオブジェクトの階層構造自体の事をヒエラルキーって言ってたのが悪かったかな。
ヒエラルキーのリストは確かにファイル。

んで、編集中にプレハブを作りました。そのプレハブをシーン上に配置しました。シーン上に配置した時点でオブジェクト化されたんじゃないかと思うのですが、このときはプレハブソースからのデシリアライズは起きないのですか?
340
(2): 2018/08/04(土)18:30 ID:sBxajZWZ(1)調 AAS
playerキャラとかNPCキャラとか複数のオブジェクトで使い回すような自作関数ってそれぞれにアタッチしてるスクリプトに書く?それとも1つ関数をまとめたオブジェクトを作ってそこに書いておいてその都度それぞれが参照する感じのほうがいいですか?
例えばオブジェクトの現在の座標とか着地判定を取得する関数とか
341
(1): 2018/08/04(土)19:26 ID:qIP9aSz0(7/8)調 AAS
>>339
インスタンス化とデシリアライズの話が出たから、そのタイミングである再生実行の話をしただけで、いきなり誰かしたかと言うのはおかしい話。

プレハブから配置したのは、あくまでEditor上でシーン情報を作っただけで、デシリアライズは再生の時に起きるっての分かる為なんだが

まあ、ちょっとデシリアライズを誤解してるってか、話がどんどん逸れそうだからな。行間読むわ

多分言いたいのは、プレハブをシーンに置いた時に、プレハブ情報からシーン情報が構築されないのか?って言いたいんだろう。
一旦Editorのメモリ上では構築される。
そんで、再生や保存で、その時に当然Dirtyな置かれたオブジェクトがファイルに保存される。
再生の初期にシーンファイルを読み込んで、デシリアライズしてメモリ展開する。
オブジェクト化は再生の初期やInstantiateの時に起こる。これをインスタンス化と呼ぶ。

じゃあ、エディタで見えてるのは何なの?って言うと、編集のためにファイルをエディタ用のメモリに展開してるだけ。

最初にプレハブを置く=テンプレートからのエディタ用メモリへのコピー
保存=シーン情報の構築
ヒエラルキー=再生時のメモリ構築用データ
と思えば良い。

まだダメかな?いい加減疲れてきたぞ。をい
342: 2018/08/04(土)19:33 ID:qIP9aSz0(8/8)調 AAS
>>340
人それぞれかな。
俺の場合は、それぞれにアタッチしてる。だが種類は極小でなるべく余計な物はアタッチしないって方針
一個だけアタッチするなら、代表するオブジェクトに持たせたり、シングルトン使ってそいつにコンポーネント生やしたりもする。
シングルスレッドならUnirx辺りを使ってアタッチしないで生やしたりもできる。
それぞれ一長一短だから全部やってみるとええ。
343: 2018/08/04(土)20:34 ID:Ter6X2ca(1)調 AAS
>>340
良いか悪いか。
仕様に基づいて、一番最適な設計を行って実装するのがプログラマだから、察するに現時点の貴方のレベルからすると、342さんも言ってるように、とにかく実装経験を積むことが近道になると思う。
344
(1): 2018/08/04(土)20:47 ID:s81iLtQ9(1)調 AAS
>>341
でもさ、公式のマニュアルに
https://docs.unity3d.com/ja/current/Manual/Prefabs.html
単に、プレハブアセットをプロジェクトビューからシーンビューにドラッグするだけで、プレハブのインスタンスを作成します。
プレハブのインスタンスとして作成されたオブジェクトは、ヒエラルキービューで青色の文字として表示されます(通常のオブジェクトは黒の文字で表示されます)。

て書いてあるのよ。
プレハブはシアライズされたファイルで、そのシリアライズされたファイルからインスタンスを作成するんだからデシアライズじゃないの?Unityではデシアライズとよばないの?
1-
あと 658 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s