ぱふの自由帳

週3更新(火・木・日)を目指すUnityブログ。良ければフォローお願いします(`・ω・´)

【Unity】スクリプトからImageのSource ImageをNoneにする

やりたいこと

スクリプトからImageSource Imageを変更してNoneにしたい

こうする

以下のスクリプトで大丈夫。

Image i;
i.sprite = null;

Sprite RendererSpriteをNoneにする方法と同じですねー。

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】Sceneを複製する方法

はじめに

mac環境で解説しています。
windowsの方は記事内のcommandCtrlに読み替えてくださいね。

やりたいこと

Sceneを複製しようとしてcommand + cの後にcommand + vを押したけどUnityは何も反応してくれない...

Sceneの複製ってどうするんだ!?

こうする

複製したいSceneを選択状態にして、Edit > DuplicateでOK!

f:id:PafuOfDuck:20181119170044p:plain

豆知識?

上の画像でも見えていますが、command + dで複製できます!

command + cの後にcommand + vではなく、
command + dを使うと覚えましょう〜。

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【イベント】もちろんやります!unity1weekの投稿作品を全てプレイ!

---お知らせ!---

ゲームを作り、愛する方々!あのイベントが到来しました...!
「...なんのイベント?」ですって...?

Unityroomの1週間ゲームジャムですよ!


f:id:PafuOfDuck:20181118235833p:plain 「Unityroom?ナニソレ?」という方はコチラ
「1週間ゲームジャム?ナニソレ?」という方はコチラ




と、いうことで...

今回もモチロンやりますよ!!

f:id:PafuOfDuck:20180831173220p:plain

(前回イベントとのバナー広告が一緒なのは内緒です...笑)



---イベント内容---

私(ぱふ)心身を削りながらたったの1週間でイベント期間中に投稿された全てのゲーム(※1)の攻略挑戦するイベントです!

(※1)遅れて投稿されたゲームも放送期間内であれば含む

攻略の様子についてはYoutube上で生放送を行う予定です!



---開催期間---
11/26(Mon) ~ 12/2(Sun)

平日:20:00~24:00(予定)
土・日:10:00~24:00(予定)



---皆様にお願い!---

放送当日の放送開始前にYoutubeの放送URLをTwitterでお知らせします。
放送期間の間、お手数ですがTwitterのフォローをお願いします!

フォローはココをクリック



---さいごに---

「自分のゲームが実際にプレイされているのを見たい!」
「他の人のアイディアを見たいけどプレイが面倒!」
「視聴者同士で意見をぶつけ合いたい!」 etc...

という方は是非、放送にお越しください!
私もコメントが盛り上がっている方がモチベーションも数倍以上になります!!なので、コメントもしてくださいね!笑

それでは、放送当日にお会いしましょう!ノシ



---追記---

放送URLは確定ではありませんが以下のURLだと思います。
当日Tweetを見逃した際に利用してみてください。

https://www.youtube.com/watch?v=Sj0Piq4_4oY

タイトルが変なのは前回放送の名残です...多分。

【Unity】Color型をカラーコード(string型)に変換する

やりたいこと

Color color = new Color(1f, 0, 0); // 赤色
// これを "#FF0000" の文字列に変換したい!!

こうする

Color color = new Color(1f, 0, 0); // 赤色

string colorCode = ColorUtility.ToHtmlStringRGB(color);

Debug.Log(colorCode);
// FF0000

#が必要な方は#が付かないことに注意してください〜。

a値も欲しい...

透過情報であるa値も欲しい方はColorUtility.ToHtmlStringRGBではなくColorUtility.ToHtmlStringRGBAを使うようにしましょう!

上で例として出したColor color = new Color(1f, 0, 0);の場合だとFF0000FFが返ってきます。

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity2018】マルチシーンを使うと"Your multi-scene setup may be improved by tending to the following issues"というエラーが出た

はじめに

おはこんばんにちは。ぱふです。
先日、重い腰を上げてUnityを2018にアップデートしました!

すると、こんなエラー(警告)が...
Your multi-scene setup may be improved by tending to the following issues: Multiple scenes baked with Auto enabled can appear differently in Play mode when reloading them. Consider disabling Auto and rebaking.

放置しても動くんですが、なんか気持ち悪いので原因を調査...!
その結果解決したので、「誰かの役に立つかも?」と思い記事に直しておきます。

原因

調べてみるとLightingのエラーでした。
Lightingの設定をAuto Generateにしていると新しくシーンがロードされるたびにライトがベイクされるようで、「複数のシーンをロードすると、シーンごとに自動設定した光の当たり方と異なるかもしれないけど大丈夫か?」という警告のようです。

解決方法

Lightingの設定をAuto Generateから変更することで解決します。

シーンごとにGenerate Lightingしましょう。
これで警告文は綺麗さっぱり消えてくれます!

ちなみに....一部だけしかGenerate Lightingの設定をしないと
Your current multi-scene setup has inconsistent Lighting settings which may lead to different lighting when loading scenes individually or in a different order! Consider homogenizing the following: 1/2 scenes have Auto baking enabled.
というエラーが出ちゃうので注意してくださいね!

ん?2D?

「2Dってライトのベイクとか...あるっけ?」と思った方。
そうです。おそらく普通のゲームを作っている分には2Dでは影響はないと思います............多分!(自己責任で!笑)

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】実行中の関数名の表示方法をちょっとだけプログラマーっぽくする

やりたいこと

Debug用に関数が実行された時に関数名を表示したいけど...

void HogeHogeHoge(){
  Debug.Log("HogeHogeHoge");
  // 処理
}

void PiyoPiyoPiyo(){
  Debug.Log("PiyoPiyoPiyo");
  // 処理
}

と全ての関数にこんな感じで書くのはダサい!プログラマーっぽく書きたい!

こうする

using using System.Reflection; // 忘れずに!!

void HogeHogeHoge(){
  Debug.Log(MethodBase.GetCurrentMethod().Name);
  // 処理
}

void PiyoPiyoPiyo(){
  Debug.Log(MethodBase.GetCurrentMethod().Name);
  // 処理
}

ん?長くなってるじゃないかって?
...ま、まぁ、、タイプミスとか減るし良いよね?ね?ね?
(個人的にプログラマーっぽいし。笑)

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】Inspectorウィンドウをロックする

やりたいこと

Inspectorはオブジェクトを選択する度にコロコロ変わってしまうので、変わらないようにしたい。

例えば、以下のInspectorはMainManagersを選択した時です。 この状態でPlayerを選択してもInspectorが変わらないようにしたい。

f:id:PafuOfDuck:20181115194916p:plain

こうする

以下のアイコンをポチッと押しましょう!

f:id:PafuOfDuck:20181115200027p:plain

ちなみに、、、
解除はもう一度ポチッと押せばオーケーです!

豆知識?

他のウィンドウでもこのアイコンがあればロックできます〜。 どうやらTimelineでは必須級らしい...?

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】スクリプトからSprite RendererのSpriteをNoneにする

やりたいこと

スクリプトからSprite RendererSpriteを変更してNoneにしたい

こうする

以下のスクリプトで大丈夫。

SpriteRenderer sr;
sr.sprite = null;

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【Unity】コンポーネントをスクリプトから追加or削除する方法

やりたいこと

タイトルのように、
スクリプトからコンポーネントを追加or削除』したい!

こうする

-- 追加 --
gameObject.AddComponent<コンポーネント名>();
-- 削除 --
Destory(GetComponent<コンポーネント名>);

補足

コードの例は、コンポーネントの追加or削除を ”スクリプトがアタッチされたGameObject” に対して行う場合を想定しています。なので、他のGameObjectに対して操作を行う場合は書き換えましょう。

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!

【C#】エディタで「possible loss of fraction」の警告が出た時

possible loss of fractionの意味

取り敢えず、googleで翻訳してみましょう。

google『可能な分数の損失』

うーん...意味が分からない...。自分で訳すしかないですね。笑
......
......
『分数の損失が起こりうる』という意味かな。

原因

C#では割り算の際にint / intintになります。(切り捨て)
10 / 4という計算をすると2.25ではなく2になるわけです。

この計算をfloatdoubleの変数に代入したり、floatdoubleを引数に取る関数に渡したりすると、possible loss of fractionという警告が出るわけです。

解決方法

int / intの割り算を故意的に行っている場合は問題ないと思います。
故意的でない場合は(float) int / intのようにキャスト変換してあげれば問題ないと思います。

おわり

Twitterフォロー歓迎です...(`・ω・´) ヨロシク!