Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 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 chrisd313 · Mar 05 at 10:29 PM · 2dmovementtransformrigidbody2ddash

Dash in the direction of a parents child object

Hi everyone, I'm putting together 2D character controller that will work with both keyboard/mouse and an Xbox controller and I am trying to implement a dash function. So far, I seem to have it working for the controller input, but struggling with keyboard/mouse.

Currently, my Player gameobject has a cross hair (labelled 'hitDetector' in the script) attached to it, which rotates around the players circumference (using the left joystick on controller and the mouse position on keyboard/mouse). This directs the players attack and dash direction.

alt text

This works fine for the controller inputs and the player is dashing as expected, but over the past two days I just cannot get it working for keyboard and mouse. I'm getting a variety of issues, such as the dash being restricted to particular circumference and the dash distance multiplying itself way more than it should. Can anyone please glance at my code and see where I am going wrong or how to better implement it? Below is the dash code which sits in fixed update.

         if (isDashing)
         {
             if (useController)
             {
                 Vector3 dashPosition = transform.position + lastMoveDirection * dashDistance;
 
                 RaycastHit2D raycastHit = Physics2D.Raycast(transform.position, lastMoveDirection, dashDistance, dashLayerMask);
                 if (raycastHit.collider != null)
                 {
                     dashPosition = raycastHit.point;
                 }
 
                 rb.MovePosition(dashPosition);
                 isDashing = false;
             }
             else
             {
                 Vector3 dashPosition = new Vector3(hitDetector.transform.localPosition.x, hitDetector.transform.localPosition.y);
                 dashPosition.Normalize();
 
                 RaycastHit2D raycastHit = Physics2D.Raycast(transform.position, lastMoveDirection, dashDistance, dashLayerMask);
                 if (raycastHit.collider != null)
                 {
                     dashPosition = raycastHit.point;
                 }
 
                 rb.velocity = dashPosition * dashDistance;
                 isDashing = false;
             }
         }
dash.png (28.4 kB)
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 highpockets · Mar 05 at 10:51 PM 0
Share

One thing that doesn’t seem right about this is the dashPosition is normalized based on the localPosition of the hitDetector and that value will be very different from the other case where dashPosition gets set to the world hit point of the raycast. I don’t know what the expected behaviour is there, but that seems like you would get very different results depending on which one gets used.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Monsoonexe · Mar 08 at 04:17 AM

Vector3 direction = destination - origin;

It helps to think about it in terms of a Vector1 (just an integer). If you're at 1, and you want to get to 6, how much and which direction do you need to travel? 5 = 6 - 1, so you need to move +5. Vector3 is just 3 floats, so it's the same idea.

So if you use your pointer's position in world space as the destination, and the character's position as the origin, you can find the direction.

Another method is transform.Forward, which gives you the direction of the blue arrow gizmo in WorldSpace.

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

362 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

[Solved] Rigidbody2d smooth movement 1 Answer

2D Game, Character Slides off Slopes, Need to be Able to Walk on Them 1 Answer

Problem when rotating sprite and moving it foward 1 Answer

Sprite moving too far/fast 1 Answer

Multiple GameObjects moving in circular path 0 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