見出し画像

キャラクターを振動させるプログラミング(Unity)

今回は、表紙(?)の雷に打たれたキャラを振動させてみます。

お遊びのプログラミングですが、よかったら読んでください。

画像の読み込み

まず、画像をダウンロードします。Assets => Import New Assetsを選択し、ダウンロードしたい画像を選択します。

次に、InspectorのTexture TypeをSprite(2D and UI)に変更します。

これで、画像の読み込みはOKです。

画像の配置

画像の読み込みができたら、次は画像の配置です。

まず、Imageを画像を表示したい場所に配置します。

その後、配置したImageの中のSource Image で画像を選択します。

Scriptで振動させよう!

まずScriptの準備としてGameObjectにScriptをドロップします。Script名はVibrationにしました。

準備ができたら以下のコードを書きます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Vibration : MonoBehaviour
{
   // 振動させたいImageです
   public Image rakurai;

   // 振動の大きさ
   public int velocity;
   // Start is called before the first frame update
   void Start()
   {
       
   }
   // Update is called once per frame
   void Update()
   {
       vibrate();
   }
   void vibrate()
   {
       //-velocity ~ velocity の乱数
       int value1 = Random.Range(velocity * -1, velocity +1);
       int value2 = Random.Range(velocity * -1, velocity +1);

      
       // value1, value2 の分だけ移動させる
       Vector3 m_pos = rakurai.GetComponent<RectTransform>().localPosition;
       m_pos.x += value1;
       m_pos.y += value2;
       rakurai.GetComponent<RectTransform>().localPosition = m_pos;
   }
}

最後に、GameObjectにImageをドロップすることを忘れないようにしてください。

Scriptの説明

vibrate関数に振動させる動きをまとめました。

value1、value2はvibrate関数が実行されるたびに変更されます。そしてvalue1、value2は平均すると0のため、時間がたっても理論上移動せず、振動します。

完成したもの

完成したら以下の動画のようになります。Speedは 5 にしました。


いいなと思ったら応援しよう!