ゲームの演出で利用できるスプリクト

 

 

敵が画面内に映ってから動き出す

 

このスプリクトは敵に付ける。

 

public class Directing : MonoBehaviour
{
private Rigidbody2D rb = null;
private SpriteRenderer sr = null; //オブジェクトの表示

 

void Stert()
{
  sr = GetComponent<SpriteRenderer>(); //SpriteRendereを取得
  rb = GetComponent<Rigidbody2D>(); //Rigidbody2Dを取得
}

 

void Update()
{
  if (sr.isVisible) //〇〇Renderer.isVisibleは、画面内に表示されるとtureを返す
  {
    //Rigidbody2Dで動かす(敵を作るを参照)
  }
  else
  {
    rb.Sleep(); //オブジェクトを画面に映っていない時は一時的に物理演算から外す。
  }
}

 

オブジェクトを点滅させる

 

public class Player : MonoBehaviour
{
  private float interval = 0.1f;
  sr = GetComponent<SpriteRenderer>( );

 

  void Update( )
  {
    if (条件)
    {
      StartCoroutine("Blink"); //オブジェクトの点滅関数を実行
    }
  }

 

  IEnumerator Blink() //オブジェクトの点滅関数
  {
    while (true) //while (条件)条件を満たす限りループする。trueにすると無限ループになる。
    {
      if (条件) break; //無限ループはbreakで抜ける。
      sr.enabled = !sr.enabled; //レンダラーの有効・無効
      yield return new WaitForSeconds(interval); //interval時間で終了
    }
  }
}

 

オブジェクトの色を変える

 

public class Player : MonoBehaviour
{
  sr = GetComponent<SpriteRenderer>( );  //スプライトレンダラーを取得

 

  void Update( )
  {
    PColor( ); //関数名PColor
  }

 

  public void PColor()
  {
    Color color = sr.material.color;
    color.r = 1.0f; //レッドを0~1で指定
    color.g = 0.1f; //グリーンを0~1で指定
    color.b = 1.0f; //バイオレットを0~1で指定
    color.a = 1.0f; //透明度を0~1で指定

 

    sr.material.color = color;
  }
}

 

オブジェクトが一瞬色が変わる

 

public class Player : MonoBehaviour
{
  private float colorTime = 0.0f; //色が変わっている時間
  sr = GetComponent<SpriteRenderer>();

 

  private void Update()
  {
    if (GManager.instance.pdamage) //ダメージを受けた(ダメージを管理)
    {
      //ダメージ時の演出
      if(colorTime > 0.08f) //0.08秒経ったら色を戻す
      {
        Color color = sr.material.color;
        color.r = 1.0f;
        color.g = 1.0f;
        color.b = 1.0f;
        color.a = 1.0f;

 

        sr.material.color = color;
        GManager.instance.pdamage = false; //ダメージクリア
        colorTime = 0.0f; //時間をリセットする
      }
      else //色を変える
      {
        Color color = sr.material.color;
        color.r = 1.0f;
        color.g = 0.7f; 
        color.b = 0.7f;
        color.a = 1.0f;

 

        sr.material.color = color;
      }
      colorTime += Time.deltaTime; //時間をはかる
    }
  }
}

 

オブジェクトのフェードアウト

 

プレイヤー等のオブジェクトに使用します。

 

public class Test : MonoBehaviour
{
  [Header("フェード時間")] public float fadeTime; //時間は3000で約3秒
  private SpriteRenderer sr = null;
  private float timer = 0.0f;
  private float alpha;

 

  private void Start()
  {
    sr = GetComponent();
    alpha = sr.material.color.a; //color.aは透明度
  }

 

  private void Update()
  {
    if (alpha > 0)
    {
      Color color = sr.material.color;
      color.a = alpha;

 

      sr.material.color = color;
      alpha = alpha- timer / fadeTime;
      timer += Time.deltaTime;
    }
    else if (alpha <= 0)
    {
      Color color = sr.material.color;
      color.a = 0.0f;
    }
  }
}

このページの先頭へ戻る