from github
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR.Interaction.Toolkit;
|
||||
|
||||
//this script is the second part of the menu bar
|
||||
|
||||
public class OBJBar : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject OBJCanvas;
|
||||
[SerializeField] private GameObject MenuCanvas;
|
||||
[SerializeField] private GameObject MainCamera;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// see menu bar
|
||||
Vector3 newPosition = MainCamera.transform.position + MainCamera.transform.forward * 0.7f;
|
||||
newPosition.y = MainCamera.transform.position.y - 0.45f;
|
||||
|
||||
OBJCanvas.transform.position = newPosition;
|
||||
|
||||
OBJCanvas.transform.rotation = Quaternion.Euler(15, MainCamera.transform.rotation.eulerAngles.y, 0);
|
||||
}
|
||||
|
||||
//change back to the menu bar default
|
||||
public void changeToMenu()
|
||||
{
|
||||
OBJCanvas.SetActive(false);
|
||||
MenuCanvas.SetActive(true);
|
||||
}
|
||||
|
||||
//open the file explorer provided by OBJLoader
|
||||
public void openOBJLoader() {
|
||||
GameObject.Find("ObjectSpawner").GetComponent<OBJLoader>().OpenObjLoadingDialog();
|
||||
}
|
||||
|
||||
//scale the last selected object
|
||||
public void scaleUP()
|
||||
{
|
||||
GameObject lastTouchesObj = GameObject.Find("ObjectSpawner").GetComponent<OBJGrabListener>().lastTouchedOBJ;
|
||||
lastTouchesObj.transform.localScale += new Vector3(0.1f, 0.1f, 0.1f);
|
||||
ObjectSync objSyn = GameObject.Find("ObjectSpawner").GetComponent<ObjectSync>();
|
||||
//get the index of the scaled object in object lists (for sync)
|
||||
int index = objSyn.spawnedObjects.IndexOf(lastTouchesObj);
|
||||
//try to sync the new location to the server (all clients too)
|
||||
objSyn.syncScaleServerRPC(index, lastTouchesObj.transform.localScale);
|
||||
}
|
||||
|
||||
//same as scale up
|
||||
public void scaleDown()
|
||||
{
|
||||
GameObject lastTouchesObj = GameObject.Find("ObjectSpawner").GetComponent<OBJGrabListener>().lastTouchedOBJ;
|
||||
lastTouchesObj.transform.localScale -= new Vector3(0.1f, 0.1f, 0.1f);
|
||||
ObjectSync objSyn = GameObject.Find("ObjectSpawner").GetComponent<ObjectSync>();
|
||||
int index = objSyn.spawnedObjects.IndexOf(lastTouchesObj);
|
||||
objSyn.syncScaleServerRPC(index, lastTouchesObj.transform.localScale);
|
||||
}
|
||||
|
||||
//same as scale up BUT the location is set to 1, 1, 1 instead of adding or substring
|
||||
public void resetScale()
|
||||
{
|
||||
GameObject lastTouchesObj = GameObject.Find("ObjectSpawner").GetComponent<OBJGrabListener>().lastTouchedOBJ;
|
||||
lastTouchesObj.transform.localScale = new Vector3(1, 1, 1);
|
||||
ObjectSync objSyn = GameObject.Find("ObjectSpawner").GetComponent<ObjectSync>();
|
||||
int index = objSyn.spawnedObjects.IndexOf(lastTouchesObj);
|
||||
objSyn.syncScaleServerRPC(index, lastTouchesObj.transform.localScale);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user