- Home /
Question by
awsome129 · Mar 10, 2017 at 07:03 AM ·
transform.position
Why won't my player grab a gameobject
I followed a tutorial on how to pickup and object in a RTS style building game. The script won't work and idk why. Please help!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovableObjectsManager : MonoBehaviour {
GameObject GrabbedGameObj;
float GrabbedObjSize;
public bool BuildModeEnabled = false;
// Use this for initialization
void Start()
{
}
GameObject MouseOverObject(float Range)
{
Vector3 Pos = gameObject.transform.position;
RaycastHit RayCastHit;
Vector3 target = Pos + Camera.main.transform.forward * Range;
if (Physics.Linecast(Pos, target, out RayCastHit))
return RayCastHit.collider.gameObject;
return null;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.B))
{
BuildModeEnabled = !BuildModeEnabled;
}
if (Input.GetMouseButtonDown(0) && (BuildModeEnabled))
{
if (GrabbedGameObj == null)
{
TryGrabObj(MouseOverObject(5));
}
else
DropObject();
}
if (GrabbedGameObj != null)
{
Vector3 newPos = gameObject.transform.position + Camera.main.transform.forward * GrabbedObjSize;
GrabbedGameObj.transform.position = newPos;
}
}
void TryGrabObj(GameObject GrabObj)
{
if (GrabbedGameObj == null)
{
return;
}
GrabbedGameObj = GrabObj;
GrabbedObjSize = GrabObj.GetComponent<Renderer>().bounds.size.magnitude;
}
void DropObject()
{
if (GrabbedGameObj == null)
{
return;
}
GrabbedGameObj = null;
}
}
Comment