세컨드라이프에서 애용되었던 기술인데요. 산사에서도 가능하지만 통 샘플소스가 보이지 않아 하나 만들어 보았습니다.
스크립트는 아래와 같습니다.
using Sansar;
using Sansar.Script;
using Sansar.Simulation;
using System;
public class RotateSample : SceneObjectScript
{
[Tooltip("속도")]
[DefaultValue(1.0)]
public double SpinSpeed;
public override void Init()
{
// 회전 쓰레드 호출
StartCoroutine(RotateRoutine);
}
// 회원 쓰레드
void RotateRoutine()
{
// 회전횟수(반바퀴 기준)
int times = 0;
Quaternion rotation;
// 무한반복
while (true)
{
// 혹시라도 움직이는 중이라면 동작을 멈출때까지 대기
if (ObjectPrivate.Mover.IsMoving)
{
continue;
}
// 반바퀴를 2번 돈다. 한번에 한바퀴 회전하면 움직임이 이상해지기 때문
for (int i = 0; i < 2; ++i)
{
// 회전횟수 카운트
times++; if (times == 32767) times = 1;
// 회원치에 해당하는 쿼터니온 각도 계산
rotation = Quaternion.FromAngleAxis(Mathf.PiOverTwo * times, Vector.ObjectUp);
// SpinSpeed 초동안 회전치만큼 일정속도로 회전
WaitFor(ObjectPrivate.Mover.AddRotate, rotation, SpinSpeed, MoveMode.Linear);
}
}
}
}
산사에 업로드해주신 다음 오브젝트에 스크립트를 적용하고 오브젝트 속성에서 Spin Speed 값을 조정해주시면 되는데요.
수치가 작을수록 속도가 빠릅니다.
필요하신 분에게 유용한 정보가 되셨기를 바라며~
감사합니다.
'가상세계 산사VR' 카테고리의 다른 글
가상현실 산사VR, 이스터 에그, 마이홈 탈출? (0) | 2020.10.02 |
---|---|
산사VR, 상자면 따로 사진 입히기, 멀티메트리얼 (0) | 2020.09.30 |
가상세계 산사VR, Dumm 탐방. (0) | 2020.09.30 |
가상세계산사VR 그림자 켜는 법 (0) | 2020.09.30 |
가상세계 산사VR의 움짤 (0) | 2020.09.27 |