12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- How it works: Plane Detection Demo
- Required:
- -ZED_Rig_Stereo prefab.
- -VR Hmd with at least 1 Controller (Oculus Touch or Vive Controller).
- -Oculus Integration OR SteamVR Unity plugin.
- How to use without VR:
- - Open the "Simple Plane Detection" sample scene.
- - Look with the Zed camera somewhere on a somewhat flat surface.
- - Hold the "Space" bar key to start looking for a positive surface.
- - If the Bunny placeholder is Red, it won't be able to spawn there.
- - If it's Blue, then It will spawn a Bunny when the key is released from holding down.
- How to use with VR:
- - Open the "VR Only Plane Detection" sample scene.
- - Point with the controller towards a flat surface (floor, table etc...).
- - Hold the [Trigger Button] of the controller to start checking the area pointed for a positive surface.
- - When the Bunny Placeholder is RED, it won't be able to spawn a Bunny.
- - If its Blue, then you can spawn a Bunny on that surface.
- - Release the [Trigger Button] when the placeholder is white, to spawn a Bunny.
- - A baseball bat will appear at the end of the Controller.
- - Use it to hit the bunny and throw it as far as possible in the available space around you.
- Checking the variable "Can Spawn Multiple Bunnies" will no longer delete the previous Spawned Bunny.
- ///////////////////////////////////////////////////
- The Prefab "VR_Controller" contains three major scripts;
- ......................................................
- - VR_ObjectTracjer
- This script tracks the VR devices that can be selected through the "Device To Track" variable on the Inspector.
- It works for SteamVR & Oculus plugins.
- ......................................................
- - Plane Manager
- This script manages when to give the order to the ZED Plane Detection Manager to detect a plane at a given world space point.
- It checks for inputs from the VR Controllers connected, and depending on the state of that input, it starts looking for planes.
- Whenever the ZED Plane Detection Manager finds something, we look at how the normal of the plane it:
- [If the surface is horizontal enough, then proceed to spawn our Bunny]
- [Else, clear everything and start again]
- Here is also managed the display of the place holder for the Bunny.
- ......................................................
- - Bunny Spawner
- This script manages not only the spawning of the Bunny, but also the display of the pointerBead laser, the display of the baseball bat.
- The UI Panel is also spawned through here, displaying the distance traveled by the Bunny since hit by the baseball bat.
- ///////////////////////////////////////////////////
- The Prefab "Zombunny" contains the Script "Bunny", and is the object spawned when the Plane Manager finds a good plane for it.
- ......................................................
- At spawn, its Rigidbody component is not Kinematic so its allowed to interact with the baseball bat and move.
- When it get hits by the baseball bat, a delayed is applied before starting looking for collisions with the real world.
- This delay is important since the Bunny is already on the ground, so we wait for it to have moved a bit before starting detecting.
- ///////////////////////////////////////////////////
- The Prefab "Capsule_Follower" with the script of the same name.
- ......................................................
- This gameObject is set to follow other gameObject which are set as children to the baseball bat.
- It then calculates a velocity base on its movements towards those objects.
- When it collides with a Bunny;
- [If the vertical velocity if negative, then the bunny gets squeeze to the ground].
- [Else if the velocity magnitude is high enough, it gets transmited to the Bunny, which GetsHit and is sent flying].
|