unity pick up script
using UnityEngine;
using System.Collections;
public class GrabandDrop : MonoBehaviour {
GameObject grabbedObject;
float grabbedObjectSize;
// Use this for initialization
void Start () {
}
GameObject GetMouseHoverObject(float range){
//Check for Collider with Raycast
Vector3 position = gameObject.transform.position;
RaycastHit raycastHit;
Vector3 target = position + Camera.main.transform.forward * range;
if (Physics.Linecast(position, target, out raycastHit ))
return raycastHit.collider.gameObject;
return null;
}
void TryGrabbedObject(GameObject grabObject){
//Check for Object if not null Grab it
if (grabObject == null || !CanGrab(grabObject))
return;
grabbedObject = grabObject;
grabbedObjectSize = grabObject.GetComponent<Renderer>().bounds.size.magnitude;
}
//Can grab condition (RigidBody)
bool CanGrab(GameObject candidate){
return candidate.GetComponent<Rigidbody> () != null;
}
void DropObject(){
//Release Direction and Velocity
//Set multiplier larger for more force
grabbedObject.GetComponent<Rigidbody> ().velocity = Vector3.forward * 50;
//Check if hands are empty
if (grabbedObject = null)
return;
//if holding object
if (grabbedObject.GetComponent<Rigidbody> () != null)
//stop object before release
grabbedObject.GetComponent<Rigidbody> ().velocity = Vector3.zero;
}
// UPDATE is called once per frame
void Update () {
//Assign Input for Grab
if (Input.GetMouseButtonDown (1)) {
if (grabbedObject == null)
TryGrabbedObject (GetMouseHoverObject (5));
//Set Grab and Drop as Same button (Right Mouse Button)
else DropObject ();
}
if (grabbedObject != null) {
//Set position of grabbed Object after grabbing
Vector3 newposition = gameObject.transform.position + Camera.main.transform.forward * grabbedObjectSize;
grabbedObject.transform.position = newposition;
}
Debug.Log (GetMouseHoverObject (5));
}
}
Are there any code examples left?
New code examples in category C#
-
C# 2022-03-27 22:40:23 c# movement script
-
C# 2022-03-27 22:15:17 Delete last modification on EntityFramework Core
-
C# 2022-03-27 22:15:02 file.create folder c#
-
C# 2022-03-27 19:25:04 Error inflating class android.support.constraint.ConstraintLayout
-
C# 2022-03-27 19:15:02 top down shooting in unity 2D
-
C# 2022-03-27 18:50:02 c# remove invalid directory characters
-
C# 2022-03-27 18:30:07 how to use K2 games Games parallax background
-
C# 2022-03-27 18:25:10 c# replace crlf
-
C# 2022-03-27 18:25:09 keycode for left mouse click unity