之前想做瞬移,在网上找攻略,都说要先烘焙网格,限定范围在进行寻路瞬移。
但是其实最简单的方法,大概是将头盔当前的位置实时变更为点击位置。
代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveOfVive : Interactable {
public Transform target;
private Vector3 targetPos;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
targetPos = new Vector3(target.position.x, target.position.y, target.position.z);
}
public override void OnPointerDown(Vector3 position)
{
base.OnPointerDown(position);
StartCoroutine(StartTeleport(position, 0.3f));
}
public IEnumerator StartTeleport(Vector3 position, float duration)
{
var halfDuration = Mathf.Max(0f, duration * 0.5f);//瞬移时间
if (!Mathf.Approximately(halfDuration, 0f))
{
SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f)