製作途中で得たUnityのミニ知識を披露するスレ

1名前は開発中のものです。2017/11/27(月) 21:03:55.76ID:wuqv6ZUu
いる?

2ダーク王鍬大使 ◆SoVpkB15jY 2017/11/27(月) 21:11:53.61ID:gE0i3iwj
面白そうなスレなのに>>1がいるかどうか聞いてどうするんでふか(^^

3名前は開発中のものです。2017/11/27(月) 21:51:43.61ID:gWEvxznl
>>1 が作ったゲームは

スタート直後に「えっ、プレイするの?」と聞いてくる斬新な作品

4名前は開発中のものです。2017/11/27(月) 22:56:06.49ID:BXHzNkxU
すまん、>>1だが最初に書き込んだのがキムチ兼ボッキング兼クソコテ兼アセットおじさんの一人四役やってる真性ガイジだったからやっぱこのスレやめとくわ
少し語ろうと思ってたけど萎えたから落としてくれ
そんじゃ

5ダーク王鍬大使 ◆SoVpkB15jY 2017/11/27(月) 22:59:17.40ID:gE0i3iwj
なんだ、自分以外の人がすべて同一人物に見える人でひたか(^^
クソスレ立ててないでいつも通り質問スレで妄想撒き散らしてくらふぁい(^^
ボッキング!(^^

6名前は開発中のものです。2017/11/28(火) 00:56:20.60ID:77OiR+vL
いやこのスレは良スレ!
きっと伸びるで!

7名前は開発中のものです。2017/11/28(火) 11:39:05.60ID:Vo+Z9BnS
もうこの板いらなくね?
実際にゲーム作ってる奴は忙しくてこんなゴミ板見てる訳ないし
ゲーム完成させた経験もなく、本だけ読んでプログラマー気取りの馬鹿だけだろ。俺含めて(´・ω・`)

8ダーク王鍬大使 ◆SoVpkB15jY 2017/11/28(火) 12:01:10.60ID:stYgvc9B
そもそも5ch自体暇なおじさんの巣窟でふよ(^^

9名前は開発中のものです。2017/11/28(火) 12:38:33.87ID:eFZ/NBli
ここまでミニ知識なし

10名前は開発中のものです。2017/11/28(火) 17:26:58.77ID:CSnPzGiM
ミニ知識
アセットを買いなさい

11名前は開発中のものです。2017/11/28(火) 20:38:37.83ID:gu2kTZ6X
>>7
プログラマを気取るって悲しすぎだろ
底辺職扱いされてるのに…
俺はゲームを完成させたことがなくてもちゃんとプログラマだぞ

12名前は開発中のものです。2017/11/28(火) 21:10:03.17ID:LnRpYEyH
完成させたことがないから底辺なんだよ
一緒にするな

13名前は開発中のものです。2017/12/31(日) 18:38:23.80ID:/rN76OKL
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

4437JPVDON

14名前は開発中のものです。2018/02/01(木) 18:41:42.82ID:9oNu6TrF
別スレで製作してて知識得たので書いてみる

えっと、画面の大きさはカメラで取れたよ

15名前は開発中のものです。2018/02/03(土) 20:16:26.79ID:HNzQ9i5w
プレハブってのがようわからんけど
なんか使うと簡単にコピー作れるぽいんだけど
どうよ

16名前は開発中のものです。2018/02/03(土) 21:54:13.01ID:pq/dGYDF
どうだろう

17名前は開発中のものです。2018/02/05(月) 06:04:55.48ID:gZIcooAm
うん、プレハブさんの修正がちょっとメンドイかったね
ところでOnGUIってイベントは普通に使ってもいいのかな?
これ内部のオブジェクト破棄してくれてるみたいで、公式に載ってるサンプルだと
綺麗に点滅しますね
ttps://docs.unity3d.com/ja/current/Manual/gui-Basics.html

18名前は開発中のものです。2018/02/05(月) 19:14:05.75ID:gZIcooAm
UIってCanvasのレンダーモード変えてもOnBcomeInvisibleとか反応しないのですね
じゃって事でUIのテキストのサイズ取得だとおもったけどこれがなかなか
色々やってsizeDelta.xがwidthって事が判明
これtransformじゃなくて、recttransform が保持してやがる超メンドイ

19名前は開発中のものです。2018/02/07(水) 12:35:01.29ID:tguyUo/d
Uのパネルでフェードイン、フェードアウトのアニメ作るの楽!
超簡単にできた

20名前は開発中のものです。2018/02/17(土) 07:41:46.03ID:G/oBdhuK
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

21名前は開発中のものです。2018/02/17(土) 23:56:24.91ID:7Z6V0GTQ
今日知った事!
gameobject.findはActiveじゃないのは取れないけど
transeform.findなら取れるって事

22名前は開発中のものです。2018/02/18(日) 19:16:51.55ID:z5KicuOd
今日理解した事!

2dステージでTextMeshを全面に出す方法!
これはOffsetZにマイナス入れればOK

というのもTextMeshは3D空間用なのでげす
通常に配置した場合、スプライトと同じZ座標になってしかもオブジェクトに貼っても
そのLayerとかは意味が無い

なのでこれ自身のZ値をいじればあら不思議!すんなり全面に出てきたわwwww

23名前は開発中のものです。2018/02/18(日) 19:47:03.99ID:z5KicuOd
ちなみに2dで使う場合、サイズは
キャラサイズ0・2
ふぉんと100位できれいになる

24名前は開発中のものです。2018/02/19(月) 15:07:22.43ID:LZNQfRtm
2dゲ作成しても3dオブは使えるが注意、実行はあくまで平面になるのでコリジョン判定するには2d用を使用しないとならない

25名前は開発中のものです。2018/02/19(月) 15:10:05.97ID:LZNQfRtm
例えばcubeにboxColder2dァタッチする、cubeを回転させてもちゃんとコライダも変形する

26名前は開発中のものです。2018/02/24(土) 12:47:13.69ID:OtNjy344
親オブジェクトにメッセージ送りたい時の方法
なんかggったらめんどくさそうだったけど、簡単に出来た
transform.parent.SendMessage("OnCollisionEnter2D",collision);

これ子供のOnCollisionEnter2Dに書くと、親のOnCollisionEnter2Dを起動できる

27名前は開発中のものです。2018/02/28(水) 23:55:49.66ID:kbujvcd2
空のGameoject作成、そこに何か(SpriteでもCubeでも)をアタッチ
さてこれを回転とか移動するアニメを考える
アニメを親オブに設定すると、position挙動するアニメはちゃんと動かない
なので子に設定する、
子はLocal座標なのでちゃんと意図したように挙動する。
ちょっと悩んだ><

28名前は開発中のものです。2018/03/01(木) 15:40:00.67ID:v/pfxDRf
製作途中のを実行してみたら、あらUIの場所がおかしい
ってことで実行環境に左右されずにUIの位置を固定するには
「unity ugui 画面サイズ」でggったらCanvas Scalarが関係するらしいまでは分かった
でもドヤっているそれぞれのHPでは結局解決しない
そこでttps://docs.unity3d.com/ja/540/Manual/HOWTO-UIMultiResolution.html
公式の説明を見ると、ピボットが関係しているらしい
うんこれで、どんな解像度になってもちゃんと表示された!
HPで解説している人たちはちゃんと自分でやってるのだろうか…

29名前は開発中のものです。2018/03/01(木) 15:41:25.76ID:v/pfxDRf
↑ピボットではなくアンカーだった><

30名前は開発中のものです。2018/03/01(木) 22:02:31.71ID: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);

31名前は開発中のものです。2018/03/01(木) 22:02:31.85ID: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);

32名前は開発中のものです。2018/03/02(金) 14:23:56.52ID:AY5Adz5C
>>31
これ同じスクリプトが複数ある場合の生成では、全部同じ値になるので
どのスクリプトかを指定しないと無理で、且つその場合staticな変数名を指定できない?

そこで スクリプトクラス名 ref = Obj.GetComponent<スクリプトクラス名>();
で指定し、ref.関数名();でパラ持って行く方法かな

33名前は開発中のものです。2018/03/19(月) 19:32:42.84ID:GhdjDhgu
GameObjectクラスはObjectクラスを継承しているクラス

34名前は開発中のものです。2018/03/22(木) 20:29:19.94ID:kc6hqrdR
テキストデータ読み込みで注意!
メモ帳で漢字まじりでデータ作成下場合、保存でゆにこおどかゆてぃえふにしないと、りそぉすろぉどしてもちゃんと読み込めん!
いや読み込み事態は成功するからやっかいなんだ!

35名前は開発中のものです。2018/03/23(金) 16:35:57.22ID: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; と一緒かな

36名前は開発中のものです。2018/03/28(水) 04:30:40.73ID:HPBo1FRD
やヴぁう
Toggleの設定がよくわからいい

ちょっと明日、ってか今日か確認して結果上げる

37名前は開発中のものです。2018/03/28(水) 13:04:45.22ID:tgPjGqdr
了解しました。

38名前は開発中のものです。2018/03/28(水) 13:22:23.73ID:HPBo1FRD
うん、検証してみたけど、
cb.normalColor はボタン押した一回しか変更されず、そのあとトグル押すとwhiteになるが、highlightedColorはそのままですね
とおもったら、なんかフォーカスが移った時にはnormalColorなのか、うん分かりにくい

分かりにくいと言えば、このチェックマーク自体が・・・

ttps://i.gyazo.com/a6bdc3801eb73b31bc9ab48a82eafb6d.png

なんか色々やってたら、替えれたわ
ttps://i.gyazo.com/58cfaa990840f929a72c1358c252941a.png

39名前は開発中のものです。2018/03/28(水) 19:06:31.01ID:HPBo1FRD
ついでに、UIでマウスイベントの取得方法

UIでOnMouseEnterとかのマウスイベント取得する場合、取得したいUIにコライダーをアタッチする(コライダーの領域を調整する)
CanvasはRenderModeをScreenSpace-Cameraにする

これでUI上でOnMouseXXX系の処理が可能

40名前は開発中のものです。2018/04/16(月) 12:18:11.83ID: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イベントが使える

41名前は開発中のものです。2018/04/19(木) 22:32:22.34ID:DX/Z9/AJ
ちょっとしたミニ知識、というまでもないかな
staticを使いたいけど、publicでインスペクタで指定したい場合これにstaticは付けられない
そんな時は
1. public Text txtMain;
2. static private Text stxtMain;

こんな感じで1をインスペクタで指定する
んで
private void Awake()
{
stxtMain = txtMain;
}
こんな感じで参照してすれば、どちらも使用可能で同じオブジェクトを使える

42名前は開発中のものです。2018/04/22(日) 12:08:44.69ID: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

43名前は開発中のものです。2018/04/22(日) 12:13:06.43ID: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 に対して色々と命令が出せる

44名前は開発中のものです。2018/05/03(木) 14:27:48.38ID: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のみになる

45名前は開発中のものです。2018/09/16(日) 15:15:08.03ID:LNRMkHTN
>>32
Unityのバージョンによって、変数名refが使用できませんでしたのでご注意ください

46名前は開発中のものです。2018/09/30(日) 03:02:08.43ID:ZYtSqOch
getcomponentはインターフェイスもTに指定出来る

47名前は開発中のものです。2018/11/11(日) 09:10:47.35ID:8o4S5YXl

新着レスの表示
レスを投稿する