FC2ブログ
07 «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.31.» 09

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

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

 

【ハルシオンブログ】Dotweenでテキストの数字をカウントアップ・ダウンさせる。 

こんにちは。
大坂です。

今年も早くも8月ですね。
早く感じるのもなんか微妙ですが暑いのも嫌なので夏が早く過ぎ去ってほしいです。

いつもながらネタはないので今日も適当な感じです。

タイトルの通りですがテキストの数字をカウントアップさせるのにDotweenを使ってやってみたってだけの話。

書き方はこれで。
    public Text text;

void Start () {
int nowNumber = 10;
int updateNumber = 1000;
// 指定したupdateNumberまでカウントアップ・カウントダウンする
DOTween.To(() => nowNumber, (n) => nowNumber = n, updateNumber, 1)
.OnUpdate(() => text.text = nowNumber.ToString("#,0"));
}



実行はこんな感じですね。


・・・これで終わりでごめんなさい!
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】最近またネタがないから、小ネタを2つ…1個は何回か書いたきがする! 

もう7月も終わりそうですね!
なんか今年はいつも以上に月の進みが早い気がします。坂内っす。

さて、本日はUnityでゲームを作る際のの小ネタでも書いていきますか。
あ、初心者さんのためのブログですので、中級者以上は見なくていいです。
え?元からみてない?ア、ハイ


●タップゲームや放置ゲームとかでオブジェクトをタップする際にちょっと工夫を
オブジェクトをタップした時に、何かアクションをさせようと、オブジェクトにボタンを付けたくなります。

ボタンとは。
タップ>離す

このアクションをされた時に、ボタンの押されたというイベントが発生します。

これだと、押した瞬間にアクションが起きない&スワイプでの回収等アクションが不可能という問題が起きてしまいます。
UIのボタンなどではボタンのままで良いかと思いますが、ゲームのアクション部分では次の方法を使うのがいいかもです。

【EventTrigger】



EventTriggerのPointerEnter。
これは、PC等のカーソルがある実機では「カーソルがオブジェクトに触れたら」という動作をするのですが、スマホ等の場合は「オブジェクトに指が触れたら」という動作をします。

そのため、オブジェクトを触れたした瞬間(スワイプで触れても)にアクションを実行できます。

コインをばらまいて、それをスワイプで回収。
それこそキノコをスワイプで回収。
色々とこれで作れますね!

あ、このネタ何回も書いた記憶がでてきたぞ・・・

●画面を揺らしてみよう!with Dotween

これは簡単ですね。

CameraをDotweenで揺らすだけ。

Camera.main.DOShakePosition(0.4f,1f);


DOShakePositionの1個目の引数が時間。
2個目の引数が揺れ幅。

Camera.mainの書き方は、Cameraの中でもTagに「MainCamera」が付いているもののみデフォルトで適用されてます。

やべえ、もうすぐに出てくるネタがない!

ってことで、今日はこの辺にしますが、何かリクエストあったらコメントくださいね!

ってことであでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unity2018にしてVS開いたらなんか怒られた 

こんにちは。
大坂です。

週末に台風が来そうですね。
土曜日出かける予定があるのでやめていただきたい。。

このまえUnity2018を入れたときの話。
適当にC#のコードを作って開いたら、プロジェクトにslnファイルができてなくてVS側で
slnファイルがないから読み込めないてきなポップアップが出てくる…。

うーんと思いながらUnityの方を見たら、
コンソールにこんなエラーも。最初のほうだけですが。。


ArgumentException: Value does not fall within the expected range.
SyntaxTree.VisualStudio.Unity.Bridge.CompilationUnit.LanguageOf


Unityの設定を見てもExternalScriptEditorはVS2017になってるしなぁと思いながら、
エラーをもとに色々調べて、VS更新したらええで的なのを見つけたので、
ここから最新版のVS取ってきて更新してあげたら直ったってだけの話です。
https://www.visualstudio.com/ru/vs/unity-tools/

なんか変なところでちょと嵌った感時だったのでメモです。
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】DoTweenのSequenceにOnCompleteつけてやりたいんだけど、うまくいかなかったんよ。結果できました! 

こんにちは!くっそ暑い日が続いてますね!
部屋から出たら死にそうになります。坂内です。

さて、本日はDoTweenの話。
DoTweenSequenceって皆さんお使いになられてますか?

簡単に連続してTweenができる優れもの。

例えば、こんな感じにImageを並べて



こんな感じにコードを書けば。

DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence();
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.Play();
}
}


こうなります。



DoTweenのTweenスタート時、Tween終了時に処理を加えることができます。

DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence()
.OnStart(() => {
StartProc();
});
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.Play();
}

void StartProc() {
Debug.Log("はじまり");
}

void EndProc() {
Debug.Log("終わり");
}
}


OnStartはちゃんと入るのですが、OnCompleteを書こうとすると、エラーになって書けない…
書き方がいけないのかな?


ここじゃない?
ここ?


ここも違う?どこ?

ここも違う!!

こうなったら先生がゴロゴロしているツイッターにきいてやれ!

で、先生がいうには。


なんだって!?ヽ(゚Д゚;)ノ!!

【DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence();
tileSeq.OnStart(() => StartProc());
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.OnComplete(() => EndProc());
tileSeq.Play();
}

void StartProc() {
Debug.Log("はじまり");
}

void EndProc() {
Debug.Log("終わり");
}
}


こんな書き方できるらしいっす。

さすが先生。

これで、シーケンス使ったDoTweenで、最初や最後に別関数を呼べますね!

それでは今日はこれくらいでお暇します。

あでゅ~ノシ

Category: 開発日記(Unity)

Tag: Unity  DoTween  Sequence  uGUI  ゲーム開発 
tb 0 : cm 0   

【ハルシオンブログ】uGUIのオブジェクトのフェードとかの話 

こんにちは。
大坂です。

今週も適当に...

オブジェクトのフェードとかやるときにDoTweenとかを使ってますが、他の方法も。
まぁ別に必要ないといえばないですが。

Unityでこんなのが用意されてますね。
CrossFadeAlpha
https://docs.unity3d.com/jp/current/ScriptReference/UI.Graphic.CrossFadeAlpha.html

まぁ書いてある通りの使い方ですね。
こんな感じで書くとフェードで透過していってくれます。
  public Image img;

void Start () {
img.CrossFadeAlpha(0, 1f, true);
}




リファレンスにも書いてありますが、CanvasRendereのアルファ値を変更していて、
Image自体のColorのアルファを変えているわけではないので少し注意が必要ですかね。
確かに実行後のImageのColorを見ても変わってませんね。


あとは、フェードで色を変えてくれる
CrossFadeColor
https://docs.unity3d.com/ja/current/ScriptReference/UI.Graphic.CrossFadeColor.html
もあります。
  public Image img;

void Start () {
img.CrossFadeColor(Color.gray, 1f, true, true);
}




使いどころがあるといいですね!
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0