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 Andrew138 · Oct 27, 2013 at 10:35 PM · instantiateshootingparameters

Pass parameters to an instance

I want to make my character shoot an arrow. I have "shooting_script" script assigned to my character, that will instantiate an arrow from arrowprefab. An arrow has "arrow_script" assigned, that will control its rotation and trajectory during flight. The question is, what is the best way to pass angle and force parameters to "arrow_script" after instantiating arrow from "shooting_script"?

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by fafase · Oct 27, 2013 at 10:39 PM

Using GetComponent seems the way.

Considering you control only one arrow at a time:

 arrow_script _arrowScript;
 public GameObject arrow;
 public float maxTime; // This to avoid light speed if pressing too long
 void CreateArrow(float time)
 {
     GameObject obj = (GameObject)Instantiate(arrow);
     _arrowScript = obj.GetComponent<arrow_script>();
     _arrowScript.time = Mathf.Clamp(time,0,maxTime);
 }

Now anywhere else in your script you can play with the arrow_script using the reference. When a new arrow is created the previous one is overwritten and now you can control the new one.

EDIT: I modified a little the answer above but it is what it is the period of time the user is pressing you are after.

 float _timer = 0;
 void Update(){
    if(Input.GetButton(KeyCode.Space))_timer +=Time.deltaTime;
    if(Input.GetMButtonUp(KeyCode.Space))
    {
        CreateArrow(_timer);
        _timer = 0;
    }
 }
Comment
Add comment · Show 2 · 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 Andrew138 · Oct 27, 2013 at 11:18 PM 0
Share

Never tought I'll recieve an answer so fast, thank you. I have a temporary solution right now, in which I can shoot lots of arrows with no problem. I use Quaternion.Euler to set an angle for instantiated arrow and control its flight with fixed force.

The problem stays, i want to shoot it that way but i want the force to be calculated depending on how long the shooting button been held by the player. So i need a way to pass it to the "arrow_script".

avatar image fafase · Oct 27, 2013 at 11:21 PM 0
Share

This is a total different issue, you are not looking for an angle but just for a period.

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

15 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

Related Questions

My shooting system wont work, help 1 Answer

Shooting Cannons from a boat 1 Answer

Issue with Timed Shooting in C# 1 Answer

Control amount of bullets 2 Answers

Field of view not working correctly, firing from behind 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