[過去ログ] 製作途中で得たUnityのミニ知識を披露するスレ (60レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
27: 名前は開発中のものです。 [sage] 2018/02/28(水) 23:55:49.66 ID:kbujvcd2(1) AAS
空のGameoject作成、そこに何か(SpriteでもCubeでも)をアタッチ
さてこれを回転とか移動するアニメを考える
アニメを親オブに設定すると、position挙動するアニメはちゃんと動かない
なので子に設定する、
子はLocal座標なのでちゃんと意図したように挙動する。
ちょっと悩んだ><
28: 名前は開発中のものです。 [sage] 2018/03/01(木) 15:40:00.67 ID:v/pfxDRf(1/4) AAS
製作途中のを実行してみたら、あらUIの場所がおかしい
ってことで実行環境に左右されずにUIの位置を固定するには
「unity ugui 画面サイズ」でggったらCanvas Scalarが関係するらしいまでは分かった
でもドヤっているそれぞれのHPでは結局解決しない
そこで外部リンク[html]:docs.unity3d.com
公式の説明を見ると、ピボットが関係しているらしい
うんこれで、どんな解像度になってもちゃんと表示された!
HPで解説している人たちはちゃんと自分でやってるのだろうか…
29: 名前は開発中のものです。 [sage] 2018/03/01(木) 15:41:25.76 ID:v/pfxDRf(2/4) AAS
↑ピボットではなくアンカーだった><
30: 名前は開発中のものです。 [sage] 2018/03/01(木) 22:02:31.71 ID:v/pfxDRf(3/4) AAS
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(1): 名前は開発中のものです。 [sage] 2018/03/01(木) 22:02:31.85 ID:v/pfxDRf(4/4) AAS
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(1): 名前は開発中のものです。 [sage] 2018/03/02(金) 14:23:56.52 ID:AY5Adz5C(1) AAS
>>31
これ同じスクリプトが複数ある場合の生成では、全部同じ値になるので
どのスクリプトかを指定しないと無理で、且つその場合staticな変数名を指定できない?
そこで スクリプトクラス名 ref = Obj.GetComponent<スクリプトクラス名>();
で指定し、ref.関数名();でパラ持って行く方法かな
33: 名前は開発中のものです。 [] 2018/03/19(月) 19:32:42.84 ID:GhdjDhgu(1) AAS
GameObjectクラスはObjectクラスを継承しているクラス
34: 名前は開発中のものです。 [sage] 2018/03/22(木) 20:29:19.94 ID:kc6hqrdR(1) AAS
テキストデータ読み込みで注意!
メモ帳で漢字まじりでデータ作成下場合、保存でゆにこおどかゆてぃえふにしないと、りそぉすろぉどしてもちゃんと読み込めん!
いや読み込み事態は成功するからやっかいなんだ!
35: 名前は開発中のものです。 [sage] 2018/03/23(金) 16:35:57.22 ID:vAC3q6AE(1) AAS
コルーチンの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.73 ID:HPBo1FRD(1/3) AAS
やヴぁう
Toggleの設定がよくわからいい
ちょっと明日、ってか今日か確認して結果上げる
37: 名前は開発中のものです。 [sage] 2018/03/28(水) 13:04:45.22 ID:tgPjGqdr(1) AAS
了解しました。
38: 名前は開発中のものです。 [sage] 2018/03/28(水) 13:22:23.73 ID:HPBo1FRD(2/3) AAS
うん、検証してみたけど、
cb.normalColor はボタン押した一回しか変更されず、そのあとトグル押すとwhiteになるが、highlightedColorはそのままですね
とおもったら、なんかフォーカスが移った時にはnormalColorなのか、うん分かりにくい
分かりにくいと言えば、このチェックマーク自体が・・・
画像リンク
なんか色々やってたら、替えれたわ
画像リンク
39: 名前は開発中のものです。 [sage] 2018/03/28(水) 19:06:31.01 ID:HPBo1FRD(3/3) AAS
ついでに、UIでマウスイベントの取得方法
UIでOnMouseEnterとかのマウスイベント取得する場合、取得したいUIにコライダーをアタッチする(コライダーの領域を調整する)
CanvasはRenderModeをScreenSpace-Cameraにする
これでUI上でOnMouseXXX系の処理が可能
40: 名前は開発中のものです。 [sage] 2018/04/16(月) 12:18:11.83 ID:HkgBqI4K(1) AAS
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: 名前は開発中のものです。 [sage] 2018/04/19(木) 22:32:22.34 ID:DX/Z9/AJ(1) AAS
ちょっとしたミニ知識、というまでもないかな
staticを使いたいけど、publicでインスペクタで指定したい場合これにstaticは付けられない
そんな時は
1. public Text txtMain;
2. static private Text stxtMain;
こんな感じで1をインスペクタで指定する
んで
private void Awake()
{
stxtMain = txtMain;
}
こんな感じで参照してすれば、どちらも使用可能で同じオブジェクトを使える
42: 名前は開発中のものです。 [sage] 2018/04/22(日) 12:08:44.69 ID:ixXXVG5k(1/2) AAS
■TimeLineでのスクリプトについての忘備録1
TimeLineでスクリプトを使うには、最低でも2つのスクリプトが必要
PlayableAssetとPlayableBehaviour
TimeLineエディタでPlayaleTrackをAddで追加する
このトラックにPlayableAssetを指定する
PlayableAsset内ではPlayableBehaviourを指定する、これでPlayableBehaviour内で停止時などの関数が利用できる
外部からプレイなどを制御するにはPlayableDirectorを指定して制御する
一番簡単なのは、Publicでインスペクタから指定するのがいい
尚、Trackに同じPlayableAssetを複数使う場合、どこがPlayしているか特定するにはHashCodeを利用すれば可能
PlayableAssetのGetPlayableCountでそれぞれの番号は取得可能だが、これを利用する手立てが…誰かわかれば教えて><
画像リンク
43: 名前は開発中のものです。 [sage] 2018/04/22(日) 12:13:06.43 ID:ixXXVG5k(2/2) AAS
■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: 名前は開発中のものです。 [sage] 2018/05/03(木) 14:27:48.38 ID:Sxk8HZSj(1) AAS
公式のシーン読み出しのサンプルやってみた
外部リンク[html]:docs.unity3d.com
シーンがロードされたとき、アンロードされたときが欲しかったのでこのサンプルが使える
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: 名前は開発中のものです。 [sage] 2018/09/16(日) 15:15:08.03 ID:LNRMkHTN(1) AAS
>>32
Unityのバージョンによって、変数名refが使用できませんでしたのでご注意ください
46: 名前は開発中のものです。 [sage] 2018/09/30(日) 03:02:08.43 ID:ZYtSqOch(1) AAS
getcomponentはインターフェイスもTに指定出来る
47: 名前は開発中のものです。 [] 2018/11/11(日) 09:10:47.35 ID:8o4S5YXl(1) AAS
画像リンク
48: 名前は開発中のものです。 [] 2019/02/17(日) 09:48:35.12 ID:aTvJx0H4(1/2) AAS
Visual Studioで覚えたてのメソッドやコールバックは次々とツールボックスにD&Dで登録すると、次に使いたくなればそのツールパネルからD&Dすりゃ楽だしスペルミスもしない。
しかもエディットフィールドの横に常時ピン止めするとコード書く時間も短縮する。
画像リンク
49: 名前は開発中のものです。 [] 2019/02/17(日) 10:29:36.15 ID:aTvJx0H4(2/2) AAS
メソッドやクラスプロパティなんか普通に書いてたら意味はわかる(読むことは出来る)。
けど、どんな引数(パラメータ)が必要で戻り値はvoid(無し)だったっけ?triggerだっけTrrigerだっけスペル間違っていてなぜかIntelisense(入力補間機能)でも使いたい物がでないよ。
みたいな人には必要だと思うよ。
Visual Studio2017のBuilt inで入ってる付属ツールだけでできる、拡張機能探しダウンロードしてインストールとかしなくても出来ることだし。
50: 名前は開発中のものです。 [sage] 2019/02/18(月) 12:59:35.72 ID:S//uxG55(1) AAS
ああすまん
まあそういうのをスニペット snippetと言って流行って来てるけど。
ツールボックスはプロジェクト変えたりあれこれしたらすぐデータ飛ぶらしいんだ。
MSはそれに対処する気がないらしいし。
ツールボックスじゃなくべつのスニペットツール開発してるし。
ここみて各自適当に適当なツール使ってね。
外部リンク:qiita.com
シェアウェアでなら、Visual AsistantのVA Snippetが素晴らしいよね。
30days Trialあるから使ってみては
51(1): 弟子 ◆rZPPjYuxmQ [sage] 2019/11/23(土) 11:24:49.09 ID:l0P9p1Sz(1/2) AAS
久しぶりにミニ知
monobehaviorのstartやupdateについて
こいつらってvirtiualじゃないからoverride出来ないけど
継承先にあればそれが起動、無ければ元のが起動するみたいね
確認は2019.2.6f1
恐らくawakeやfixedupdate関係もそうでしょう
unity独自の仕様でこれは便利
上下前次1-新書関写板覧索設栞歴
あと 9 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s