- Home /
player prefab messing up the scores
This is very confusing to me so I am going to try and explain it the best I can.
Right so I am implementing a score system. When the players bullet hits the enemy, the player gains a point. The script for this is on the enemyCollision script. I check for when the 'playersProjectile' hits the enemy the player gains a point and it destroys the enemy gameObject. The score variable is in the playerControls script.
the code for the enemyCollsion looks like this:
var playerScript : MoveAroundJS;
function Start ()
{
}
function Update ()
{
}
function OnTriggerEnter(hit : Collider)
{
if(hit.gameObject.tag == "playerProjectile")
{
playerScript.enemiesKilled = playerScript.enemiesKilled + 1;
Destroy(gameObject);
}
}
And heres a snippet from the playerControls script, showing the variable declared at the top and then the update function on how it's used.
public var enemiesKilled : int = 0;
enemiesKilled += 0;
print(enemiesKilled);
I then drag and drop the player prefab on to the enemy prefab so that it gains access to the script. And then I place the player in the game. The problem I am getting is that the score is being placed on the prefab and not the in game character.
Since many hours of playing around I decided maybe it's best to spawn a player at the game start as a pose to placing it in the level. This means the prefab is in the game. However this gives the same problem.
Seriously can anyone help, I am extremely stuck and have no idea what's causing it.
On a side not, because the enemy has a bullet spawn point by it's gun, if the players projectile hits that, it adds two points instead of one.
Answer by MindFactoryStudios · Nov 25, 2012 at 09:58 PM
If I understand correctly, you should try to get the script attached to the player at runtime. Get a reference to the player by GameObject.Find either by tag or name and then use GetComponent(Script) to have a direct reference to it. That way you are changing the variable directly and not touching the prefab.
http://docs.unity3d.com/Documentation/ScriptReference/Component.GetComponent.html
http://docs.unity3d.com/Documentation/ScriptReference/GameObject.Find.html
Your answer
Follow this Question
Related Questions
Spawning Player After Player Choice. 1 Answer
Move Player to new scene without it resetting. 1 Answer
Initiating a rich prefab runtime 0 Answers
Cloud recognition in Vuforia 0 Answers
UNITY: Play ingame statistics? 1 Answer