Question by
BokuDev · Mar 04, 2016 at 12:24 PM ·
c#cameramovementmovement script
How to have a child object camera with gaze move its parent object
HI I'm working on a VR game with hookshot script, and the script works great without a VR headset and works by attaching it to the steam VR camera, but I learned quickly that once you are in VR mode the camera becomes a child of the roomscale object.
How do I make it so the script is still attached to the steam vr camera and its gaze is still the method of aiming, BUT it moves the parent object "roomscale bounds" instead?
Perhaps some way to place the parent object in the inspector.
using UnityEngine;
using System.Collections;
public class HookShot : MonoBehaviour
{
public float PullSpeed = 10f;
public float MaxDistance = 10f;
public string Tag = string.Empty;
private bool isFrozen;
protected void Update ()
{
if (isFrozen)
{
return;
}
RaycastHit hit;
if (Physics.Raycast (transform.position, transform.forward, out hit, MaxDistance))
{
if (string.IsNullOrEmpty (Tag) || hit.collider.CompareTag (Tag))
{
// hit valid target
// you can display graphics here
// showing that a hook is possible
var deviceIndex = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.First);
if (deviceIndex != -1 && SteamVR_Controller.Input(deviceIndex).GetPressDown(SteamVR_Controller.ButtonMask.Trigger))
{
StartCoroutine (Hook (hit.point));
}
}
}
}
private IEnumerator Hook (Vector3 position)
{
isFrozen = true;
while ((transform.position - position).sqrMagnitude > 0.5f)
{
transform.position = Vector3.MoveTowards (transform.position, position, Time.deltaTime * PullSpeed);
yield return null;
}
isFrozen = false;
}
}
Comment
Your answer
Follow this Question
Related Questions
How to make an object go the direction it is facing? (Im new) 0 Answers
Face direction of a Vector 3 1 Answer
Camera is Moving in Inspector but not in game? 1 Answer
Camera Modification Help 0 Answers
Movement with rigidbody 1 Answer