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 Chris50o · May 18, 2017 at 09:00 AM · c#programming

Non-MonoBehaviour object can access to its functions or interact with a MonoBehaviour'ed object in someway?

I have 3 CSharp files: ProyectileMono, Proyectile and Arrow.

Arrow inherits Proyectile, and ProyectileMono controls how it moves

 public class ProyectileControl : MonoBehaviour{
 
     private GameObject targetPlayer;
     //Player who spawned this proyectile
     public Proyectile thisProyectile;  //this gets initialized inmediatly when a player spawns a proyectile.
     public bool wasFacingRight;
     private float direction;
 
     void Start ()
     {
         Destroy (gameObject, 3); //Auto destroy it in 3 seconds if nothing was impacted.
         GetComponent<SpriteRenderer> ().flipX = (wasFacingRight) ? false : true; //If the player who spawned this proyectile was facing right, then just flip the sprite.
         direction = (wasFacingRight) ? thisProyectile.movementSpeed : -thisProyectile.movementSpeed;  //If player was facing right or left, move this proyectile to the correct direction.
     }
 
     void Update ()
     {
         GetComponent<Rigidbody2D> ().velocity = new Vector2 (direction, GetComponent<Rigidbody2D> ().velocity.y); //Add velocity to the proyectile. (velocity on Y is currently unused.
     }
 
     void OnTriggerEnter2D (Collider2D collider)
     { //If proyectile hits a collider or pass through one
         if (collider.tag == "Enemy") { //If collider is an enemy
             collider.gameObject.GetComponent <EnemyAI1> ().Damage (thisProyectile.damage); //Damage the enemy 
             Destroy (gameObject); //and then destroy it.
         } else if (collider.tag == "Wall")   //If collider is a wall
             Destroy (gameObject);        //Then just destroy this proyectile
     }
 }

 public class Proyectile
 {
     
     public float movementSpeed{ get; protected set; }
 
     public float damage{ get; protected set; }
 
 }

 public class Arrow : Proyectile {
 
     public Arrow(){
         movementSpeed = 7;
         damage = 13;
     }
 
 }

The problem is that using this, I can't interact with MonoBehaviour's methods/functions, such as GetComponent<>(), Destroy(), etc. inside of Proyectile or even in Arrow's class.

I wasn't having problems using this method, but I found that I really need some MonoBehaviour's methods like GetComponent or gameObject.AddComponent and add an animation, because I want to animate some proyectiles.

My question is this: Do I have to use a MonoBehaviour for every single thing I want to use Instead? For example, I have coded the same way my enemies, but I can use a method on its base class (Enemy class) called "DoDamage()" and execute an animation or interact with its transform or something. Do I need to create a Mono for Enemy1, Enemy2, Enemy.... for especific code for the same function "DoDamage()" and someother actions, and then a EnemyControl for just movement or common functions? OR There is actually a way to interact with objects with MonoBehaviours with out being one?

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

355 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 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 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 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 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 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 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

Object with rigidbody2D doesn't move when it's supposed to, 0 Answers

Help with pause menu? 0 Answers

Setting up a New Data Type - Am I Doing Something Wrong? 1 Answer

How to add alternate idle directions to a top-down game 0 Answers

Gameobject wont set active 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