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 Ludwant · Apr 13, 2015 at 11:56 PM · issuekinematic

A Cube That I Pick Up Acts Kinematic, Although it Isn't.

I have a script set up that allows the player to click once to pick up an object that has an empty "marker" script attached. It then floats in front of you, and if you move, it follows you. You can click again to drop it. But the problem is that when I move the cube near a wall or the floor, it goes right through, as though it is Kinematic, although I have checked and double-checked that it isn't. I only turn off gravity for the object. Another really weird thing is that when I commented out the lines turning off gravity, it still floated in front of me when I tried to pick it up. This may turn out to be a really simple fix, but I can't figure it out.

Thanks in advance. `

Comment
Add comment · Show 1
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
avatar image Ludwant · Apr 13, 2015 at 11:25 PM 0
Share

Here is my complete code:

 using UnityEngine;
 using System.Collections;
 
 public class PickupObject : $$anonymous$$onoBehaviour {
     GameObject mainCamera;
     bool carrying;
     GameObject carriedObject;
     public float distance;
     public float smooth;
 
     // Use this for initialization
     void Start () {
         mainCamera = GameObject.FindWithTag("$$anonymous$$ainCamera");
     }
     
     // Update is called once per frame
     void Update () {
         if(carrying) {
             carry(carriedObject);
             checkDrop();
              
 
         } else {
             pickup();
         }
     }
 
     void rotateObject() {
         carriedObject.transform.Rotate(5,10,15);
     }
 
     void carry(GameObject o) {
         o.transform.position = Vector3.Lerp (o.transform.position, mainCamera.transform.position + mainCamera.transform.forward * distance, Time.deltaTime * smooth);
         o.transform.rotation = Quaternion.identity;
     }
 
     void pickup() {
         if(Input.Get$$anonymous$$ouseButtonDown (0)) {
             int x = Screen.width / 2;
             int y = Screen.height / 2;
 
             Ray ray = mainCamera.GetComponent<Camera>().ScreenPointToRay(new Vector3(x,y));
             RaycastHit hit;
             if(Physics.Raycast(ray, out hit)) {
                 Pickupable p = hit.collider.GetComponent<Pickupable>();
                 if(p != null) {
                     carrying = true;
 
                     carriedObject = p.gameObject;
                     p.gameObject.GetComponent<Rigidbody>().useGravity = false;
 
                 }
             }
         }
     }
 
     void checkDrop() {
         if(Input.Get$$anonymous$$ouseButtonDown (0)) {
             dropObject();
         }
         if(Input.Get$$anonymous$$ouseButtonDown(1)) {
 
             carrying = false;
             carriedObject.gameObject.GetComponent<Rigidbody>().useGravity = true;
 
             carriedObject.GetComponent<Rigidbody>().velocity = transform.TransformDirection(Vector3.forward * 25);
             carriedObject = null;
         }
     }
 
     void dropObject() {
         carrying = false;
 
         carriedObject.gameObject.GetComponent<Rigidbody>().useGravity = true;
         carriedObject = null;
     }
 }
 
 

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by J-R-Wood · Apr 14, 2015 at 12:23 AM

Best guess is it's "transform.forward" on row 33 of your code, from what i remember that would sometimes cause it to bust thru any collider.

Try using Rigidbody.Addforce maybe.

Comment
Add comment · Show 2 · Share
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
avatar image Ludwant · Apr 14, 2015 at 11:20 AM 0
Share

Well, when I throw it, it acts normally. Only while I'm holding it does it pass through objects.

avatar image J-R-Wood · Apr 14, 2015 at 08:11 PM 0
Share

Ok what about ins$$anonymous$$d of using this script when you first pick it up have the script set it's position to an empty Gameobject that is in front of the player but then ins$$anonymous$$d of having this script make it a child object to the player keep the rigidbody and collider on it when you want to set it down just make a script to detach it from the player

avatar image
0

Answer by Ludwant · Apr 16, 2015 at 05:19 AM

Wow, it was a really stupid mistake: I had the smooth variable on the transform line set to 500 which completely made everything not work :D. Figured it out now, set it to 7..... Thank you so much for your suggestions though!

Comment
Add comment · Share
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

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Kinematic rigidbodies collision 0 Answers

Can I detect a trigger message between a trigger and a kinematic rigidbody? 1 Answer

Rigidbody and Parenting - Kinematic Rigidbodies? 2 Answers

How to perform grasp action on a cloth? 3 Answers

Kinematic Rigidbody Collider not colliding with Static Trigger Collider 3 Answers


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