05 «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.» 07

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

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

 

【Unity】Unity&Orthelloによる2Dゲーム作成⑤ 

はいはーい 月曜の坂内っす。

ちょっとしたOrthelloを使用した時のコツを。

普通のオブジェクトの場合、iTweenを使用することで簡単に透明度を変更できます。
透明度を1⇒0⇒1と繰り返すことで、オブジェクトの点滅を実装することができます。

cubeというオブジェクトを作成し、マテリアルを張ります。
透過が可能なShaderを指定します。
そして、以下のコード書くことでcubeオブジェクトの点滅が可能になります。
void Start(){
GameObject cube = GameObject.Find("cube");
iTween.ColorTo(cube,iTween.Hash("a",0,"looptype","pingpong","time",2f));
}

上記コードの説明をしますと、「cubeオブジェクトの色要素 a (アルファは透過度)を2秒かけて0にする。
0になったら今度は2秒かけて1にする(pingpongによって動作を繰り返す)」となります。

これで簡単に点滅が可能です。

しかし!BUT!!!
OrthelloSpriteは上記と同じことを行うとエラーがでてしまいます。
Material doesn't have a color property '_Color'
UnityEngine.Material:GetColor(String)
iTween:GenerateColorToTargets() (at Assets/iTween/Plugins/iTween.cs:3338)
iTween:GenerateTargets() (at Assets/iTween/Plugins/iTween.cs:3144)
iTween:TweenStart() (at Assets/iTween/Plugins/iTween.cs:4603)
c__Iterator7:MoveNext() (at Assets/iTween/Plugins/iTween.cs:6567)

ナゼカ?

エラーをみると、Colorプロパティが無いといわれます。
そう、OrthelloSpriteではShaderが「mobile/Particles/Alpha Blended」になるため、Colorプロパティが存在しないからです。

しかし、よく見るとOTSpriteの中に「Alpha」というプロパティが存在します。


これを0⇒1⇒0とすることで、点滅を実装することが可能です。

では、どのようにこれをいじるのか?

iTweenのメソッドには「ValueTo」というものが用意されています。
これは、値をaからbにするというもので、使い方は以下のように使います(たぶん)。
void Start(){
GameObject cube = GameObject.Find("cube");
iTween.ValueTo(gameObject,iTween.Hash("from",0,"to",1,
         "time",2f,"onupdate","ValueChange"));
}

void ValueChange(float value){
print (value);
}
0から1まで2秒かけて変わる。


となります。
これを踏まえて、以下のようにコードを書けば・・・・
using UnityEngine;
using System.Collections;

[ExecuteInEditMode]
public class Test : MonoBehaviour {

OTSprite cubeSprite;

void Start(){
cubeSprite = GameObject.Find("cube").GetComponent();
iTween.ValueTo(gameObject,iTween.Hash("from",0,"to",1,"time",2f,
"looptype","pingpong","onupdate","ValueChange"));
}

void ValueChange(float value){
cubeSprite.alpha = value;
}
}

こんな感じで、OrthelloのSpriteを点滅することができます。

以上!なにかのお役に立てたらこれ幸い。
スポンサーサイト

Category: 開発日記(Unity)

Thread: 日記

Janre: 日記

Tag: Android  Unity  Orthello  ゲーム  Sprite  iTween 
tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/36-6e81095b
この記事にトラックバックする(FC2ブログユーザー)