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 Claymore · Nov 24, 2013 at 03:28 PM · animationcube

Raycast play animation1 and then animation2

Hi,i made simple script,it plays animation when raycast hits cube. So problem is,what i want to do is : When i press "e" button cube play "Clip1" and WHEN i press again button "e" cube play animation "Clip2". Everything seems okey,but its not. Clip1 plays perfect but "Clip2" not. I done something wrong i know,can anyone help me?

    var Cube : GameObject;
     var Clip1 : AnimationClip;
     var Clip2  : AnimationClip;
     
     
     function Start()
     {
     Cube = GameObject.Find("Cube.This");
     
     }
 
     function Update()
     {
     if (Input.GetKeyDown(KeyCode.E))
     {
     var hit : RaycastHit;
     if (Physics.Raycast(transform.position, transform.forward, hit, 100.0F))
     {
     if(hit.transform.tag == "Cube")
     {
     print("First");
     Cube.animation.Play("Clip1");
     
     } else {
     
     print("Second");
     Cube.animation.Play("Clip2");
     
     }
     
     }
    }
   }

Something is wrong in else function.

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 diegzumillo · Nov 24, 2013 at 03:59 PM 0
Share

Curious. Despite having no identation at all, your code looks solid. Is everything else in your scene set up correctly? is Clip2 working properly? (you can quickly check that by swapping clip 1 for clip2 on this code)

1 Reply

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

Answer by Tomer-Barkan · Nov 24, 2013 at 05:17 PM

Your code is built differently than what you explain. It's built so that if you press 'e' (`if (Input.GetKeyDown(KeyCode.E))`), it checks whether or not the player is in front of the object tagged "Cube" (`if(hit.transform.tag == "Cube")`), and then plays clip1. If the player is in front of ANOTHER object, not "Cube" (`else`, line 24) - then play clip2.

What you want is a boolean that flips between clip1 and clip2 every time you press 'e':

 var isClip1 : bool;

 function Start() {
     Cube = GameObject.Find("Cube.This");
     isClip1 = true;
 }

 function Update() {
     if (Input.GetKeyDown(KeyCode.E)) { // check that 'e' is pressed
         var hit : RaycastHit;
         if (Physics.Raycast(transform.position, transform.forward, hit, 100.0F) && hit.transform.tag == "Cube") {  // check that raycast hit "Cube"
             if (isClip1) { 
                 Cube.animation.Play("Clip1"); // if bool play clip1
             } else {
                 Cube.animation.Play("Clip2");  // if not bool play clip2
             }
             isClip1 = !isClip1; // reverse bool so next time the other clip plays
         }
     }
 }
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

18 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

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

Animation Script Problem. 1 Answer

Field of view scripted animation curve 1 Answer

How to run an animation mouse click. 2 Answers

Player is running just few seconds 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