Error CS0266 with my clicker game
I have this issue with this one script and get the UpgradeManager.cs(19,31): error CS0266: Cannot implicitly convert type float to int. An explicit conversion exists (are you missing a cast?) I can't see where I'm trying to convert these two types and I'm not trying to. But any help would be appreciated as I looked around and all the errors that people have is based on animation or transforming things etc not this. EDIT: using Unity 5.0.0f4
using UnityEngine;
using System.Collections;
public class UpgradeManager : MonoBehaviour {
public Click click;
public UnityEngine.UI.Text itemInfo;
public float cost;
public int count = 0;
public int clickPower;
public string itemName;
private float _newCost;
void Update(){
itemInfo.text = itemName = "\nCost: " + cost + "\nPower: +" + clickPower;
}
public void PurchasedUpgrade(){
if (click.gold >= cost) {
click.gold -= cost;
count += 1;
click.goldperclick += clickPower;
cost = Mathf.Round (cost * 1.15f);
_newCost = Mathf.Pow (cost, _newCost = cost);
}
}
}
Answer by ScaniX · Sep 09, 2016 at 01:05 PM
A quick search on this site revealed some hits including this one: http://answers.unity3d.com/questions/1005115/cannot-implicitly-convert-type-float-to-int-an-exp-1.html
You did not attach the Click script, but I guess click.gold is an int? So you should change your line to:
click.gold -= (int)cost;
In addition I don't think it makes much sense to have the amount of gold as an int and the cost as a float. They should probably be both int (or float).
Your answer
Follow this Question
Related Questions
Optimization Question - Floats or Ints? 0 Answers
Adding a int and a float? 2 Answers
Help with float and int,Help with float and integer 0 Answers
Color float rgb values cannot be converted correctly to int, and hex. 1 Answer
Int not getting rounded data 0 Answers