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 Guzaii · Oct 12, 2013 at 07:13 PM · c#animationtriggerkeypress

play animation on keypress if in range

I dont seem to get this right at all.. Im trying to get/make a script that does, so when you are in range of an object with an animation (like a door), you press like "D", and the door should open (Play the animation). I've had some help before, but it didnt seem to work. Here is the script i got as help, which didnt work:

 public class AnimationTest : MonoBehaviour
 {
     
     private Animation _anim;
     private bool closeEnough = false;
 
     void Start()
     {
         _anim = this.GetComponent<Animation>();
     }
  
     void Update()
     {
         if (Input.GetKeyDown("k") && closeEnough == true)
         {
             _anim.Play("Gate");
         }
     }
  
     void OnGUI()
     {
         if (Vector3.Distance(targetObject.transform.position, player.transform.position) < desiredDistance)
         {
             GUI.Label(new Rect(10, 10, 200, 20), "[k]");
             closeEnough = true;
         }
     }
 }

And it would be nice having like a range of 5 or something.

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 d112570 · Oct 12, 2013 at 07:26 PM

Try using the Collider, for example if you have a sphere, set the sphere collider Range to 5 and set "Is Trigger" to True, so when your inside the collider and press k, the script will activate, I use this same method for sounds and doors. Script should be attached to the collider.

Something like this

 void OnTriggerStay(Collider theCollider) {
         if(Input.GetKeyDown(KeyCode.E)) {
         doSomething
 }}
Comment
Add comment · Show 9 · 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 Guzaii · Oct 12, 2013 at 07:40 PM 0
Share

That might help :) But the script i got dosnt work.. It has a problem with the $$anonymous$$onoBehavier...

avatar image Guzaii · Oct 12, 2013 at 07:50 PM 0
Share

The script dosnt work :(

avatar image d112570 · Oct 12, 2013 at 07:52 PM 0
Share

I'll post my whole door script, you can use it how ever you like. For your script you can replace the destination part if not needed, ins$$anonymous$$d of destination, let it play an animation. $$anonymous$$ake your you rename the EnterDoor to your fittings in the $$anonymous$$onoBehavior area to the same name as the script.

 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 public class EnterDoor : $$anonymous$$onoBehaviour {
     
     public Transform      destination;
     public AudioClip      doorSound;
     public float         outdoorSound;
 
     void OnTriggerStay(Collider theCollider) {
         if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.E)) { // Activate when key is pressed
             theCollider.transform.position = destination.position; // move to new destination
             audio.PlayOneShot(doorSound); // Play door sounds
         }
     }
 }
avatar image Guzaii · Oct 12, 2013 at 07:57 PM 0
Share

Im not the best to C#.. im use to JS.. So its a little hard to understand :)

avatar image d112570 · Oct 12, 2013 at 08:01 PM 0
Share

very well, try this Java version.

 var levelName : String;
 function OnTriggerStay(theCollider : Collider) 
 
     {
         if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.$$anonymous$$)) {
             audio.Play();
         }
     }
 

make sure your standing inside the collider for it to work.

Show more comments
avatar image
0

Answer by Brock Beaudry · Oct 12, 2013 at 08:30 PM

Brackeys has a video tutorial which will walk you through setting up this scenario: Door Tutorial

Cheers

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 InfernoZYB · Oct 12, 2013 at 10:44 PM

Make a cube and resize it the the size you want the range to be then put trigger on it then in the code put if collider blah blah blah

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

Animation will only play once with mouse click and key press, i want it to play anytime these are pressed together.,animation will only play once, but wont play at all if another animation plays first. 0 Answers

C# - Trigger Animation with Raycasting? 1 Answer

Rotate similar child objects around own origin 2 Answers

Attaching multiple animation events to player 1 Answer

Trigger transition to another animation. 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