FC2ブログ
06 «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.» 08

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

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

 

【ハルシオンブログ】 DoTweenProを長年もっていたけど、Proの機能使ったことがなかった!何ができるかちょっと調べてみたよ!  

こんにちは。坂内っす。

梅雨ですな。

朝から雨がしとしとと降り続いています。

そういえばDoTweenってProを入れているのに、普通にしか使っていなく、Proの良さを知らないままです。

一体DoTweenProには何があるのか少し調査。

【其ノ1:DoTween Pathコンポーネント】
オブジェクトにAddComponentをして、Inscpectorで設定することで、Tweenをすることができる。
つけた後に、SHIFT+CTRL+クリックで、好きなパスを作れる。



適当にこんなパスを作ってみる。



DoTweenPathでDurationやDelay、Ease、Loopなども設定できる。
Eventなんかもここで設定できるので、大体のことがInspectorで設定することができる感じ。

ただ、スタートのタイミングは別途呼ばないといけなそうなので、実行した直後から勝手に動くもの以外は、TweenOptionのAutoPlayを外しておかないといけないぽい。

コードから呼べば動かすこともできる感じですかね。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class Blog20200622 : MonoBehaviour
{
public DOTweenPath dtPath;

IEnumerator Start() {
yield return new WaitForSeconds(3f);
dtPath.DOPlay();
}
}


dtPathにはDoTweenPathがついているCubeをアサイン。



こんな感じで動かすことができました。


【其ノ2:DoTween Animationコンポーネント】
オブジェクトに対するアニメーションを設定できます。
設定できるアニメーションの種類はこんな感じ。



結構色々できますね。

この辺の値をいじいじすることで、お好きなアニメーションのTweenが作れちゃう。

もちろんそうなんだけど、うれしい機能としては、実行しなくても見れるところ。



こんな感じで、動きを確認できる!

これがProのいいところ!?


軽くみたところ、この2つがProだけの機能ですかね。

とても使いやすいけど、1つのオブジェクトに対して、複数のTweenをやるときはどうするんだろうか・・・・

結局コードでアニメーションをくみ上げて動かす感じになるのかな?

そうなると、結局Proいらないじゃないってなっちゃいますね・・・・

「ボタンを押したときにこういう感じでTweenさせたい」等の決まった動きだけならProだけで全然問題ないですが。
もちろんコードで書くわけではないので、デザイナーさんがいじり倒しやすいという利点もありますね。

ということで、DoTweenProのPro独自の機能についての紹介でした。

では、あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】LinqのFirstって条件指定できるんですね。 

こんにちは。
大坂です。

梅雨でジメジメしますね。
コロナもまだまだ気をつけないといけなさそうですが、蒸し暑い日が多いので、みなさま熱中症には気をつけてくださいませ。

さて今週もLinqの小ネタ。
Firstって最初の要素とってくるだけで何に使うんだろうと思っていましたが、条件に一致した最初の要素をとれるんですね。

こんな感じ。Lastもあるとわかりやすいのでついでに書ています。

public class Test : MonoBehaviour
{
public class Item {
public int itemType;
public int itemId;
public string itemName;

public Item(int type, int id, string name) {
itemType = type;
itemId = id;
itemName = name;
}
}

void Start()
{
// 最初と最後のItemTypeが「0」
List items = new List() { new Item(0, 1, "Test_1"), new Item(1, 2, "Test_2"), new Item(0, 3, "Test_3") };

// ItemTypeが「0」の最初の要素を取得
Item item_1 = items.First(x => x.itemType == 0);
Debug.Log($"First:{item_1.itemType}:{item_1.itemId}:{item_1.itemName}");

// ItemTypeが「0」の最後の要素を取得
Item item_2 = items.Last(x => x.itemType == 0);
Debug.Log($"Last:{item_2.itemType}:{item_2.itemId}:{item_2.itemName}");
}
}

結果。


使いどころがあるかどうかはまた微妙なところですが、紹介です。
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】3Dオブジェクトの色を変えたい!こんな感じで色かえれますよね。  

