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; }
}
コメント