added drag and drop script in test scene, needs to be implemented in main scene when building, for now we can do that it builds in a place but you can move it after
This commit is contained in:
5652
Assets/Game/Scenes/TestScene/Test.unity
Normal file
5652
Assets/Game/Scenes/TestScene/Test.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Game/Scenes/TestScene/Test.unity.meta
Normal file
7
Assets/Game/Scenes/TestScene/Test.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdf6eb6086d3075439019853b176f153
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Game/Scenes/TestScene/TestSceneScripts.meta
Normal file
8
Assets/Game/Scenes/TestScene/TestSceneScripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5772ac097180aaf4da1068ca3064579d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
29
Assets/Game/Scenes/TestScene/TestSceneScripts/DragAndDrop.cs
Normal file
29
Assets/Game/Scenes/TestScene/TestSceneScripts/DragAndDrop.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class DragAndDrop : MonoBehaviour
|
||||
{
|
||||
private float zCoord;
|
||||
private Vector3 mouseOffset;
|
||||
|
||||
private void onMouseDown()
|
||||
{
|
||||
zCoord = Camera.main.WorldToScreenPoint(transform.position).z;
|
||||
mouseOffset = transform.position - mouseWorldPos();
|
||||
}
|
||||
|
||||
|
||||
private void onMouseDrag()
|
||||
{
|
||||
transform.position = mouseWorldPos() + mouseOffset;
|
||||
}
|
||||
|
||||
|
||||
private Vector3 mouseWorldPos()
|
||||
{
|
||||
Vector3 mPos = Input.mousePosition;
|
||||
mPos.z = zCoord;
|
||||
return Camera.main.ScreenToWorldPoint(mPos);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6da85d893d238744aa17c170581ebc7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
60
Assets/Game/Scenes/TestScene/TestSceneScripts/Grabber.cs
Normal file
60
Assets/Game/Scenes/TestScene/TestSceneScripts/Grabber.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Grabber : MonoBehaviour {
|
||||
|
||||
private GameObject selectedObject;
|
||||
|
||||
private void Update() {
|
||||
if (Input.GetMouseButtonDown(0)) {
|
||||
if(selectedObject == null) {
|
||||
RaycastHit hit = CastRay();
|
||||
|
||||
if(hit.collider != null) {
|
||||
if (!hit.collider.CompareTag("Drag")) {
|
||||
return;
|
||||
}
|
||||
|
||||
selectedObject = hit.collider.gameObject;
|
||||
Cursor.visible = false;
|
||||
}
|
||||
} else {
|
||||
Vector3 position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.WorldToScreenPoint(selectedObject.transform.position).z);
|
||||
Vector3 worldPosition = Camera.main.ScreenToWorldPoint(position);
|
||||
selectedObject.transform.position = new Vector3(worldPosition.x, 0f, worldPosition.z);
|
||||
|
||||
selectedObject = null;
|
||||
Cursor.visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(selectedObject != null) {
|
||||
Vector3 position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.WorldToScreenPoint(selectedObject.transform.position).z);
|
||||
Vector3 worldPosition = Camera.main.ScreenToWorldPoint(position);
|
||||
selectedObject.transform.position = new Vector3(worldPosition.x, .25f, worldPosition.z);
|
||||
|
||||
if (Input.GetMouseButtonDown(1)) {
|
||||
selectedObject.transform.rotation = Quaternion.Euler(new Vector3(
|
||||
selectedObject.transform.rotation.eulerAngles.x,
|
||||
selectedObject.transform.rotation.eulerAngles.y + 90f,
|
||||
selectedObject.transform.rotation.eulerAngles.z));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private RaycastHit CastRay() {
|
||||
Vector3 screenMousePosFar = new Vector3(
|
||||
Input.mousePosition.x,
|
||||
Input.mousePosition.y,
|
||||
Camera.main.farClipPlane);
|
||||
Vector3 screenMousePosNear = new Vector3(
|
||||
Input.mousePosition.x,
|
||||
Input.mousePosition.y,
|
||||
Camera.main.nearClipPlane);
|
||||
Vector3 worldMousePosFar = Camera.main.ScreenToWorldPoint(screenMousePosFar);
|
||||
Vector3 worldMousePosNear = Camera.main.ScreenToWorldPoint(screenMousePosNear);
|
||||
RaycastHit hit;
|
||||
Physics.Raycast(worldMousePosNear, worldMousePosFar - worldMousePosNear, out hit);
|
||||
|
||||
return hit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a68a2fd4e7e3d3f4bab9e38d25966c16
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user