Difference between revisions of "Unity Sandbox"

From Wikicliki
Jump to: navigation, search
(→‎AR Butterfly)
Line 1: Line 1:
 
* [[Unity AR Butterfly]]
 
* [[Unity AR Butterfly]]
 
* [[Unity Course Notes]]
 
* [[Unity Course Notes]]
−
 
−
 
−
== AR Butterfly ==
 
−
 
−
Attended the "Create Augmented Reality App" Webinar by Gen In finiti Academy, 13 Aug 2020, 7.30pm-9.30pm
 
−
- Conducted by Emmanual Tay
 
−
 
−
* 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 - THIS ONE: https://assetstore.unity.com/packages/3d/characters/animals/butterfly-animated-58355
 
−
* Newly imported Butterfly asset folder > 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
 
−
 
−
[[File:butterflyARapp.jpg]]
 
−
 
−
=== PlaceOnPlane.cs ===
 
−
 
−
<pre>
 
−
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;
 
−
    }
 
−
}
 
−
 
−
</pre>
 

Revision as of 00:55, 5 September 2020