[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
422: 2017/06/18(日)08:51 ID:3wXsUBad(1/4) AAS
バーカ
423: 2017/06/18(日)09:43 ID:5tDWnbC/(1) AAS
持ち上げてから梯子外されるガイジ
424(3): 2017/06/18(日)10:23 ID:XAVbtWpl(1/3) AAS
>>418
ケースバイケース君と俺は別人だが俺が書いた>>379から派生してグダッてるみたいなので基本方針を示しておく
1. Findは基本的に使用禁止
文字列引数による検索は実行時エラーの温床となるので避けるべき、インスペクタ上でオブジェクトの名前を変えられただけでコケるとか怖すぎる
またヒエラルキーツリーを全部舐める様な処理を多用するのはパフォーマンス的にも好ましくない
2.インスペクタ上で参照がセットされていることを前提にした構造は可能な限り避ける
シーンファイルを誤って変更された時に、インスペクタ上で探して修正するのは面倒。特にシーン内のオブジェクトが複雑に絡み合った参照関係を持つなどは論外
省5
425: 2017/06/18(日)10:39 ID:3wXsUBad(2/4) AAS
じゃあゲーム上のオブジェクト参照どうすんのよ
426(3): 2017/06/18(日)11:22 ID:YW1VLQdX(1/2) AAS
これ間違ってるね
>1. Findは基本的に使用禁止
名前で判断するのが一番メンテナンスしやすいので普通によく使われる
バグってもそれを上回る使い安さ。だから使用禁止にしてる企業なんかない
むしろ命名規則の徹底の方が大切。名前書き間違えるとか池沼に弄らせない限り起きません。
池沼はゲーム作っちゃダメ。以上、終わり
427: 2017/06/18(日)11:24 ID:/3Y06ViO(1) AAS
>>424
低能自慢して何が楽しいの?
アセットおじさんとは違う嫌がらせかね
428: 2017/06/18(日)11:51 ID:XAVbtWpl(2/3) AAS
>>426
たとえば…
GameObject.Find("MainCamera");
Camera.main
他所から変更されるリスクはどちらも大差ないが、優先されるべきは圧倒的に後者だ
コード補完が効くのはどっちだ?
コンパイル時点で間違いが検出出来るのは?
省4
429: 2017/06/18(日)12:19 ID:YW1VLQdX(2/2) AAS
さぁ?w
現実は君の考えてる妄想とは違うってこったろうね
430: 2017/06/18(日)12:23 ID:3wXsUBad(3/4) AAS
得意げに長文書いててワロタ
ゲーム会社で働いてから書き込もうな知ったかエンジニア君
431: 2017/06/18(日)12:57 ID:d8uwf8Mk(1/2) AAS
運用カバー無しとかキリがないと思うんだけど
432(1): 2017/06/18(日)13:09 ID:q1X0lAjX(2/5) AAS
>>424
おお、何となく書いたレスに真面目な長文回答つけてくれてわざわざスマンね
俺は内容に関してはほぼ同意
Findに限らず、SendMessageやStopCoroutineみたいな文字列指定はクソだからね
ただ正し過ぎるというか、1,2を両方課すのは求道的すぎて利便性が損なわれてる気もする
1に比べたら、インスペクタ参照についてはもっと緩くてもいいんじゃね
433: 2017/06/18(日)13:10 ID:X5Sl8Nuy(2/5) AAS
ケース・バイ・ケースでアセットをかうのが一番最適だと思います
434: 2017/06/18(日)13:45 ID:DLtXAMjk(1) AAS
Findは使わないけど、正規表現検索と置換使ってないのかな?
435: 2017/06/18(日)13:55 ID:q1X0lAjX(3/5) AAS
そりゃ文字列処理は文字列引数でいいっすよ
参照や呼出しを実行時に文字列比較で解決するのはパフォーマンスも悪いしメンテナンス性も落ちるしデメリットしかないよねってお話
436: 2017/06/18(日)13:56 ID:+mnWtDzw(1/3) AAS
そうだ、俺もアセットを買おう
細かい部分大変だ
アセットを買おう
437: 2017/06/18(日)14:00 ID:Fr4XIrmP(1/2) AAS
>>426
js好きがコンパイルとかたるいっすわw
とか抜かしててライブラリ使う時に違う型渡しててデバッグに手間取って死んでたの思い出した。
438: 2017/06/18(日)14:03 ID:B/qMU4Iu(1) AAS
もうすべての質問に
ケースバイケースて返しとけよw
439(4): 2017/06/18(日)14:08 ID:M/2QAqjI(1/5) AAS
スクリプトアタッチやインスペクタの設定をエディタ拡張で
自動化してる俺には関係が無かった
440: 2017/06/18(日)14:29 ID:q1X0lAjX(4/5) AAS
それな
441(4): 2017/06/18(日)14:46 ID:XAVbtWpl(3/3) AAS
>>432
全面的に同意、求道的すぎるのは認める
ここ初心者多いから>>426みたいなクソ開発者になるなという意味を込めて厳しめに書いた
リスクを理解した上で使うならともかく、安易に便利だからで多用すると一気にコードが糞になるからなぁ
>>439
あるある、ついでにエディタ上で触らせる必要がなく親子関係が確定してるオブジェクトなんかはhideFlagsも立てたりする
442: 2017/06/18(日)15:19 ID:nmnJlvzm(1/9) AAS
コルーチンを使えば大抵は解決する
443: 2017/06/18(日)15:39 ID:X5Sl8Nuy(3/5) AAS
アセットを買えば大抵は解決しますよ
444: 2017/06/18(日)15:47 ID:nmnJlvzm(2/9) AAS
コルーチンとラムダ式でUnityの制御は全て網羅できる
λを崇めよ
445(1): 2017/06/18(日)17:08 ID:hyK8VDmp(1) AAS
アセットストアで売っているアセットについて質問しても宜しいでしょうか?
アセットのスレらしきものがなくて。
terraincomposer2というアセットを買ったのですが、公式を見ながら使ってるのに躓いてしまって…
外部リンク:www.terraincomposer.com
このアセット購入した方いらっしゃいますでしょうか?
お伺いしたいです。
446: 2017/06/18(日)17:17 ID:X5Sl8Nuy(4/5) AAS
>>445
ケースバイケースで別のアセットを買うのが良いでしょう
447: 2017/06/18(日)17:30 ID:Ga9T3hxB(1/9) AAS
>>439
なにそれ欲しい
GitHubで公開おなしゃす
448(1): 2017/06/18(日)18:20 ID:M/2QAqjI(2/5) AAS
やってる事はOneStepEffectsと大して変わらないから参考にしたらいんでね?
外部リンク:github.com
全部既出の情報だから大して難しくないし、最初にインスペクタにボタン付けて
それをカスタムするだけだよ
449(1): 2017/06/18(日)18:30 ID:Ga9T3hxB(2/9) AAS
>>448
いや難しくないならなおさら該当機能のみを切り出したシンプルなコード提供おなしゃす
URLは主とする目的以外のスクリプトが多すぎて初心者にはどこ切り出したらいいのかわかりません
>>441の方でもいいですよ
Find使うのは良くないってわかってるけど
インスペクタでポチポチ設定するのもな…ってのを解決できるんでしょ?
ウンチクをダラダラ書くよりもコードと行動で示すのが他の開発者にとっても有益では
省1
450: 2017/06/18(日)18:41 ID:9R6VPmIg(1) AAS
スゲー他力本願w
451: 2017/06/18(日)18:47 ID:d8uwf8Mk(2/2) AAS
エディタ用のスクリプトを実際に使うとなると、自分で読み書き出来ないと実用性ないのでは
452(1): 2017/06/18(日)18:48 ID:M/2QAqjI(3/5) AAS
OneStepEffectsってcsが1つ入ってるだけなんだが?
255行目のApplySSAO()とか見ればいいじゃん
幾らなんでも酷いんじゃねーの?
453: 2017/06/18(日)19:08 ID:X5Sl8Nuy(5/5) AAS
>>449
アセットを買ってもダメみたいですね
454: 2017/06/18(日)19:25 ID:Ga9T3hxB(3/9) AAS
>>452
確かに丸投げはいかんなと思い直して読んだけど、このコード提示するのは見当違いじゃね
ここまでさんざん議論されてきたのって
Unityエディタ上でインスペクタで参照設定するのと
AwakeでFind&GetComponentするのとではランタイム時にどっちが効率いいかだよね
URL先のコードはUnityエディタ上のボタン一つでカメラやライトを
FindObjectOfTypeで全走査してAddComponentやプロパティの設定してるだけ
省4
455: 2017/06/18(日)19:28 ID:Ga9T3hxB(4/9) AAS
ちなみにFind系は基本的にエディタ拡張でヒエラルキー走査して
ごにょごにょやるためにあるようなものだと思ってる
Unityエディタ上ではパフォーマンスは多少犠牲になっても問題ないし
こうなると>>441の”あるある”に期待やなぁ
456(1): 2017/06/18(日)19:39 ID:M/2QAqjI(4/5) AAS
エディタでメソッド実行すると変数はインスペクタに記録されるから
手動で設定したのと同じなんだけどな
457(1): 2017/06/18(日)19:49 ID:nmnJlvzm(3/9) AAS
すまん、お前らまだUnityでコーディングしてるね
画像リンク[png]:teamcherry.com.au
今はビジュアルスクリプディングの時代ですよ
458(1): 2017/06/18(日)19:50 ID:nmnJlvzm(4/9) AAS
お前らまだUnityでコーディングしてるの?
459(2): 2017/06/18(日)19:51 ID:Ga9T3hxB(5/9) AAS
>>456
いやランタイム時の参照をどう持つかのお話なので
Unityエディタ上でコンポーネントのプロパティの設定(と無い場合はAddComponent)を
自動化してるか手動でやるかのあなた話は、議論している箇所が違うんですよね…
煽ってるわけではないので気を悪くしないでね
460(1): 2017/06/18(日)20:01 ID:M/2QAqjI(5/5) AAS
>>459
話もブレてるし何を理想として思い描いたのかよく分からないな
461: 2017/06/18(日)20:03 ID:0/Ag2Y7d(1) AAS
>>458
コルーチンをビジュアルに書いたの見せてくれ
462(1): 2017/06/18(日)20:13 ID:q1X0lAjX(5/5) AAS
>>459
最初の問い(>>389)はランタイム時の効率についての話しだが、それについてはFindのほうがオーバーヘッドが大きいよねと概ねコンセンサスは出来てるだろう
(直接、Find系とインスペクタ参照で速度比較したデータが示されていないけど)
で、>>424でランタイム時の効率だけでなくメンテナンス性にも話題が広がったので、複雑な参照関係はエディタ拡張スクリプトで自動化しておくと効率面でもメンテナンス面でも有益なことが多いよね、となった
なんかおかしいかな?
463: 2017/06/18(日)20:19 ID:Ga9T3hxB(6/9) AAS
>>460
俺の話は徹頭徹尾、ランタイム時の参照をAwakeでFindしないかつインスペクタでポチポチしない方法です
>>439の書き込みにこの話の求道者である>>441が賛同してたので勝手に期待しちゃっただけです
あなたのやっている自動化は私の求めるものとは違っていただけなのでどうぞ気になさらずに
464(2): 2017/06/18(日)20:19 ID:+mnWtDzw(2/3) AAS
>>457
これなんてやつ?
465: 2017/06/18(日)20:28 ID:3wXsUBad(4/4) AAS
>>464
モグリかよ
466(3): 2017/06/18(日)20:31 ID:Ga9T3hxB(7/9) AAS
>>462
そう、その「複雑な参照関係はエディタ拡張スクリプトで自動化しておく」方法を知りたいんです
自分の状況を書いておくと、
1. 最初はインスペクタでドラッグ&ドロップで参照設定していた
2. UIとか配置オブジェクトが1シーンに数十個とかになってくると、さすがにポチポチは面倒…
3. Awakeで命名規則に従ってFindで設定しちゃえ
4. ランタイムではパフォーマンスが悪いし、オブジェクトのリネームに弱いと気づき、泣く泣くポチポチへ戻る
省4
467(2): 2017/06/18(日)20:34 ID:nmnJlvzm(5/9) AAS
>>464
PlayMaker
UE4のブループリント風エディタ拡張
もはやゲームプログラマがコードを書く時代は終わった
468: 2017/06/18(日)20:37 ID:nmnJlvzm(6/9) AAS
コルーチン、LINQ、ラムダ式を使わないならコードなんて書くな
もうお前がやろうとしている事は他の誰かがアセットにして公開しているのだから
469(1): 2017/06/18(日)20:41 ID:+mnWtDzw(3/3) AAS
>>467
うわーこんな便利な物があるんですね
すぐに買います
470(1): 2017/06/18(日)20:46 ID:nmnJlvzm(7/9) AAS
今はもうC#プログラミングは関数をポータブルに持ち運ぶ世界だよ
クラスの概念さえ以前より希薄になろうとしている
遠く離れた、名前すら知りもしない世界の果てのクラスの関数をプレイヤークラスが実行できる
これがファーストクラス関数型の世界
従来の手続き的なコーディングはレガシープログラマと言われる
Unityでコーディングする意味がない
471: 2017/06/18(日)20:48 ID:m9nbofGj(1) AAS
>>469
まて、早まるな。
PlayMakerは確かに便利だけど、
結局プロパティとかメソッドの知識がないと組めないのは変わらんぞ。
472: 名無し@キムチ 2017/06/18(日)21:14 ID:UdS9CyS1(1) AAS
T2VBuilderはUnityでつくられていると思いますが、
あのように自分の画面をキャプチャーしてAVIに録画する関数は、
Unityのスクリプトにあるのですか?
またそれは何という名前の関数ですか?使い方もお願いします。
473: 2017/06/18(日)21:37 ID:Fr4XIrmP(2/2) AAS
>>470
そのうちリアクティブスパゲティ作りそうだな
474(1): 2017/06/18(日)21:40 ID:WNEWBLm8(2/4) AAS
>>466
単にこういうやつを求めてる?
using UnityEditor;
using UnityEngine;
using System.Collections.Generic;
public class attachSelectObjects
{
省11
475: 2017/06/18(日)22:01 ID:Ga9T3hxB(8/9) AAS
>>474
うーん、せっかく貼っていただいたんだけど違うかな…?
それだとListの中をランタイム時にいちいち回して該当オブジェクトを検索しなくちゃいけないからさらに効率悪そう
他の人はどうやってるんだろ?って調べてみると、ZenjectってライブラリがやってるDIがイメージ通りっぽい
ただこれも結局はランタイム時に参照関係を解消するみたいなので処理効率という点ではFind系と変わらなそう?
…もう諦めてしばらくはドラッグ&ドロップでやっていきますわ
476(1): 2017/06/18(日)22:08 ID:WNEWBLm8(3/4) AAS
ああ、uiはuiの参照先にアタッチ、playerはplayerにみたいなことをやりたいってこと?
477: 2017/06/18(日)22:12 ID:Ga9T3hxB(9/9) AAS
>>476
そそ。インスペクターにドラック&ドロップでポチポチ設定するのも数が少なけりゃいいけど
大量になってくると面倒かつアタッチ先ミスったりアタッチ漏れとかあるから
それで自動化って話が出てたから期待しちゃっただけ
478(1): 2017/06/18(日)22:14 ID:mYx0Ucs7(1) AAS
初心者です。
ボタンを押したらidleからjumpステートにbool値で移ってまたidleにすぐ戻るスクリプトを書きたいのですが。
if (Input.GetButtonDown("Bbutton"))
{
if (currentBaseState.nameHash == idleState)anim.SetBool("e", true);
}
if (currentBaseState.nameHash != idleState)anim.SetBool("e", false);
省8
479: 2017/06/18(日)22:17 ID:nmnJlvzm(8/9) AAS
コルーチンを使えば解決しますよ
480: 2017/06/18(日)22:25 ID:nmnJlvzm(9/9) AAS
そらフラグ立てた直後にステート取得したってアイドルのままだよなぁ??
やっぱり必要なのはコルーチンじゃないか
481(1): 2017/06/18(日)23:29 ID:WNEWBLm8(4/4) AAS
>>478
jumpStateに正しいHash値が設定されてないとか
たとえば
static int JumpState = Animator.StringToHash("歩いてるどー");
みたいなコードになってるとすると
永久に==JumpStateは満たせないからジャンプし続けそうだね
482: 2017/06/19(月)01:29 ID:6qJGZiJQ(1) AAS
まさかのコルーチンおじさん登場
483: 2017/06/19(月)01:51 ID:7YbLLl2h(1/2) AAS
>>466
これ説明しだすときりがないんよなぁ
>3. Awakeで命名規則に従ってFindで設定しちゃえ
これでうまく動いていたなら、そのコードを微調整してメソッドに切り出して、ContextMenu属性つけて、Resetから叩くようにするだけでもいいかも?
Resetはスクリプトをアタッチした時に参照を掴む処理を呼ぶため、ContextMenu属性は任意のタイミングで参照を再設定するために使う感じ
484: 2017/06/19(月)02:40 ID:7YbLLl2h(2/2) AAS
>>466
ちょっとネタっぽい作りにするならこんな感じとか?
エディタ上にしか存在しないオブジェクトを作ってそいつに参照抱えさせて、受け手にばら撒くスタイル
ビルド後は撒き手側クラスすら存在しないので、ダメな子であるFindObjectsOfTypeを使っても実行時のパフォーマンスには影響しない
外部リンク:docs.google.com
まあこれはあくまでもこんな事もできるというお遊びでしかないので、本気でこれを実用しようとか考えないようにな
真面目に作るならEditorWindow使う
485: 2017/06/19(月)02:43 ID:+84dxBsS(1) AAS
自分もエディタ拡張で事前に自動Findするやつ使ってるけど
量が増えすぎると結局不安になってきて
「あれ? これ使う時にResourceから逐一Loadすればもうそれでいいんじゃないか・・・?」
ってなってきちゃった。
486: 2017/06/19(月)02:56 ID:omxlK2mg(1) AAS
>>481
Base Layer.を抜かしてました。
くだらなすぎて泣けてきました。
487(1): 2017/06/19(月)06:54 ID:rsZkYwXo(1) AAS
アセットをかえば全て解決ですね
488: 2017/06/19(月)09:07 ID:IRp6o2OC(1) AAS
>>467
uScriptはどうなん?
489: 2017/06/19(月)20:34 ID:NdBJ75e3(1) AAS
>>487
やはりみんなここに辿り着くんですね
アセット買います
490: 名無し@キムチ 2017/06/19(月)23:08 ID:VRjf7lKr(1) AAS
みなさん、以前質問したstart()の下のほうの行がうまく処理されない問題ですが、
処理されない処理をupdate()のほうにコピペしたところ、うまく解決しました。
根本的な問題解決ではないような気もしますが、現象面だけの解決であっても当方はいたく満足しております。
どうもありがとうございました!!
491: 2017/06/19(月)23:14 ID:lfmUrKKv(1/3) AAS
なぜか分からんけど解決した
それが一番怖いこと
492: 2017/06/19(月)23:17 ID:lfmUrKKv(2/3) AAS
それで満足されるのが恐ろしいから色々アドバイスしたのに想いが全く伝わらなくて残念です
493: 2017/06/19(月)23:42 ID:q2ZrJf+E(1/2) AAS
2回目の書き込みなのに「色々アドバイスした」。。
CMでやってる店で2回目なのに「いつもの」て言う人かな?
494: 2017/06/19(月)23:45 ID:lfmUrKKv(3/3) AAS
毎日IDが変わることを知らない2ch初心者かな?
やっぱりワッチョイ導入したほうがいいのかねぇ
495(1): 2017/06/19(月)23:59 ID:q2ZrJf+E(2/2) AAS
あーそうやって自分は答えてやってるとアッピールしたいんですね
証拠も無いからクズ
496: 2017/06/20(火)00:11 ID:7sZ3tBVP(1/9) AAS
証拠が欲しいのならワッチョイ導入したほうがいいかね?
IP表示込みでもいいよ
2chは匿名だからこそ、レスひとつで相手の力量の読み合うのが愉しいんだよ
反面、抑圧されている弱者も正直な不満を表出できる自由な場だ
匿名は素晴らしい
自由だからこそ愉しい
匿名だからこそ身分が保たれる
省1
497: 2017/06/20(火)00:12 ID:7sZ3tBVP(2/9) AAS
あー、日跨いでid変わってもうた〜(´д⊂)‥ハゥ
498: 2017/06/20(火)00:15 ID:7sZ3tBVP(3/9) AAS
>>495
証拠がないのが不満だということはワッチョイやIP表示の導入推進派ということでいいのかな?
499: 2017/06/20(火)00:25 ID:7sZ3tBVP(4/9) AAS
読むのは力量だけじゃないやね
別にマウンティングがしたい訳ではない
話相手は何が不満なのか、何に抑圧されているのかも掬いあげたい
対話を諦めず、ニーズを掘り起こそう
(酔っ払いの戯言だから話2/3で聞いてくれw)
500: 2017/06/20(火)02:10 ID:nArg3ZYM(1/8) AAS
荒れすぎだしワッチョイでええやろ
まともに質問できへんやんけ
501(1): 2017/06/20(火)02:19 ID:hl3V7Wt6(1/9) AAS
updateに移したら上手くいきましたは相当に気持ち悪いが
質問者本人に追求する気がないならどうにもしてやれんわな
回答してる側って
マウンティングとかそんなんじゃなくて(いや、そういうやつも確実にいるけど)
技術的にスッキリしたいのもあるし、
手助けしてやりたいと思うのが
人の役に立つことで自分の存在意義をたしかめる社会性のある人間の本質なんだろう、
省4
502(2): 2017/06/20(火)02:23 ID:0OJe7GTu(1/3) AAS
ブレンドシェイプで1より大きい値を指定できないですかね?
これこそ本当にそういうアセットがあったら教えてほしい
上下前次1-新書関写板覧索設栞歴
あと 500 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s