반응형
목표 |
Random.Range 를 이용하여 임의의 위치를 지정하여 객체 생성하는 법을 알아 보자.
실습 |
1. 먼저 오브젝트가 생성되는 위치와 범위를 결정하기 위해 객체 생성(Square 생성하여 크기를 x:20,y:10 )
2. 생성할 객체(Circle)를 추가하여 프리팹으로 설정
3. 오브젝트가 Square 내에서 임의의 장소에서 생성 할 수 있도록 다음과 같이 스크립트를 추가하자.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectSpawner : MonoBehaviour
{
public GameObject circle;
// Start is called before the first frame update
private void Awake()
{
float x, y;
Debug.Log(transform.localScale.x.ToString() + "," + transform.localScale.y.ToString());
x = Random.Range(-transform.localScale.x / 2f, transform.localScale.x / 2f);
y = Random.Range(-transform.localScale.y / 2f, transform.localScale.y / 2f);
Debug.Log(x.ToString() + "," + y.ToString());
Quaternion rotation = Quaternion.Euler(0, 0, 0); //각도를 나타내는 오일러를 Quaternion 으로 변환
Instantiate(circle, new Vector3(x, y, 0), rotation);
}
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
연습문제 |
1. 여러개의 Circle 을 임의의 장소에 생성해 보자.
2. 삼각형,사각형,원의 모양을 임의로 정해서 여러개를 생성해 보자.
반응형
'응용프로그래밍 > 유니티기초' 카테고리의 다른 글
[유니티기초]1-09. 객체 방향 전환 (0) | 2022.05.30 |
---|---|
[유니티기초] 1-08.유니티 객체 삭제 (0) | 2022.05.30 |
[유니티기초]1-06.스크립트를 이용하여 객체 생성 (0) | 2022.05.30 |
[유니티기초]1-05. 프레임에 따라 update 되는 속도가 다른 것을 어느 컴퓨터에서나 동일한 속도를 보장 하는 deltaTime (0) | 2022.05.30 |
[유니티기초] 1-04. 게임오브젝트 충돌 처리 (0) | 2022.05.30 |