• 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 albertofdb · Sep 13, 2014 at 09:10 PM · c#animationgameobjectroot motion

Moving gameobject with animation according to my script

I am developing a game with Unity3D with an horizontal list of elements which you can move with arrows. Here you can see an example:

example

I have created animations in order to modify the alpha value of the elements and to move them according to my script:

 void Update () {
     if (managePositionInUpdate) {
         transform.position = Camera.main.ScreenToWorldPoint (new Vector3 (Screen.width * positionX, Screen.height * positionY, 10));
     }
 }

In my animation, the alpha value of the centered element is initially 1 and after the animation the alpha value is 0.5, this works correctly; however, in this animation I have also put positionX of my script initially with a value A, and after the animation with a value B, and this doesn't work correctly.

I have tested the code and it works correctly without animation, but I can't get it works according to my animation. What can I do? I have read about apply root motion but It also doesn't work for me.

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 albertofdb · Sep 13, 2014 at 10:53 PM 0
Share

The answer was here: http://answers.unity3d.com/questions/194798/scripting-animated-variables.html

Animations always "take over" the control of the animated value (position / rotation / or a script value) because it always sets the value to an absolute value. However you still can affect the value but you have to decide what's the better solution in your case:

Use LateUpdate() to modify the value. Modify means you just scale the actual value instead of setting it to a new value. In LateUpdate all animation components have applied their values for thi frame and you can "overwrite" the value as you need it. For a single value animation you can use an [AnimationCurve][2] and [sample][3] it yourself in Update, scale / modify the sampled value and assign it yourself.

http://unity3d.com/support/documentation/ScriptReference/MonoBehaviour.LateUpdate.html [2]: http://unity3d.com/support/documentation/ScriptReference/AnimationCurve.html [3]: http://unity3d.com/support/documentation/ScriptReference/AnimationCurve.Evaluate.html

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

How to move an object in a looped path but in random speed in 3D?, or How to move an object in circular path in random speed each time? 1 Answer

Button animation state stays Pressed or Highlighted after disabling GameObject 0 Answers

Controlling an animation by dragging a gameObject with the mouse 0 Answers

Problem to play animation in C# 5 Answers

make parent of animated game object follow the game object's animation 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges