다른 색상의 객체를 번갈아 표시합니다.
입문
이 컨셉으로 만든 목적은 유니티에서 배열을 어떻게 활용해야 할지 몰라서 만들어봤어요.
자신은 초보자의 입장이지만 몇 번의 프로그래밍 서적을 통해 알게 되었다.작아도 되기 때문에 이 동작을 어떻게 해야 할지 생각해 보고 반복해서 시도하는 것과 틀리는 것이 가장 적합하다.
배열 기본 유형
int[] a = new int[3]; //型[] 変数 = new 型[配列数]
Game Object에 색을 칠합니다.
3D_objects 만들기(2개 이상 만들기, 색상 구분도 진행).
↓
항목의 리소스 막대에서 마우스 오른쪽 버튼으로 클릭 - 작성 - 재료를 선택합니다.
Albedo의 빨간색 부분 선택 → 여기서 색상 선택
GameObject 스크립트
파일 이름은 Enemy입니다.3D 객체에 부착합니다.
콘텐츠가 0.5f가 지나면 Game Object가 사라집니다.
public class Enemy : MonoBehaviour {
float time = 0;
// Update is called once per frame
void Update () {
time += Time.deltaTime;
if(time >= 0.5f)
{
Destroy(gameObject);
}
}
}
EmptyGameObject 스크립트 만들기
빈 GameObject를 만들고 여기에 3D_ 표시GameObject가 나타날 수 있도록 허용합니다.
• 스크립트(이름은 enemy2)
public class Enemy2 : MonoBehaviour {
[SerializeField] GameObject cube1; //GameObjectを配置
[SerializeField] GameObject cube2; //GameObjectを配置
float time = 0; //float型でtimeを0秒に設定する。
GameObject enemy; //GameObject型をenemyで宣言する。
GameObject[] spaners = new GameObject[2]; //配列GameObject型で配列2つ作成する。
// Use this for initialization
void Start () {
spaners[0] = cube1; //配列0をCube1に指定
spaners[1] = cube2; //配列1をCube2に指定
}
// Update is called once per frame
void Update () {
var v = Random.Range(0, spaners.Length); //Var型を宣言し乱数を生成。spanersは配列が2つなので最大値が2になる。
time += Time.deltaTime; //timeを加算し続ける。
//enemyが無くかつtimeが1.2f以上の場合はenemyにクローンを生成する。
if (enemy == null && time >= 1.2f)
{
enemy = Instantiate(spaners[v], transform.position, transform.rotation);
}
//enemyがある場合timeを0にする。
if(enemy == true)
{
time = 0;
}
//時間経過を見るためコンソールに時間を表示させる。
print(time);
}
}
EnptyEnemy에 스크립트를 부착합니다.결과
이번에는 Game Object를 주황색과 녹색으로 설정했습니다.
마지막
나는 배열은 경만 쓰고 잘 사용하지 않는다고 생각했지만 실제 사용 후에는 랜덤 수와 잘 어울려 유니티에서도 사용할 수 있을지 걱정되는 것은 기우였다.
Reference
이 문제에 관하여(다른 색상의 객체를 번갈아 표시합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uroshinse/items/64286cbbec84183e8ac4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)