[Unity][개발#5] 블록코딩, 함수 만들기
2021. 5. 14. 12:12ㆍPROJECT/VR 소프트웨어 코딩교육 플랫폼
728x90
반응형
3번째 기능
함수 만들기
실제로 함수를 만들때 사용자가 원하는 변수와 같은 것들을 지정해서 쓸 수 가 있다.
그래서 '함수 만들기' 쌓아논 블록을 저장하여 다른 새로운 블록(함수)에 기능을 이관하여 쓸 수 있도록 구현할 것이다.
Block3 : '함수 만들기'를 모두 담당하고 있는 오브젝트
중앙에 '함수만들기' 에 쓰일 블록들과 오른쪽중앙에 블록을 쌓을 빨간색 Panel이 보인다.
public void MakeFunction() //함수 만들기
{
Fpanel.SetActive(true);
//Fx.SetActive(true);
CanvasGroup canvasGroup = Fx.GetComponent<CanvasGroup>();
canvasGroup.alpha = 1;
canvasGroup.blocksRaycasts = true;
PML.SetActive(false);
SaveFx.SetActive(true);
Block.SetActive(true);
}
MakeFx : 화면 중앙에 있는 만들기 버튼 > 버튼을 클릭할시 Block3의 하위 오브젝트 중 FPanel과 Block이 활성화 된다.
Fx는 블록을 담을 오브젝트이기 때문에 비활성화가 되면 코루틴이 실행이 정상적으로 작동되지 않아 CanvasGroup을 사용하였다.
public void SaveFunction() //함수 저장하기
{
CanvasGroup canvasGroup = Fx.GetComponent<CanvasGroup>();
Fpanel.SetActive(false);
Block4.SetActive(true);
PML.SetActive(true);
GameObject CloneBlock = Instantiate(Fx, Block4.transform.position, transform.rotation) as GameObject; //Fx를 클론생성
GameObject CloneBlock2 = Instantiate(ClassBlock, Block4.transform.position, transform.rotation) as GameObject; //ClassBlock를 블록생성
//Fx.SetActive(false);
canvasGroup.alpha = 0;
canvasGroup.blocksRaycasts = false;
CloneBlock2.transform.SetParent(Block4.transform);
CloneBlock.transform.SetParent(CloneBlock2.transform); //Fx를 ClassBlock 자식 오브젝트로 넣음으로써 ClassBlock에 Fx 기능들을 전이 시킴
CanvasGroup canvasGroup2 = CloneBlock.GetComponent<CanvasGroup>();
canvasGroup2.alpha = 0; //CloneBlock.SetActive(false); 을 대신함
canvasGroup2.blocksRaycasts = false; // 혹시 터치못하게끔 하기 위해
//CloneBlock.SetActive(false); //Panel 상에서 보이지 않게끔 비활성화 시킴 > ClassBlock만 보여줌
CloneBlock2.transform.localScale = new Vector3(1, 1, 1);
Block3.SetActive(false);
Block.SetActive(false);
}
SaveFx : 좌측하단에 있는 완료 버튼 > 쌓아놓은 블록을 저장하고 새로운 블록을 만든다.
GameObject CloneBlock = Instantiate(Fx, Block4.transform.position, transform.rotation) as GameObject; //Fx를 클론생성
Fx는 쌓아놓은 블록들은 오브젝트로써 클론을 생성하여 CloneBlock2의 하위 메뉴로 들어가게끔 구현했다.
완료 버튼을 누르면 노란색 블록이 생성되고 이 노란색블록이 아까 쌓은 블록들의 기능을 가지고 있다.
728x90
반응형
'PROJECT > VR 소프트웨어 코딩교육 플랫폼' 카테고리의 다른 글
[최종] VR 소프트웨어 코딩 교육 플랫폼 (0) | 2021.09.12 |
---|---|
[Unity][개발#4]블록코딩, Canvas Group, 캔버스그룹 온오프, 코루틴문제 (0) | 2021.05.12 |
[Unity][개발#3]반복문, for문, 블록코딩 (0) | 2021.04.29 |
[Unity][개발#2]단일동작 블록, 블록코딩,이동,회전 (0) | 2021.04.29 |
[Unity][개발#1]Drag & Drop, 블록코딩, 드래그, 드랍 (0) | 2021.04.29 |