Difference between revisions of "Unity Sandbox"
From Wikicliki
(→PlaceOnPlace.cs) |
(→Create An Augmented Reality App Webinar by Gen Infiniti Academy, 13 Aug 2020, 7.30pm-9.30pm) |
||
Line 16: | Line 16: | ||
* Drag the blue AR Default Prefab into inspector slot for AR Session Origin > plane manager > plane prefab | * Drag the blue AR Default Prefab into inspector slot for AR Session Origin > plane manager > plane prefab | ||
* Create in project a scripts folder | * Create in project a scripts folder | ||
− | * Create a new C# script | + | * Create a new C# script “PlaceOnPlane.cs” - open it in editor of choice (be careful about naming of file) |
− | * Drag and drop | + | * Drag and drop PlaceOnPlane script into AR session origin |
− | * Download free asset butterfly | + | * Download free asset butterfly (just go to Asset Store and look for the free Animated Butterly asset |
− | * Double click on FBX | + | * Download and import the butterfly asset |
− | + | * Double click on FBX > Double click on Materials | |
− | * Select second sphere (blue metallic) butterfly_Albedo select the material in emissions | + | * Select second sphere (blue metallic) butterfly_Albedo > select the image material in emissions (otherwise butterfly will not show up) |
* Assets > Butterfly Animated > Prefab > left click on butterfly and drag it inside Place On Place Model (inside AR Session Origin) | * Assets > Butterfly Animated > Prefab > left click on butterfly and drag it inside Place On Place Model (inside AR Session Origin) | ||
* Project Settings > Player > Other setting > Identification > Minimum API Level > Set to Android 7.1 | * Project Settings > Player > Other setting > Identification > Minimum API Level > Set to Android 7.1 | ||
* Build and Run | * Build and Run | ||
+ | * Copy the apk to your phone | ||
+ | * Recklessly install it on your phone | ||
+ | * AR BUTTERFLY APP COMPLETE | ||
=== PlaceOnPlane.cs === | === PlaceOnPlane.cs === |
Revision as of 13:32, 13 August 2020
Create An Augmented Reality App Webinar by Gen Infiniti Academy, 13 Aug 2020, 7.30pm-9.30pm
- Change build settings to Android/mobile
- Delete Main camera and Directional Light
- Window > Package Manager > AR Foundation > Install
- Window > Package Manager > ARCore XD Plugin > Install
- Window > Package Manager > ARkit Xr Plugin > Install
- Rightclick on Hierarchy Window > XR > AR Session origin
- Double click the tiny AR Session origin > look under inspector > tag: MainCamera
- Rightclick on Hierarchy Window > XR > AR Session (coordinates the real world)
- Rightclick on Hierarchy Window > XR > AR Default Plane
- Click on AR Session Origin in Hierarchy > Look in Inspector > Add Component > AR Raycast Manager (checks for floor)
- Click on AR Session Origin in Hierarchy > Look in Inspector > Add Component > AR Plane Manager (allows you to tag and project things)
- Now we want to add a plane prefab, first we create a folder in project called “prefabs”
- Drag the AR Default Plane into the Prefabs folder
- Drag the blue AR Default Prefab into inspector slot for AR Session Origin > plane manager > plane prefab
- Create in project a scripts folder
- Create a new C# script “PlaceOnPlane.cs” - open it in editor of choice (be careful about naming of file)
- Drag and drop PlaceOnPlane script into AR session origin
- Download free asset butterfly (just go to Asset Store and look for the free Animated Butterly asset
- Download and import the butterfly asset
- Double click on FBX > Double click on Materials
- Select second sphere (blue metallic) butterfly_Albedo > select the image material in emissions (otherwise butterfly will not show up)
- Assets > Butterfly Animated > Prefab > left click on butterfly and drag it inside Place On Place Model (inside AR Session Origin)
- Project Settings > Player > Other setting > Identification > Minimum API Level > Set to Android 7.1
- Build and Run
- Copy the apk to your phone
- Recklessly install it on your phone
- AR BUTTERFLY APP COMPLETE
PlaceOnPlane.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR.ARFoundation; using UnityEngine.EventSystems; public class PlaceOnPlane : MonoBehaviour { ARRaycastManager raycastManager; List<ARRaycastHit> hits; public GameObject model; void Start() { raycastManager = GetComponent<ARRaycastManager>(); hits = new List<ARRaycastHit>(); } // Update is called once per frame void Update() { if (Input.touchCount == 0) return; Touch touch = Input.GetTouch(0); if (IsPointerOverUIObject(touch.position)) return; if (raycastManager.Raycast(touch.position, hits)) { Pose pose = hits[0].pose; Instantiate(model, pose.position, pose.rotation); } } bool IsPointerOverUIObject(Vector2 pos) { if (EventSystem.current == null) return false; PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrentPosition.position = new Vector2(pos.x, pos.y); List<RaycastResult> results = new List<RaycastResult>(); EventSystem.current.RaycastAll(eventDataCurrentPosition, results); return results.Count > 0; } }