Object reference not to set an instance of an object

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrophySpawner : MonoBehaviour
{
Player player;

float x1 = 0.012f;
float y1 = 0.1f;
float x2 =0.4f;
float y2 = 0.0000001f;

public void Update()
{
// generateRandomNumber(min, max);
enabled = true;
if (enabled == true)
{
TryToPlacePlayerAt(GetTrophyClicked());
enabled = false;
}
}

private Vector2 GetTrophyClicked()
{
Vector3 WorldTop = Camera.main.ViewportToWorldPoint(new Vector3(x1, y1, 0));
Vector3 WorldBase = Camera.main.ViewportToWorldPoint(new Vector3(x2, y2, 0));
Vector2 worldPos = new Vector2(Random.Range(WorldBase.x, WorldTop.x), Random.Range(WorldTop.y, WorldBase.y));
Vector2 gridPos = SnapToGrid(worldPos);
return gridPos;
}

private void TryToPlacePlayerAt(Vector2 gridPos)
{

var moneyCost = FindObjectOfType();
int playerCost = player.GetMoneyCost();
if (moneyCost.HaveEnoughMoney(playerCost))
{
SpawnTrophy(gridPos);
moneyCost.SpendingMoney(playerCost);
}
}

public void PlayerSelected(Player selectedPlayer)
{
player = selectedPlayer;
}

private Vector2 SnapToGrid(Vector2 rawWorldPos)
{
float newX = Mathf.Max(rawWorldPos.x);
float newY = Mathf.Min(rawWorldPos.y);

return new Vector2(newX, newY);
}

public void SpawnTrophy(Vector2 roundedPos)
{

Player newPlayer = Instantiate(player, roundedPos, Quaternion.identity) as Player;
}
}

Please Help me out

  1. Paste code using the “Code” button in the toolbar, so all the formatting is not lost.
  2. The error message from Unity includes the line number. Please include that in your post (and maybe study that line yourself and see if the answer becomes clear).
1 Like