使物体(带相机)被动移动
Making an object(with camera) move passively
我正在创建一个 Vive VR 被动式 VR 体验,您在 space 飞船中并且没有任何控制,它在整个太阳系中被动移动。不是AI,会有预定的归宿
我的问题:如何让物体被动移动?(A.K.A Space 带摄像头)
您有一个起点和一个终点,然后 Lerp 在它们之间。统一文档中的示例有一个针对您的确切问题的示例。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public Transform startMarker;
public Transform endMarker;
public float speed = 1.0F;
private float startTime;
private float journeyLength;
void Start() {
startTime = Time.time;
journeyLength = Vector3.Distance(startMarker.position, endMarker.position);
}
void Update() {
float distCovered = (Time.time - startTime) * speed;
float fracJourney = distCovered / journeyLength;
transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
}
}
您将该脚本附加到您的 "Spaceship" 根对象,然后让玩家成为宇宙飞船的子对象,这样它就会随着飞船沿着它的路线移动。
Asset Store 上的 Path Magic 可以为您完成这一切,您可能不需要编写任何代码。
我正在创建一个 Vive VR 被动式 VR 体验,您在 space 飞船中并且没有任何控制,它在整个太阳系中被动移动。不是AI,会有预定的归宿
我的问题:如何让物体被动移动?(A.K.A Space 带摄像头)
您有一个起点和一个终点,然后 Lerp 在它们之间。统一文档中的示例有一个针对您的确切问题的示例。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public Transform startMarker;
public Transform endMarker;
public float speed = 1.0F;
private float startTime;
private float journeyLength;
void Start() {
startTime = Time.time;
journeyLength = Vector3.Distance(startMarker.position, endMarker.position);
}
void Update() {
float distCovered = (Time.time - startTime) * speed;
float fracJourney = distCovered / journeyLength;
transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
}
}
您将该脚本附加到您的 "Spaceship" 根对象,然后让玩家成为宇宙飞船的子对象,这样它就会随着飞船沿着它的路线移动。
Path Magic 可以为您完成这一切,您可能不需要编写任何代码。