Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
/******************************************************************************
* Copyright (C) Leap Motion, Inc. 2011-2018. *
* Leap Motion proprietary and confidential. *
* *
* Use subject to the terms of the Leap Motion SDK Agreement available at *
* https://developer.leapmotion.com/sdk_agreement, or another agreement *
* between Leap Motion and you, your company or other organization. *
******************************************************************************/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Leap.Unity.Examples {
/// <summary>
/// This script keeps a GameObject in front of the ship, off to the side a bit. The
/// skybox cannot provide a frame of reference for the linear motion of the ship, so
/// the spawned object provides one instead.
///
/// This script assumes the ship is moving along the world forward axis.
/// </summary>
[AddComponentMenu("")]
public class LinearReferenceSpawner : MonoBehaviour {
public Spaceship spaceship;
public GameObject toSpawn;
public float forwardSpawnMultiplier = 1F;
public Vector3 spawnOffset = Vector3.left * 1.5F;
private GameObject _spawnedObj;
void Update() {
bool justSpawned = false;
if (_spawnedObj == null) {
_spawnedObj = GameObject.Instantiate(toSpawn);
justSpawned = true;
}
if (justSpawned
|| (_spawnedObj.transform.position - spaceship.transform.position).z < -1F) {
setSpawnPosition();
if (justSpawned) _spawnedObj.transform.position += Vector3.forward * 2F;
}
}
private void setSpawnPosition() {
Vector3 spawnPos = spaceship.transform.position;
spawnPos += spaceship.velocity * forwardSpawnMultiplier;
spawnPos += spawnOffset;
_spawnedObj.transform.position = spawnPos;
}
public void Respawn() {
setSpawnPosition();
}
}
}
c30bb7b85This file is pinned to the selected release. Download the original to open it in your design tool.