Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Armageddon104 · Oct 05, 2014 at 09:31 AM · lerppickupinteractioninteract

Pickup Script, Lerping to position needs to stay.

Hello, so I'm working on a script that will let the player pickup objects and I want it to lerp the object to an empty game object. There are a few problems though:

  1. Doesn't use the ObjectHolderPoint rotation, so when I pick up an object it stays on it's xyz rotation but just moves to the origin of ObjectHolderPoint.

  2. Raytrace from camera doesn't work if I angle the camera down, clips with character controller/collider.

  3. I can pickup one object and then click another object with the Pickable tag to put it down.

  4. It doesn't lerp/move to the location at all, but if it did it still wouldn't follow the ObjectHolderPoint until it's put down.

    using UnityEngine; using System.Collections;

    public class Pickup : MonoBehaviour {

       public GameObject ObjectHoldingPoint;
         public Camera MainCamera;
         public float PickupDistance = 3.0f;
         public float Smoother = 2.0f;
         private bool Holding;
         //The Object in the world tagged with
         private GameObject PickedObject;
         //private Vector3 ObjectHoldingPointVector;
         
         void Awake () {
             Holding = false;
         }
         
         void Update () {
             //ObjectHoldingPointVector = ObjectHoldingPoint.transform.position;
             if (Input.GetMouseButtonDown(0) && !Holding) {
                 Interaction();
                 //print ("Interact");
             }
             else if (Input.GetMouseButtonDown(0) && Holding) {
                 Drop ();
             }
         }
         
         void Interaction () {
             Vector3 ObjectHoldingPointVector = ObjectHoldingPoint.transform.position;
             //Vector3 PickedObjectVector = PickedObject.transform.position;
             
             RaycastHit HitPoint;
             
             if (Physics.Raycast(MainCamera.transform.position, MainCamera.transform.forward, out HitPoint)) {
                 if (HitPoint.distance <= PickupDistance && HitPoint.collider.tag == "Pickable") {
                     PickedObject = HitPoint.collider.gameObject;
                     Vector3 PickedObjectVector = PickedObject.transform.position;
                     
                     PickedObject.transform.position = Vector3.Lerp(PickedObjectVector, ObjectHoldingPointVector, Smoother * Time.deltaTime);
                     //If I enable the line below it will move instantiously, but won't follow rotation or the ObjectHolderPoint until dropped.
                     //PickedObject.transform.position = ObjectHoldingPointVector;
     
                     Holding = true;
     
                     //print ("Hit");
                 }
                 else {
                     Holding = false;
                 }
             }
         }
         
         //Placeholder, don't want to mess with physics/collision right now.
         void Drop () {
             PickedObject.transform.position = new Vector3(0, 0, 0);
             Holding = false;
         }
     }
    
    

If anyone could push me in the right direction I'd be very thankful.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

Spherecast returning false if character is too close to gameobject 0 Answers

How to move the mouse position to the center of the screen? 1 Answer

Key interaction not working 1 Answer

RTS game - AI help 0 Answers

Picked up object passes through other objects 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges