関数1
関数1
簡単なもの
| ログ表示 | (文字や変数) |
| 方向 | (X,Y,Z) new Vector3()の代わり |
| 拡大 | (物,倍率,速度) 速度5 → 1秒でほぼ目標に近づく |
| 回転 | (物,角度XYZ,速度)速度は一秒間に動く角度 |
| 向く回転 | (物,方向,速度) |
| テキスト表示 | (物,文字や変数) |
| 表示 | (物) |
| 非表示 | (物) |
| 画像変更 | (物,スプライト) Spriteを使う |
| 物体画像変更 | (物,マテリアル) Materialを使う |
使うときはusing static 関数1;最初に書く。
そうすれば関数1.ログ表示と書かずにログ表示だけで使うことができる。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;
public static class 関数1
{
static public void ログ表示<T>(T A)
{ Debug.Log(A); }
public static Vector3 方向(float 右, float 上, float 奥)
{ return new Vector3(右, 上, 奥); }
public static Vector3 座標(float 右, float 上, float 奥)
{ return new Vector3(右, 上, 奥); }
public static Quaternion 回転方向(float 右, float 上, float 奥)
{ return Quaternion.Euler(右, 上, 奥); }
static public void 拡大(GameObject A, float B, float 速度 = 5)
{
A.transform.localScale = Vector3.Lerp(
A.transform.localScale,
new Vector3(B, B, B),
Time.deltaTime * 速度);
}
static public void 回転(GameObject A, Vector3 B, float 速度 = 90)
{
if (B != Vector3.zero)
{
A.transform.rotation = Quaternion.RotateTowards(
A.transform.rotation,
Quaternion.Euler(B),
速度 * Time.deltaTime
);
}
}
static public void 向く回転(GameObject A, Vector3 B, float 速度 = 0.1f)
{ A.transform.rotation = Quaternion.Slerp(A.transform.rotation, Quaternion.LookRotation(B), 速度); }
static public void テキスト表示<T>(GameObject A, T B)
{ if (A.GetComponent<Text>() != null)
A.GetComponent<Text>().text = B.ToString();
if(A.GetComponentInChildren<Text>()!=null)
A.GetComponentInChildren<Text>().text= B.ToString();
}
static public void 非表示(GameObject A) { A.SetActive(false); }
static public void 表示(GameObject A) { A.SetActive(true); }
static public void 画像変更(GameObject A, Sprite B) { A.GetComponent<Image>().sprite = B; }
static public void 物体画像変更(GameObject A, Material B) { A.GetComponent<Renderer>().material = B; }
public static void 削除(GameObject A, float 秒数 = 0)
{
UnityEngine.Object.Destroy(A, 秒数);
}
public static GameObject 物体生成(GameObject 物, Vector3 位置, Quaternion 回転)
{ return UnityEngine.Object.Instantiate(物, 位置, 回転); }
static public void シーン遷移(string 名前)
{ SceneManager.LoadScene(名前);}
static public int ランダム(int A,int B)
{ return UnityEngine.Random.Range(A, B+1);
}
static public float ランダム(float A, float B)
{
return UnityEngine.Random.Range(A, B);
}
public static void クリック時(GameObject ボタン, Action 処理)
{
Button b = ボタン.GetComponent<Button>();
if (b == null)
{
Debug.LogError("Button コンポーネントが見つかりません: " + ボタン.name);
return;
}
b.onClick.AddListener( () => 処理());
}
}
説明
DestoryはgameObjectのものではなく UnityEngine.Objectのもの
A.DestroyではなくObject.Destroyを使う。
回転はQuaternion.Euler(0, 90, 0)かQuaternion.identityを使う
回転で(0,0,0) の方向を向くというのはできない。向く方向の矢印が表示されないので
エラーになる可能性がある。
Instantiate() は UnityEngine.Object.Instantiate() の省略形。
MonoBehaviour の中なら省略できるけど、static メソッドでは省略できない

