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 Christian.Tucker · Sep 12, 2013 at 07:29 PM · return type

Cannot implicitly convert type `System.Action' to `bool'

Special Thanks to Marrrrk for this example script:

 using UnityEngine;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 
 public class SelectionManager
 {
     public List<Unit> _selection = new List<Unit>();
       
     public Action<Unit> UnitSelected;
     public Action<Unit> UnitDeselected;
    
     public void Select(Unit unit)
     {
         if (_selection.Contains(unit))
             return;
               
         _selection.Add(unit);
           
         if (UnitSelected)
             UnitDeselected(unit);
         
     }
       
     public void Deselect(Unit unit)
     {
         if (!_selection.Contains(unit))
             return;
               
            _selection.Remove(unit);
        
         if (UnitSelected)
             UnitSelected(unit);
     }
       
     public static SelectionManager Default = new SelectionManager();
 }


There error is when the following line is called if (UnitSelected) UnitSelected(unit);

I've never used List's of Action's before, and I can't quite figure this out, so thanks for any help.

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
Best Answer

Answer by ArkaneX · Sep 12, 2013 at 07:43 PM

I guess that this if is there to check if particular action was assigned and is not null. In this case you have to change it to:

 if(UnitSelected != null)
 {
     UnitSelected(unit);
 }

and the same with the UnitDeselected.

Also, please note that you have an error inside Select method - in if condition you check UnitSelected and then you call UnitDeselected.

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 Christian.Tucker · Sep 12, 2013 at 08:41 PM 0
Share

Alright, I'll look into it. Like I said, I honestly have no idea how this script works, and considering it's NOT WOR$$anonymous$$ING at the moment, I can't really study it to figure out the functionality. I've never used the Unit class before, so I guess I'm going to have to look into that as-well.

avatar image ArkaneX · Sep 12, 2013 at 09:29 PM 0
Share

I don't know what this Unit class is as well, but in context of this script it doesn't really matter. You have two variables defined there with type Action. Action is a delegate which is able to call a method with a single parameter. Please read a bit more about it on $$anonymous$$SDN page.

If you don't assign anything to for example UnitSelected variable, then nothing special happens. But if you assigned some method to UnitSelected, e.g. Warcry, then after selecting, Warcry method will be called. The page I linked above explains it a bit better than I :)

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

16 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

Related Questions

Plane grid system resource demanding 1 Answer

Return animation to original position? 1 Answer

Returning new class from a method not working 1 Answer

Is Unity Basic Allow to publish application on App Store? 1 Answer

How to make a "Type" variable? 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