[過去ログ]
製作途中で得たUnityのミニ知識を披露するスレ (60レス)
製作途中で得たUnityのミニ知識を披露するスレ http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
24: 名前は開発中のものです。 [sage] 2018/02/19(月) 15:07:22.43 ID:LZNQfRtm 2dゲ作成しても3dオブは使えるが注意、実行はあくまで平面になるのでコリジョン判定するには2d用を使用しないとならない http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/24
25: 名前は開発中のものです。 [sage] 2018/02/19(月) 15:10:05.97 ID:LZNQfRtm 例えばcubeにboxColder2dァタッチする、cubeを回転させてもちゃんとコライダも変形する http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/25
26: 名前は開発中のものです。 [sage] 2018/02/24(土) 12:47:13.69 ID:OtNjy344 親オブジェクトにメッセージ送りたい時の方法 なんかggったらめんどくさそうだったけど、簡単に出来た transform.parent.SendMessage("OnCollisionEnter2D",collision); これ子供のOnCollisionEnter2Dに書くと、親のOnCollisionEnter2Dを起動できる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/26
27: 名前は開発中のものです。 [sage] 2018/02/28(水) 23:55:49.66 ID:kbujvcd2 空のGameoject作成、そこに何か(SpriteでもCubeでも)をアタッチ さてこれを回転とか移動するアニメを考える アニメを親オブに設定すると、position挙動するアニメはちゃんと動かない なので子に設定する、 子はLocal座標なのでちゃんと意図したように挙動する。 ちょっと悩んだ>< http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/27
28: 名前は開発中のものです。 [sage] 2018/03/01(木) 15:40:00.67 ID:v/pfxDRf 製作途中のを実行してみたら、あらUIの場所がおかしい ってことで実行環境に左右されずにUIの位置を固定するには 「unity ugui 画面サイズ」でggったらCanvas Scalarが関係するらしいまでは分かった でもドヤっているそれぞれのHPでは結局解決しない そこでttps://docs.unity3d.com/ja/540/Manual/HOWTO-UIMultiResolution.html 公式の説明を見ると、ピボットが関係しているらしい うんこれで、どんな解像度になってもちゃんと表示された! HPで解説している人たちはちゃんと自分でやってるのだろうか… http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/28
29: 名前は開発中のものです。 [sage] 2018/03/01(木) 15:41:25.76 ID:v/pfxDRf ↑ピボットではなくアンカーだった>< http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/29
30: 名前は開発中のものです。 [sage] 2018/03/01(木) 22:02:31.71 ID:v/pfxDRf Instantiateについて 下記コードは「BgSea」にアタッチしているスクリプト「ScBgSeaNoSlice」の中のpublic static変数に代入 Instantiateを発行した時点で、代入されていないとダメかと思ったら、これで行けました 実際スクリプトのstartでprintしたらちゃんと加算されたのが入ってた うん、これはイイ GameObject BgSeaClone = Instantiate(BgSea, transform); BgSeaClone.transform.position = new Vector3(BgSeaPos.x, SpawnY, 0); mapY++; ScBgSeaNoSlice.BgSeaXY = new Vector2Int(mapX, mapY); http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/30
31: 名前は開発中のものです。 [sage] 2018/03/01(木) 22:02:31.85 ID:v/pfxDRf Instantiateについて 下記コードは「BgSea」にアタッチしているスクリプト「ScBgSeaNoSlice」の中のpublic static変数に代入 Instantiateを発行した時点で、代入されていないとダメかと思ったら、これで行けました 実際スクリプトのstartでprintしたらちゃんと加算されたのが入ってた うん、これはイイ GameObject BgSeaClone = Instantiate(BgSea, transform); BgSeaClone.transform.position = new Vector3(BgSeaPos.x, SpawnY, 0); mapY++; ScBgSeaNoSlice.BgSeaXY = new Vector2Int(mapX, mapY); http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/31
32: 名前は開発中のものです。 [sage] 2018/03/02(金) 14:23:56.52 ID:AY5Adz5C >>31 これ同じスクリプトが複数ある場合の生成では、全部同じ値になるので どのスクリプトかを指定しないと無理で、且つその場合staticな変数名を指定できない? そこで スクリプトクラス名 ref = Obj.GetComponent<スクリプトクラス名>(); で指定し、ref.関数名();でパラ持って行く方法かな http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/32
33: 名前は開発中のものです。 [] 2018/03/19(月) 19:32:42.84 ID:GhdjDhgu GameObjectクラスはObjectクラスを継承しているクラス http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/33
34: 名前は開発中のものです。 [sage] 2018/03/22(木) 20:29:19.94 ID:kc6hqrdR テキストデータ読み込みで注意! メモ帳で漢字まじりでデータ作成下場合、保存でゆにこおどかゆてぃえふにしないと、りそぉすろぉどしてもちゃんと読み込めん! いや読み込み事態は成功するからやっかいなんだ! http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/34
35: 名前は開発中のものです。 [sage] 2018/03/23(金) 16:35:57.22 ID:vAC3q6AE コルーチンのyieldのサンプルってさ yield return new WaitForSecondsRealtime(5); とかなってね、毎回newするけどさ これ別のとこで作成して private WaitForSeconds wfTime; wfTime = new WaitForSeconds(0.1f); として yield return wfTime; でも行けるね それから時間変更は再度newすれば wfTime = new WaitForSeconds(0f); OKですね、ちなみに0指定すると、ただの yield return null; と一緒かな http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/35
36: 名前は開発中のものです。 [] 2018/03/28(水) 04:30:40.73 ID:HPBo1FRD やヴぁう Toggleの設定がよくわからいい ちょっと明日、ってか今日か確認して結果上げる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/36
37: 名前は開発中のものです。 [sage] 2018/03/28(水) 13:04:45.22 ID:tgPjGqdr 了解しました。 http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/37
38: 名前は開発中のものです。 [sage] 2018/03/28(水) 13:22:23.73 ID:HPBo1FRD うん、検証してみたけど、 cb.normalColor はボタン押した一回しか変更されず、そのあとトグル押すとwhiteになるが、highlightedColorはそのままですね とおもったら、なんかフォーカスが移った時にはnormalColorなのか、うん分かりにくい 分かりにくいと言えば、このチェックマーク自体が・・・ ttps://i.gyazo.com/a6bdc3801eb73b31bc9ab48a82eafb6d.png なんか色々やってたら、替えれたわ ttps://i.gyazo.com/58cfaa990840f929a72c1358c252941a.png http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/38
39: 名前は開発中のものです。 [sage] 2018/03/28(水) 19:06:31.01 ID:HPBo1FRD ついでに、UIでマウスイベントの取得方法 UIでOnMouseEnterとかのマウスイベント取得する場合、取得したいUIにコライダーをアタッチする(コライダーの領域を調整する) CanvasはRenderModeをScreenSpace-Cameraにする これでUI上でOnMouseXXX系の処理が可能 http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/39
40: 名前は開発中のものです。 [sage] 2018/04/16(月) 12:18:11.83 ID:HkgBqI4K Toggleのスクリプト時追加方法とイベント取得の忘備録 まずToggleの様なコンポーネントはAddComponentする private Toggle tgl; tgl = gameObject.AddComponent<Toggle>(); グループ化するには、同じようにToggleGroupを追加してtgl.group = で指定しRegsterToggleしておく トグルのonValueChangedを使うにはdelegate で行う(これは公式にある) tgl.onValueChanged.AddListener(delegate { ToggleValueChanged(tgl);}); 他がセレクトされて自身が解除された場合の取得は、まずusing UnityEngine.EventSystems;を追加、自身のスクリプトの継承に IDeselectHandlerを追加するとOnDeselectイベントが使える http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/40
41: 名前は開発中のものです。 [sage] 2018/04/19(木) 22:32:22.34 ID:DX/Z9/AJ ちょっとしたミニ知識、というまでもないかな staticを使いたいけど、publicでインスペクタで指定したい場合これにstaticは付けられない そんな時は 1. public Text txtMain; 2. static private Text stxtMain; こんな感じで1をインスペクタで指定する んで private void Awake() { stxtMain = txtMain; } こんな感じで参照してすれば、どちらも使用可能で同じオブジェクトを使える http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/41
42: 名前は開発中のものです。 [sage] 2018/04/22(日) 12:08:44.69 ID:ixXXVG5k ■TimeLineでのスクリプトについての忘備録1 TimeLineでスクリプトを使うには、最低でも2つのスクリプトが必要 PlayableAssetとPlayableBehaviour TimeLineエディタでPlayaleTrackをAddで追加する このトラックにPlayableAssetを指定する PlayableAsset内ではPlayableBehaviourを指定する、これでPlayableBehaviour内で停止時などの関数が利用できる 外部からプレイなどを制御するにはPlayableDirectorを指定して制御する 一番簡単なのは、Publicでインスペクタから指定するのがいい 尚、Trackに同じPlayableAssetを複数使う場合、どこがPlayしているか特定するにはHashCodeを利用すれば可能 PlayableAssetのGetPlayableCountでそれぞれの番号は取得可能だが、これを利用する手立てが…誰かわかれば教えて>< ttps://i.gyazo.com/b7b569b05d0eacd9e028987fc43be89f.png http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/42
43: 名前は開発中のものです。 [sage] 2018/04/22(日) 12:13:06.43 ID:ixXXVG5k ■TimeLineでのスクリプトについての忘備録2 スクリプトでシーン上のオブジェクトを利用する場合 まずPlayableAssetで public ExposedReference<UnityEngine.GameObject> m_MySceneObject; と宣言、 public override Playable CreatePlayable内にて クラス型 playableBehaviour = new クラス型(); playableBehaviour.m_MySceneObject = m_MySceneObject.Resolve(graph.GetResolver()); とする スクリプトPlayableBehaviourでは public GameObject m_MySceneObject { get; internal set; } これでこのGameObject に対して色々と命令が出せる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/43
44: 名前は開発中のものです。 [sage] 2018/05/03(木) 14:27:48.38 ID:Sxk8HZSj 公式のシーン読み出しのサンプルやってみた ttps://docs.unity3d.com/ja/current/ScriptReference/SceneManagement.SceneManager-sceneLoaded.html シーンがロードされたとき、アンロードされたときが欲しかったのでこのサンプルが使える void Awake() { Debug.Log("Awake"); } void OnEnable() { SceneManager.sceneLoaded += OnSceneLoaded; SceneManager.sceneUnloaded += OnSceneUnLoaded; } void OnSceneLoaded(Scene scene, LoadSceneMode mode) { Debug.Log("OnSceneLoaded: " + scene.name + ",mode:" + mode); } void Start() { Debug.Log("Start"); SceneManager.LoadScene("s2" , LoadSceneMode.Additive); } public void UnloadS2() { SceneManager.UnloadSceneAsync("s2"); } void OnSceneUnLoaded(Scene scene) { Debug.Log("OnSceneUnLoaded: " + scene.name ); } コード補正がかかるからわかると思うけど、UnLoadの時のパラメータはSceneのみになる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/44
45: 名前は開発中のものです。 [sage] 2018/09/16(日) 15:15:08.03 ID:LNRMkHTN >>32 Unityのバージョンによって、変数名refが使用できませんでしたのでご注意ください http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/45
46: 名前は開発中のものです。 [sage] 2018/09/30(日) 03:02:08.43 ID:ZYtSqOch getcomponentはインターフェイスもTに指定出来る http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/46
47: 名前は開発中のものです。 [] 2018/11/11(日) 09:10:47.35 ID:8o4S5YXl http://r2.upup.be/wV2qsULdHm http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/47
48: 名前は開発中のものです。 [] 2019/02/17(日) 09:48:35.12 ID:aTvJx0H4 Visual Studioで覚えたてのメソッドやコールバックは次々とツールボックスにD&Dで登録すると、次に使いたくなればそのツールパネルからD&Dすりゃ楽だしスペルミスもしない。 しかもエディットフィールドの横に常時ピン止めするとコード書く時間も短縮する。 https://i.imgur.com/PJMI7ZI.jpg http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/48
49: 名前は開発中のものです。 [] 2019/02/17(日) 10:29:36.15 ID:aTvJx0H4 メソッドやクラスプロパティなんか普通に書いてたら意味はわかる(読むことは出来る)。 けど、どんな引数(パラメータ)が必要で戻り値はvoid(無し)だったっけ?triggerだっけTrrigerだっけスペル間違っていてなぜかIntelisense(入力補間機能)でも使いたい物がでないよ。 みたいな人には必要だと思うよ。 Visual Studio2017のBuilt inで入ってる付属ツールだけでできる、拡張機能探しダウンロードしてインストールとかしなくても出来ることだし。 http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/49
50: 名前は開発中のものです。 [sage] 2019/02/18(月) 12:59:35.72 ID:S//uxG55 ああすまん まあそういうのをスニペット snippetと言って流行って来てるけど。 ツールボックスはプロジェクト変えたりあれこれしたらすぐデータ飛ぶらしいんだ。 MSはそれに対処する気がないらしいし。 ツールボックスじゃなくべつのスニペットツール開発してるし。 ここみて各自適当に適当なツール使ってね。 https://qiita.com/crasae/items/a5fcbb52ceaf89d3af33 シェアウェアでなら、Visual AsistantのVA Snippetが素晴らしいよね。 30days Trialあるから使ってみては http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/50
51: 弟子 ◆rZPPjYuxmQ [sage] 2019/11/23(土) 11:24:49.09 ID:l0P9p1Sz 久しぶりにミニ知 monobehaviorのstartやupdateについて こいつらってvirtiualじゃないからoverride出来ないけど 継承先にあればそれが起動、無ければ元のが起動するみたいね 確認は2019.2.6f1 恐らくawakeやfixedupdate関係もそうでしょう unity独自の仕様でこれは便利 http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/51
52: 弟子 ◆rZPPjYuxmQ [sage] 2019/11/23(土) 11:36:48.38 ID:l0P9p1Sz ついでにコライダーの確認方法について 1つのオブジェクトに複数のコライダーをアタッチした場合、それぞれをどう認識するか? 残念ながら個々を認識するためのコードは存在せずhashcodeで行けそうだけど、じゃそれがどのコライダー? となる 例、Gameojectにboxcolliderとcirclecolliderが付いてる場合、状況で片方をenableにしたい しかしどうやらこれはgetcomponentsで取得する場合にはinspectorの順番で取得できるうようである なのでその順番で管理できす感じ 何か個々を識別できると超いいんだけど・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/52
53: 弟子 ◆rZPPjYuxmQ [sage] 2019/11/26(火) 21:12:02.99 ID:/OFR0ZTD >>52 あった、GetContactsでぶつかったコライダーの情報取得できた http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/53
54: 弟子 [sage] 2019/12/01(日) 10:19:27.07 ID:AUfu0sBS >>51 両方動かす場合にはbase指定で http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/54
55: 名前は開発中のものです。 [sage] 2019/12/01(日) 15:12:31.14 ID:AUfu0sBS >>54 Baseを使う場合にはprotectedかvirtualにしておく必要はあるぽい http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/55
56: 弟子 ◆rZPPjYuxmQ [sage] 2020/01/08(水) 10:28:11.27 ID:7cplqCOI vector2.Angleの使い方、これは2点の線の角度を返すが、これは原点からこの2点を結んだ角度になる そこで、2点の角度を出したい場合には次の様にする Vector2 v =StrPos; Vector2 v2 = EndPos - v; Vector2 v3 = Vector2.zero; v3.x = v2.x; Vector2.Angle(v2, v3); つまりスタート地点を原点に持って行き、本来無い3点目を置くことで目的の角度を取得 http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/56
57: 弟子 [] 2020/01/26(日) 16:53:23.80 ID:ckFKG1Im 複数キー押しっぱ入力を複数のシーンに展開しても入力を取りたい 公式の見解によるとシーンをシングル遷移すると入力がリセットされる しかし現時点で何故か複数キーを押下してても何故か最後の入力だけ引き摺る状態てありこれはバグとの事 そこでリセットさせずに入力を継続させるには、ダミーシーンを全体に置いて、この中でシーンのロード、あんろーどを行うと、ダミーシーンはずっと存在した形になるので入力を継続できる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/57
58: 弟子 [] 2020/02/27(木) 11:07:01.84 ID:fVMfcjq3 アニメーションクリップの黄色い文字の修正には 【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張 http://tsubakit1.hateblo.jp/entry/2016/01/26/015331#%E5%B0%8E%E5%85%A5%E3%81%A8%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89 これが正解 他のは値がクリアされたりする http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/58
59: 弟子 [] 2020/03/20(金) 10:14:48.41 ID:oIj78xAx マテリアルの変更 rendere.sharedMaterials = materials; これでマテリアルセットすべて変更可能 rendere.sharedMaterials[0] = materials[0]; rendere.sharedMaterials[1] = materials[1]; これだと1が変更されない、そこで rendere.sharedMaterial = material で0が変更される マテリアルについては動きが謎だな http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/59
60: 弟子 [] 2020/04/28(火) 17:53:44.16 ID:2pVOTjQO 特定のAudioClipが再生中かどうか判定する if(audioSource.isPlaying) GUILayout.TextField(" play Now :" + audioSource.clip.name); else GUILayout.TextField(" pause!! "); AudioSourceにはisPlayingがあり、これで再生中のClipを取得できる そこでその名前を比較すればどの音源が再生しているか分かる http://mevius.5ch.net/test/read.cgi/gamedev/1511784235/60
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s