01 «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.» 03

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

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

 

【ハルシオンブログ】なんかスクリプト開くとMonoDevelopが一緒に開くんですが? 

こんにちは。
大坂です。

うーん。今週もネタがありませんね…orz

あ―そういえば最近?Unityからスクリプトを直接開いたときに
VisualStudioの起動が妙に遅いなーと思ったらなぜか一緒にMonoDevelopも一緒に開くようになってました…



なんでやねん!と思いながらもしばらく無視してましたが…

Unity起動したら[Asset]-[Open C# Project]をやったら起動がそこそこ早くて、
MonoDevelopも立ち上がらなかったです。



PC再起動してスクリプトをダブルクリックで開くとまたどっちも起動するんですけどね。
なんなんですかねこれは…。

うーん。他の解決策も特に見つからなかったので、しばらくはUnity起動したら[Open C# Project]かなぁ…?
誰かいい方法を知ってませんかね??

ということでネタにもなりませんが今週もこれで終わりですよ。
またノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】いたって簡単!UnityのuGUIのオブジェクトをドラッグアンドドロップする方法。 

こんにちは!坂内です!

日曜に遅くまで飲むのは愚の骨頂ですね!
頭痛い・・・
まぁ来週も日曜日また飲みなんですが。

さて、ちょうど1年前くらいにドラッグアンドドロップの話を書きました。

【まだ口痛いっす。とりあえずuGUIでドラッグアンドドロップのやり方 その1 】

これとはまた違う、ちょー簡単なD&Dの方法を紹介。

まずは、こんな感じで背景(黒のImage)を用意し、動かすオブジェクトとして、ただの白い四角を用意します。


こんな感じのスクリプトも用意します。
【DragAndDrop.cs】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DragAndDrop : MonoBehaviour {

public GameObject dragObj;
bool inDragFlg;
Vector2 cursolPosition;

/// <summary>
/// オブジェクトPointDown
/// </summary>
public void StartDrag() {
inDragFlg = true;
}

/// <summary>
/// オブジェクトPointUp
/// </summary>
public void EndDrag() {
inDragFlg = false;
}

void Update () {
// ドラッグしている間だけオブジェクトを移動
if(inDragFlg) {
cursolPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
dragObj.transform.position = cursolPosition;
}
}
}


このスクリプトはCanvasなんかにつけておきます。



動かすオブジェクトをアサインしておきます。

動かすオブジェクト「dragObj」にはEventTriggerをセットし、PointerDown(オブジェクトを押したとき)とPointerUp(オブジェクトを離したとき)のアクションにそれぞれDragAndDrop.csのStartDrag()とEndDrag()を指定してあげます。



以上!!


これだけで、ドラッグアンドドロップ完成です!





ということで、本日は簡単なドラッグアンドドロップでした!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】ランダムで重複しない数値がほしい時って。 

こんにちは。
大坂です。

本格的にネタがありませんorz
ということでたまにやってることでも。

1-10の間でランダム値を重複しないで何個かほしいときなんかがあります。
いつもやってるのはいったんListに突っ込んでから取り出して、Listから消すような感じですね。
        List numList = new List();
for(int i = 1; i <= 10; i++) {
numList.Add(i);
}

while(numList.Count > 0) {
int ran = Random.Range(0, numList.Count);
int num = numList[ran];

Debug.Log(num);

numList.RemoveAt(ran);
}

てな感じで取れますよね。
一応結果。。



あと色々見てたらこんな記事がありました。

http://developer.wonderpla.net/entry/blog/engineer/Unity_RandomNumber/

Random関数はとりあえずUnityEngine.Randomを使っとけばいいらしいです。

UsingでSystemを追加してるとどっち使うのか聞かれることもあると思うので、そんなときの判断になりますかね?

これね。

ではでは、またですノシ

Category: 開発日記(Unity)

tb 0 : cm 2   

【ハルシオンブログ】簡単な時間計算と、こんな感じでログボもらえるかの処理書いてるよって話。 

はいこんにちは。坂内っす。

今日も簡単なネタを1つ。

時間の差分を簡単に出す方法です。

new System.DateTime(2018,5,20) - System.DateTime.Today

これだけ。

2018年5月20日まであと何日?(今日は2018年2月13日)

っていうのが取れます。

結果は 96


RPGを作ってると結構時間の計算出てくるんですよね。
魔法の効果があと何分かとか、ログインボーナスとか、色々。

ちなみにログインボーナスなんかは、こんな感じでやってます。

※サーバーでURL叩いたら現在時刻を返す処理を別途用意しています。

    private IEnumerator CheckLoginBonus() {
WWW www = new WWW(Constant.TIME_FROM_SERVER_URL);
yield return www;

// もし、何らかのエラーがあったらコルーチン終わり
if (!string.IsNullOrEmpty(www.error)) {
Destroy(gameObject);
yield break;
}

if (www.text == null || www.text.Trim() == "") {
// サーバの時間が取れなくてもコルーチン終わり
Destroy(gameObject);
yield break;
} else {
string serverTime = www.text;
serverDay = System.DateTime.Parse(serverTime);
// セーブされている最終ログインボーナス取得時間とぶつけるよ
if (gameData.lastLoginDate < serverDay) {
// ログボもらえるよ
ログボもらえる処理
gameData.lastLoginDate = serverDay;
} else {
// ログボ無しの場合はログボ画面すぐ消す
Destroy(gameObject);
yield break; // コルーチンを終了
}
}
}


こんなんでいいのか分からないけど、サーバの時間を見ています。
ネット繋がっていないとログボもらえないってのも、これでできますね。

ローカルの時間をみちゃうと、簡単にログボが連続で手に入っちゃうので。


まぁもっといい方法いくらでもありそうだけど。


ってことで、簡単ログインボーナスの取り方でした!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】SnapSettingなんてものを使ってみた。 

こんにちは。
大坂です。

ずっとmacOSの更新とかXcodeのバージョンアップをしていなかったので、今週バージョンアップしようと思ったら、
MacMiniが古すぎて macOS High Sierra が入れられない事実がorz
とりあえずビルドしてあげることはできますが、そのうち困りそうですね。。

さて、今週も小ネタ。
メニューのEditの一番下にあるSnapSettingですね。
Windowsだとオブジェクトの移動時にCtlrを押しながら動かすとスナップで動かせるようになるやつの設定です。
Macだとcmdですね。

デフォルトは1になっているので1ずつ動きますがSnapSettingをいじると設定した数字で動いてくれます。
設定画面はこんな。


今作ってるアプリはよく8の倍数で動かしてといわれるので便利になります。
注意点はCanvasの設定でSnapSettingの設定も変わります。
ScreenSpace - Orverlay の場合は
SnapSettingで指定した数値で動きます。
8を設定したら8ずつ動きますね。




ScreenSpace - camera でこんな設定をしている場合。
1を設定しても約85.4ずつ動きます。。




Yを854にして縦を基準にしているのでっていう感じなのでしょうか…。
8動くように計算するとSnapSettingを「0.09367」で設定してあげる感じでうまくいきました。
1/85.4しただけですね。
これで8ずつ動くようになりました。




では今週もこれにてノシ

Category: 開発日記(Unity)

tb 0 : cm 0