10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】週単位で何かしたいときに現在週の月曜日がほしかったよ。 

こんにちは。
大坂です。

風邪をひいて治りそうなときにまた出かけて悪化するのを繰り返してます…orz
しばらくおとなしくしていた方がよさそうです。。

そして何もネタがなかったので超短いです。

タイトルの通りですが、週単位にミッションとか作り直すときに現在日の週の月曜日がほしかったので取得方法。
といっても簡単なんですけど…。

// 現在日付
System.DateTime now = System.DateTime.Now;
// 月曜(1)から現在日付の曜日の差分を出す
int diff = System.DayOfWeek.Monday - nowDate.DayOfWeek;
// 差分が+だったときの対策(今回の場合は日曜日)
if(diff > 0) {
diff -= 7;
}
// 現在日付に差分を足す(差分はマイナスになるから結果的に引く)
System.DateTime monday = nowDate.AddDays(diff);

こんな感じで月曜日の日付を取得できますね。
あとはこれを保存しておいて比べるときにAddDays(7)とかして翌週の月曜日の日付として比べてあげれば、
何となくやりたいことはできる気がしました!

ということで適当ですが終わりです!
ではまたノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】シーンの保存を忘れたままGitにプッシュすることが多いので、Editorでゲームを再生時に保存されるようにしてみたよ。 

こんにちは。
大坂です。

風邪をもらって、順調に悪化しています…。
皆さんも体調にはお気を付けを…。

タイトルの通りですが、どうにもシーン保存しないでGitにあげることが多いです…。
よくわからないプレハブとか置きっぱなしになってたり…。

ということで変更したら再生はするのでその時にシーンとかを保存してやればいいということで試してみた。

コード。EditorスクリプトなのでAssets-Editorの下に入れる感じ。
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;

[InitializeOnLoad]
public class SaveSample {

static SaveSample() {
// イベントの登録
EditorApplication.playmodeStateChanged += OnPlayingStateChanged;
}

public static void OnPlayingStateChanged() {
// プレイ中ではなく、エディターが現在再生モードか、再生モードに切り替えようとしている場合
if(!EditorApplication.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode) {
// アクティブなシーンを保存
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
// アセットの保存
AssetDatabase.SaveAssets();
}
}
}

再生したときに無事にシーンとアセットが保存されました。
これで保存の忘れも多分なくなるので安心ですね!

ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unityで宴を使ったとき、uGUIのオブジェクトが表にあってタップで文字送りができないよーうorz の解決法? 

こんつわ。坂内っす。

今週末ついにデジゲー博ですね!
出展のみなさん頑張って!

さて、Unityでゲームを作っていて、会話シーンなどに宴を使う場合、こんなことが起きたりします。



え?何が起きてるかって?

どこを押しても文字送りができなんです。

どういう状態かというと、uGUIで白い板(background)を置き、宴のシナリオを呼んだけです。



タップしての文字送りの判定がManageres>Cameras>ClearCameraあたりにあるぽい(?)ので、このカメラを白い板の置かれているCanvasより表に置かないといけないらしいっす。

ってことで、以下の変更をするとうまくいきますよ。

①ClearCameraのClearFlagsを「SolidColor」⇒「DepthOnly」へ変更。
②ClearCameraのDepthを「-10」⇒「白い板のCameraのDepthより大きい数値」へ変更。
③ClearCamera>Canvas-BackGround>ImageのColorの透明度を「255」⇒「0」へ変更。

ってことをすると、以下のようになります。



また、キャラを宴で表示すると、Manageres>Cameras>SpriteCamera>SpriteCameraの子供として絵が表示されるので、このCameraのDepthも変更しないと、白い板の裏にキャラが表示されたりします。

この辺もっと簡単にできたりするんですかね?

あんまり宴の説明書読んでないので、やり方あるのかもしれませんが…

ってことで、この辺をいじって素敵な宴ライフを!!

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Text作った時のデフォルトフォントを変えたいとき 

こんにちは。
大坂です。

明日は文化の日らしいですよ。
何やら今日予定を入れてくる人がいると思ったら明日休みらしいです。

さて、今日のネタですが、Textのオブジェクトを作った時に毎回フォントの設定変えるのが面倒になってくるのでそんなときの対策。
普通に作るテキストのデフォルトはどうやって変えられるのかわからなかったので、カスタムしたやつをメニューに追加する方針。

コードはこんな感じ。「Assets/Editor」の下に入れる。
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

public class CustomText : MonoBehaviour {

// 右クリックメニューのUIの中に追加
[UnityEditor.MenuItem("GameObject/UI/CustomText")]
public static void CreateCustomizedText() {
// オブジェクトの作成
GameObject textObj = new GameObject("Text", typeof(Text));
textObj.transform.localPosition = Vector3.zero;
textObj.transform.localScale = Vector3.one;

Text text = textObj.GetComponent<Text>();

// Asset/Fontの下にあるフォントを検索(違うフォルダに入れている場合は変更)
string[] fonts = AssetDatabase.FindAssets("t:Font", new string[] { "Assets/Font" });

if(fonts != null && fonts.Length > 0) {
// フォントの設定
Font font = AssetDatabase.LoadAssetAtPath<Font>(AssetDatabase.GUIDToAssetPath(fonts[0]));
text.font = font;
} else {
// なければArialを設定しておく
text.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font;
}
// テキストの初期値
text.text = "New Text";
// テキストの色
text.color = Color.black;

// 右クリックしたオブジェクトを親にする
if(Selection.activeGameObject) {
GameObject parentObj = Selection.activeGameObject;
textObj.transform.SetParent(parentObj.transform, false);
textObj.layer = parentObj.layer;
textObj.isStatic = parentObj.isStatic;
}
}
}

Assets/Fontフォルダを作成して設定したいフォントを入れる。


これでHierarchyでの右クリックメニューのUIの中に「CustomText」が追加されます。


これで作ってあげるとちゃんとAssets/Fontの中に入れた「Font」が設定されてますね。


と、こんな感じで対応できるみたいなので、何かのお役に立てばいいですね!

ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unity2017(.1~.2系)InputFieldで日本語が使えないんだけど?って時の対応方法。Unityさん早く直して! 

こんにちは坂内っす。
もう来週末デジゲーですね!
ブースだす皆さんは追い込まれてる感じですかね!
頑張ってくださいませ!

先日土曜日に「Indie Games Festival 2018 - キックオフイベント」がありました。
凄い行きたかった!
残念ながらいけませんでした orz
ポケガ1に以下の対応してたらいけませんでしたよ…


ってことで、Unityの話。

Unity2017.1.1のInputFieldで日本語が使えないって話。

あんまりInputFieldって使わないからあれですよね…

キャラの名前つけたり色々とInputFieldは使われます。
ただ、現在のUnity最新バージョン(2017.2)やUnity2017.1系などで、「InputFieldで日本語が使えないバグ」がある模様。

これの対応方法はこちら。
Qiitaに乗ってました。
[Unity 2017.x+InputField+Androidで日本語入力ができない問題への対策]
https://qiita.com/Gok/items/35329c717203e86774f0

URLのInputFieldButton.csを作成し、以下のようにInputFieldの子供にこのInputFieldButton.csを付けたオブジェクトを作成してあげる感じです。
Button継承なのでImageが必要そう。
その際Imageの透過を100%にしてあげないとInputFieldが見えなくなってしまいます。





とりあえずこれで応急措置はできそうですが、Unityさんここ早く直してください!!

ってことであでゅ~ノシ


Category: 開発日記(Unity)

tb 0 : cm 0