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 sequelator · Jul 05, 2016 at 12:49 PM · classfunctionsparameterscomponentsskills

Where should these functions be?

I am trying to make a skill system a bit dynamic. Currently I have a class named Skill that looks something like this.

 public class Skill: MonoBehaviour
 {
     //fields
     //properties
     //start
     //core functions
 }

However, there are some functionalities that can be used to “tweak” the skill sometimes.

For example, I might want to scale and change the color of some skills. I am pretty sure it justifies writing a function to handle that well instead of hard coding into every skill that might need it, but it is certainly not a core functionality.

If I put functions like this in the Skill class I feel that it will get clogged by situational things.

My current ideas are:

1 - Create a singleton SkillFunctions and throw those over there.

Let’s say there are 30 functions and every skill might end up using 1-2. Regardless of the number, there will be a reference to singleton instance anyway...so what’s the point? It get things more organized but wouldn’t that cost a lot of performance in Unity?

2 - Every functionality be a class, then I could AddComponent to the Skill gameObject whenever needed.

I don't know if I am doing something terribly wrong, but I cannot pass parameters that way as Monobehaviors should not have constructors. Example:

I could say changeColor but because every skill might want to change to a different color, having no control over the parameters would mean I could only change color to a predefined one, and not choose one on the spot...

To sum it up:

Should I have all possible things skills could do in the Skill class or is there a better way to do that in Unity?

Thank you

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

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.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Passing variable name into function from different script/animation event editor 0 Answers

How can i pass a method like a parameter Unity3d C#? 3 Answers

How to make objects without the new keyword 0 Answers

Custom class, Null Reference Exception 4 Answers

How to call a method from a class in a different script in c# 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