Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by Pajgla · Mar 11, 2016 at 03:33 PM · scripting problemfunctionnameclass instance

Problem about finding script name

Hi all, i am struggling with this problem for very long time and i have never found right solution. So, let me explain my problem ( i don't know how good will you understand because my English is not so good) :

I have a game where player click on a icon of monster he wants to spawn from his base, and that monster (or monsters) go right to enemy base. They deal damage buy colliding or with arrows if they are ranged, but let get on problem - I have base class for all of that monsters ( Called BaseMonster ) and in that class, i have TakeDamage function, but i have unique script for all of my monsters because some of them have reduced damage etc. Problem is, when monsters collide, i can't know exactly name of the script, but i can not use 'SendMessage' because i need more then one parameter for that function.

I hope someone will give me right answer, i really need solution for this problem

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 amimox · Mar 11, 2016 at 04:32 PM

Maybe this can help :

 //Colliding method in your Base Monster class
 void OnTriggerEnter(Collider  other)
 {
 //Just take damage if what collided with the monster is an Arrow, for example
    if (other.ComparTag("Arrow")
          TakeDamage(123);
 }

Do you mean your MonsterBase class is controlling all your monster health ? If that is true, your approach is incorrect. Instead, you should Instantiate a new Monster each time you want to spawn a Monster, like this.

 Instantiate(monsterGameObjectPrefab, position, roration);

monsterGameObjectPrefab will be an object you already defined in Unity and that you made a prefab of it. If you don't know about what I am talking, then read Unity documentation about Prefabs.

Comment
Add comment · Show 3 · 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 Pajgla · Mar 11, 2016 at 04:47 PM 0
Share

$$anonymous$$y $$anonymous$$onsterBase is just a base class, i inherited each monster script from that class. As said, i can't directly call function ( like TakeDamage in your comment ) because i need to know name of the script first. I do not have any other idea how to do this, but i am opened for advices

avatar image amimox Pajgla · Mar 11, 2016 at 04:50 PM 0
Share

Name of the script ? What do you mean ?

avatar image Pajgla · Mar 11, 2016 at 05:00 PM 0
Share

Example : Enemy monster collided with player monster - from enemy monster script ( let we call it 'Enemy$$anonymous$$onsterScript' ) i need to call function TakeDamage but archer and knight have two different scripts ( but they are both inherited from same class - Base$$anonymous$$onster ). I can use switch statement but i am sure there is better approach. Thanks for response anyway

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

53 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

Related Questions

Script not returning value to other script 1 Answer

Function won't be called 1 Answer

[SOLVED]My code line don't execute 1 Answer

calling a value between 2 scripts 0 Answers

The type or namespace function could not be found 1 Answer


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