Hi,
When I start my game I get this error:
NullReferenceException: Object reference not set to an instance of an object
PlayerAttack.Start () (at Assets/Standard Assets/Scripts/PlayerAttack.cs:19)
And I don’t know why. I don’t have much experience in programming, so it might be a very noobish question
Basically I am trying to get a List from another script (PlayerKnowledge), then copy the content into a new List<>Knowledge here in the PlayerAttack script, so I can later on iterate through the content, and if something is equal to a specific string, then a specific attack should happen.
Here is the code:
public class PlayerAttack : MonoBehaviour {
private PlayerKnowledge playerKnowledge;
private List<string> knowledge = new List<string>();
// Use this for initialization
void Start () {
//This is the line where the error occurs
var know = playerKnowledge.knownNames;
//And if someone knows how to print out content of a List,
// I would be grateful to know :P
Debug.Log("know returns" + know);
if(know != null){
knowledge.AddRange(know);
Debug.Log("knowledge !null returns: " + knowledge);
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class PlayerKnowledge : MonoBehaviour {
public List<string> knownNames;
public GameObject item;
private GameObject book;
// Use this for initialization
void Start () {
var knownNames = new List<string>();
knownNames.Add("Test");
Debug.Log("PlayerKnowledge Start: " + knownNames);
}
// Update is called once per frame
void Update () {
if(Input.GetKey(KeyCode.R)) {
readBook();
}
}
//reads the targeted book
private void readBook() {
BookFolklore bf = (BookFolklore)item.GetComponent("BookFolklore");
string name = bf.bookName;
knownNames.Add (name);
}
}
Anyone who can help me with this? Let me know if you need more information.