[unity] code

Instantiate

[serializeField] public GameObject prefabs;//複製するオブジェクト
[serializeField] private GameObject parent;//親オブジェクト

GameObject obj;//生成されるオブジェクトの器

//指定の場所にオブジェクトを生成
Instantiate(prefabs, new Vector3(0, 0, 0), Quaternion.identity);

//親を指定してオブジェクトを生成
Instantiate(prefabs, parent.transform, false);

//生成したオブジェクトに変更を加える
obj = Instantiate(prefabs, new Vector3(0, 0, 0), Quaternion.identity);

obj.name = "newObj"; //名前を変更
obj.transform.parent = this.transform; //親を設定(thisのところに任意のオブジェクト)
obj.transform.position = new Vector3(1, 1, 1); //座標を指定し場所を移動

時間経過処理

    [SerializeField] private int minute;
    [SerializeField] private float seconds;
    private float oldSeconds;
    private Text timerText;
 
	void Start () {
		minute = 0;
		seconds = 0f;
		oldSeconds = 0f;
		timerText = GetComponentInChildren<Text> ();
	}
 
	void Update () {
		seconds += Time.deltaTime;
		if(seconds >= 60f) {
			minute++;
			seconds = seconds - 60;
		}
		// 値が変わった時だけテキストUIを更新
		if((int)seconds != (int)oldSeconds) {
			timerText.text = minute.ToString("00") + ":" + ((int) seconds).ToString ("00");
		}
		oldSeconds = seconds;
	}

オブジェクトの色を変更

using UnityEngine.UI;//追加
using TMPro;//追加

Image image;
Text text;
TextMeshProUGUI tmp;

void Start()
{
    Color32 color = new Color32(255,255,255,255);//任意の色を設定
    image.color = color;//イメージの色を変化
    text.color = color;//テキストの色を変化
    tmp.color = color;//テキストメッシュプロの色を変化
}

オブジェクト・テキストを透過させ消えたら削除する

using UnityEngine.UI;//追加

private Image image;
private int alpha = 255;
public float fadeSpeed = 100;

void Start () 
{
    image = GetComponent<Image>();
}

void Update () {
    alpha -= (int)(Time.deltaTime * fadeSpeed);
    Color32 color = new Color32(0, 13, 255, alpha);// 任意の色
    image.color = color;
    if (alpha <= 5) Destroy(gameObject);
}

オブジェクト・テキストを点滅させる

using UnityEngine.UI;//追加

private Image image;
private int alpha = 255;
private int fadeSpeed = 320;
private bool isFade = true;

void Start()
{
    image = GetComponent<Image>();
}

void Update()
{
    if(isFade)alpha -= (int)(Time.deltaTime * fadeSpeed);
    else alpha += Time.deltaTime * fadeSpeed;
    Color32 color = new Color32(0, 13, 255, alpha);// 任意の色
    image.color = color;
    if (alpha <= 40) isFade = false;
    else if(alpha >= 240) isFade = true;
}

オブジェクト・テキストを点滅させる(点灯時少し停止)

using UnityEngine.UI;//追加

private Image image;
private float alpha = 1;
private float fadeSpeed = 1.0f;
private bool isFade = true;

void Start()
{
    image = GetComponent<Image>();
}

void Update()
{
    if(isFade)alpha -= Time.deltaTime * fadeSpeed;
    else alpha += Time.deltaTime * fadeSpeed;
    Color color = new Color(0.05f, 1, 0, alpha);// 任意の色
    image.color = color;
    if (alpha <= 0.2f) isFade = false;
    else if(alpha >= 1.1f) isFade = true;
}

Coroutine

[SerializeField] private float time = 3.5f;

void Start(){
    //処理を開始させるとき
    StartCoroutine("TimeStart");
}
IEnumerator TimeStart()
{
    //timeの時間処理が停止し、経過後処理が進む
    yield return new WaitForSeconds(time);
    //処理をかく
}

//連続して処理したい時
IEnumerator TimeStarted()
{
    for(int h = 0; h < 3; h++){
        yield return new WaitForSeconds(time);
        //処理をかく
    }
}

//処理を停止させたいときは
StopCoroutine("TimeStart");

Invoke

void Start()
{
    //3.5秒後にTimeStartの処理が始まる
    Invoke("TimeStart", 3.5f);
}
private void TimeStart()
{
    //処理をかく
}

ScriptableObject

[CreateAssetMenu]
public class MonsterBase : ScriptableObject
{
    //作りたい項目
    [serializeField] string name;
    [serializeField] int number;

    //
    public string Name{ get => name; set => name = value; }
    public int Number{ get => number; set => number = value; }
}

コメント

タイトルとURLをコピーしました