Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 2kamrd15 · Nov 20, 2016 at 01:43 PM · collisioncollidermobilecollision detectionridgidbody

How to make arrow stick to environment ?

Hi All,

I am currently making a mobile game. the game is an archery game, where you use the gyro in your phone to aim and tap the screen to shoot. I am currently having trouble with getting my arrows to stick to the target board? Any ideas ?

 void Update()
 {
     if (Input.touchCount > 0 && Time.time > nextFire)
     {
         foreach (Touch touch in Input.touches)
         {
             if (touch.phase == TouchPhase.Began)
             {
                 Fire();
             }
         }
         nextFire = Time.time + fireRate;
     }
 }
 void Fire()
 {

     var Arrow = (GameObject)Instantiate(Arrows, ArrowSpawn.position, ArrowSpawn.rotation);
     Arrow.GetComponent<Rigidbody>().velocity = Camera.main.transform.forward * Velocity;


     //Destroy(Arrow, 5.0f);
 }

void Oncollisionenter(Collision collision) { //Need to some how get instantiated arrows and make the arrow a child of the target? //or maybe make it kinematic(however, i wanna make moving targets so would cause problems) // or just stop velocity

}

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

3 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by calebmaskew · Nov 20, 2016 at 03:43 PM

If just making the arrow a child of the target is your main issue, the easiest way I've found to do so is to set the parent of the arrow's transform to the transform of the target. This would be in your arrow behavior script:

 void OnCollisionEnter(Collider other){
   //other here being the target
   transform.parent = other.gameObject.transform;
 }

In this case, there shouldn't be a need to destroy the arrow, and making it kinematic should be considered if you don't want it to be affected by further physics forces.

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
avatar image
1

Answer by Dibbie · Nov 20, 2016 at 03:23 PM

On collision of your arrow, you could do a few things: 1. Set the velocity of the arrow to zero 2. Turn off "use gravity" (or the entire Rigidbody) 3. Freeze all the constraints of the Rigidbody

Doing 1 and 2, or 1 and 3, essentially pauses/removes the physics that makes it move, so it appears "stuck" where it landed

For moving targets, youd then want to do a combo of those steps as mentioned, but then also parent the arrow to the collision game object hit.

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
avatar image
0

Answer by 2kamrd15 · Nov 21, 2016 at 07:21 AM

Thank you both, I manged to figure it out and i did exactly that. On collision i made the arrow kinematic and the made it a child of the object, allowing me to also make targets move while the arrow is still attached.

Would you have any idea how I could implement, drag down and release to adjust power. So when i drag down it would create a force and then on release it would release?? I was think that this might be down with using the different touch phases @Dibbie @calebmaskew

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Collision does not work, player can walk through walls 4 Answers

my thing keeps going through walls, but ridged bodies can touch the collider 0 Answers

Cubes wont Collide 1 Answer

I am trying to create all elements in the scene from one script at run time. How do I detect collisions between the enemy and the coin without having to create another script for each item? 0 Answers

How to decrease the speed of the player by some fraction after triggering the box collider? 2 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