Hello, I have a problem with variable declaration. I already google it but doesn’t really know what the keyword would be and don’t find the answer, so I try to ask in this place instead. Sorry if the title is hard to understand…
So, I have this script:
public static CharacterDurability CountBoundary(CharacterDurability durability,PlayerHealth health)
{
CharacterDurability temp = durability;
CharacterDurability temp2 = durability;
CharacterDurability temp3 = temp2;
Debug.Log("durability1 =" + durability.stamina);
temp.stamina = durability.stamina + (durability.stamina * (health.Mood / 100)) * 20 / 100;
Debug.Log("durability2 =" + durability.stamina);
Debug.Log("temp2 =" + temp2.stamina);
Debug.Log("temp3 =" + temp3.stamina);
// durability changed after using formula above. I dunno how to make things work. Help!!
return temp;
}
The output is
durability1 = 80
durability2 = 92
temp2 = 92
temp3 = 92
And then I changed the formula to
temp.stamina = temp.stamina + (temp.stamina * (health.Mood / 100)) * 20 / 100;
But the value still same as before
I don’t want the values of durability to be changed (still 80), but I want to use variable temp with value of durability assigned. How can I do that? Please help me…
I’m using 5.4.0f3 personal edition, with visual studio
And using Wingdows 10 64 bit as OS…
Edit:
OK, I found the answer. What I need is change the temp declaration to this one
CharacterDurability temp = (CharacterDurability) durability.MemberwiseClone() ;
And it all work now.