こんにちは坂内でっす。

東京でのコロナ感染者が47人超えましたね・・・・
また100人とか超えてちゃうのかなぁ・・・・
早く落ち着いてくれえええ


さて、Unityで3Dオブジェクトの色を変える方法。

[Blog20200516.cs]

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Blog20200615 : MonoBehaviour
{
public MeshRenderer objCubeMeshRenderer;

public Button btnChangeColor;

void Start()
{
btnChangeColor.onClick.AddListener(ChangeColor);
}

void ChangeColor() {
Color randomColor = new Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f);
Debug.Log(randomColor.r + ":" + randomColor.g + ":" + randomColor.b);
objCubeMeshRenderer.materials[0].color = randomColor;
}
}



こんな感じのコードを書いて、ボタンとCubeをアサインしておきます。



で、実行。



これでできました。

MeshRenderer.materials[0].color を変えることで、色を変えれます。

また、以下でも色を変えれますね。

objCubeMeshRenderer.material.color = randomColor;

どちらでも使えるようです。

Renderer.materials[0]とRenderer.materialが同じものをさしているのかな?

こんな感じでオブジェクトの色を変えれます!

では、あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】メソッドもラムダ式で書けたりするんですね。 

こんにちは。
大坂です。

なんかメソッドもラムダ式で書けるんですね。
C#6から使えたみたいです。

こんな感じ。

public class Item {
public int itemNo;
public string itemName;
}
// ラムダ式で書ける
public Item GetItem(int itemNo) => items.Find(x => x.itemNo == itemNo);


まぁこの辺の書き方は好み次第だと思いますが・・・。
一応こんな書き方もできるみたいですよという紹介でした。

ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unity+VSのデバッグをしてみた。 

こんにちは!坂内です。
皆様ご機嫌麗しゅう?
私奴は全然飲みに行けてなくて体調が悪くなりそうな、ならなそうな感じです。
早くコロナ落ち着いて飲みに外行けるようになってほしいですね。

さて、あんまりうちでは使っていないですが、Unity+VisualStudioで、簡単にデバッグする方法があるので、紹介します。

大体Debug.Log()ですましちゃうんですけどね・・・・


using UnityEngine;

public class Blog20200608 : MonoBehaviour {

int intAAA = 5;
int intBBB = 10;

void Start()
{
Debug.Log(intAAA);
Debug.Log(intBBB);

int calc = intAAA + intBBB;
Debug.Log(calc);
}
}



こうしちゃえば中身全部見れるんだけど、デバッグモードで確認する方法はこんな感じ。

①ブレークポイントを設定する。
 コード上で止めたい行でF9を押すことで、ブレークポイントを設定できます。
 ブレークポイントの行は赤いラインが付きます。
 

②デバッグモードを設定する。
 デバッグ>Unityデバッガーのアタッチを選択。
 
 
 対象のプロジェクトを選択し、OKを選択。
 
 
③ブレークポイントで値を確認。
 ②の状態でUnityの実行をすると、ブレークポイントで止まるので、値を確認することができます。
 
 
 F10を押すことで、次の行にステップが進む。
 これにより、先ほどブレークしていた行の intAAA + intBBBが計算され、calcに値がはいるので、calcの変数の値を確認できるようになります。
 ※ブレークポイントの行の処理はされないため、ステップが先ほどのブレークポイントのままだとcalcの値は確認できない
 
 
こんな感じでデバッグができます。

VBAやC#を触ってた時はよくこのデバッグを使っていましたが、最近は全然触ってなかったです・・・・


確か・・・・ブレークポイントで止まっている時に、変数の中身をいじることもできた気がしました。



こんな感じで、ブレークポイントで止まってるときに数値を弄って実行、ということも可能です。
数式の値を変えて様子見とか色々できますよね。

ということで、簡単にですが、Unity+VSのブレークポイントを使ったデバッグの方法でした。

あでゅ~ノシ
 

Category: 開発日記(Unity)

tb 0 : cm 0