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 JakeLeB · Jan 16, 2015 at 01:10 AM · photonfloatconvert

[CS0266] Cannot implicitly convert type 'object' to 'float'

I'm using PhotonNetwork and the TimeofDay script, my objective is to synchronize the time between players, I think I have the right coding except for one part. Receiving and setting the float to the GameObjects Component.

 using UnityEngine;
 using System.Collections;
 
 public class SyncTime : Photon.MonoBehaviour {
 
     public GameObject skyDome;
     float realTime;
 
     // Use this for initialization
     void Start () {
         realTime = GetComponent<TOD_Sky> ().Cycle.Hour;
     }
     
     // Update is called once per frame
     void Update () {
         if (photonView.isMine) {
             //Do nothing -- Character is mine
         } else {
             skyDome.GetComponent<TOD_Sky>().Cycle.Hour = realTime;
         }
     }
     
     public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) {
         if (stream.isWriting) {
             //Our player
             stream.SendNext (realTime);
         } else {
             //Their player
             realTime = stream.ReceiveNext(); //<------- ERROR IS HERE
         }
     }
 }
Comment
Add comment · Show 1
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 Swaggre · Jan 16, 2015 at 04:01 AM 0
Share

The error might be in the PhotonStream.ReceiveNext()

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by SilentSin · Jan 16, 2015 at 05:10 AM

realTime is a float.

stream.ReceiveNext() evidently returns an object.

The compiler doesn't know what type of object is being returned, so its giving you this warning.

You need to manually cast it to a float:

 realTime = (float)stream.ReceiveNext();
Comment
Add comment · 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
0

Answer by PAHeartBeat · Jan 16, 2015 at 12:56 PM

HI @JakeLeB,

I not aware much with photon network but as i read your post and answer of @SilentSin, PhotoStream.ReceiveNext() function is return object as result of functin.

I just suggest use float.TryParse() insted of force typecast

 float.TryParse(stream.ReceiveNext(),out realTime);

because I don't think stream.ReceiveNext function provide each time float value in object, some time it may be provide other kind of string like "00:15" in this case you doing force typecast to float it will again throw error, so it's safe to use float.TryParse(), using it if there are not float string or object received it's should convert it to value 0, and not throw any error. I also prefer to debug result of stream.ReceiveNext() befor typecast / parse it into float.

Comment
Add comment · 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

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

28 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

Related Questions

how to edit only specific part of text UI ? 2 Answers

convert float to color 1 Answer

GUI.Label shows volume from a slider 3 Answers

Convert Text to float 3 Answers

Convert a char to int / float 2 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