본문 바로가기
가상세계 산사VR

가상세계의 드론(dron)

가상세계 산사 크레이의 월드에는 드론(dron) 이 있습니다.

가상세계 산사의 드론

이 드론이 얼마나 변덕스러운지 움직이다 멈추고 움직이다 멈추고 그러는데요
막 달려가 따라 잡으려고 해도 멈추는 듯 하다 갑자기 이동해버리는 바람에 따라 잡기가 여간 어려운게 아닙니다.

가상세계 산사의 드론

하지만 어느 지점에서 이 드론을 아주 가까이서 접할 수 있었지요.

가상세계 산사의 드론

그리고 이 때를 놓칠 새라 얼른 드론 위에 올라타보았더니 드론이 저를 태우고 하늘 높이 날아오르는게 아니겠습니까?

가상세계 산사의 드론

하지만 하늘에서 드론을 타고 버티는건 너무 힘들어서 곧잘 추락합니다.
다행인 것은 가상세계에서는 전혀 다치지 않는다는 것이지요 :)
뭐.. 이런 스토리입니다 :D :D :D


가상세계 산사의 드론은 현실 세계의 드론과 달라서 코딩은 아주 수월한데요.

간단히 코드 공개합니다 :)

using Sansar;
using Sansar.Script;
using Sansar.Simulation;
using System;
using System.Collections.Generic;

public class dron : SceneObjectScript
{
    // 이동할 3차원 좌표목록
    public List<Vector> moves;

    // 한 턴 단위 이동 시간
    double MovingTime = 5;

    // 초기화
    public override void Init()
    {
        // 드론 쓰레드 시작
        StartCoroutine(dron_Thread);
    }

    void dron_Thread()
    {
        // 0번 좌표부터 시작
        int step = 0;
        // 무한반복
        while (true)
        {
            // 다음 단계로 이동
            step++;
            // 마지막 단계를 넘어선 경우 처음으로
            if(step>=moves.Count)step=0;

            // 해당 시간동안 작동하며 작동이 끝날때까지 이 명령 다음행을 지나지 않는다
            WaitFor(
                ObjectPrivate.Mover.AddTranslate, // 좌표 이동
                moves[step],  // step번째 3차원 좌표로
                MovingTime,     // 이동에 소요하게 할 시간
                MoveMode.Smoothstep); // 부드럽게 이동하게 한다 ( 천천히 출발/도착 )
        }
    }
}

오브젝트에 이 스크립트 적용 후 반드시 Movable From Script ( 스크립트로 이동할 수 있음 ) 속성을 On으로 바꿔주시고,

가상세계 산사의 드론

DRON 섹션의 Edit List 버튼을 클릭해서,

가상세계 산사의 드론

Add entry 를 클릭해서 좌표를 하나씩 넣어주시면 됩니다.
이 때는 실제 오브젝트를 한 지점 한 지점 이동하면서 좌표를 조사하면서 넣어주시면 되는데요

가상세계 산사의 드론

오브젝트를 움직이고 나서 TRANSFORM 섹션에서 확인해주시면 되겠습니다.
좀 노가다성이 있습니다 :)

가상세계 산사의 드론

이차 저차해서 만든 드론이 날아다니는 모습은 와우~ 이지요.

오늘도 재미난 구경거리가 되셨나 모르겠습니다.
독자님들 코로나 주의하시고 늘 건강하세요~