NullReferenceException: Object reference not set to an instance of an object
Hi, I am pretty new to C# and unity at the start, I downloaded complete project from unity asset store and import in unity5.3, but I am getting error as follows. However it has bugged me for so long, that I couldn't get it over even after I research it over the internet.
NullReferenceException: Object reference not set to an instance of an object UNIPlayerManagerCOMSelection.Update () (at Assets/3rd Lib/OpenNI/Scripts/User Selector/Selectors/UNIPlayerManagerCOMSelection.cs:18)
Codes as bellow
using UnityEngine; using System.Collections;
public class UNIPlayerManagerCOMSelection : UNIPlayerManager { public float m_maxAllowedDistance = 100000.0f;//defines a maximum distance, we can't have depth farther than this. public float m_failurePenalty = 10000.0f;//Defines the penalty (in mm) for users who failed to track and have not moved. public float m_minCOMChangeForFailure = 200.0f;//The minimum change in COM needed to retry a failure public float m_hysteresis = 100;//Holds the hysteresis used.
protected override UNIPlayerCandidateObject GetNewUserObject (int userID)
{
return new UNIPlayerCOMCandidateObject(m_settingManager,userID);
}
public void Update()
{
foreach(UNIPlayerCandidateObject user in m_users)
{
UpdateUserPriority(user);
}
for(int i=0;i<m_users.Count ;i++)
{
UNIPlayerCOMCandidateObject bestUser = m_users[i] as UNIPlayerCOMCandidateObject;
int bestIndex =i;
for(int j = i+1;j<m_users.Count;j++)
{
UNIPlayerCOMCandidateObject curUser = m_users[j] as UNIPlayerCOMCandidateObject;
if(curUser.m_priority > bestUser.m_priority)
{
bestUser = curUser;
bestIndex = j;
}
}
if(bestIndex !=i)
{
m_users[bestIndex] = m_users[i];
m_users[i]= bestUser;
}
}
int numUsersToPlayers = Mathf.Min (m_players.Count,m_users.Count);//the actual number of users which are players
// first we will unselect all irrelevant players
for(int i=numUsersToPlayers;i<m_users.Count;i++)
{
int playerNum = GetPlayerIdFromUser(m_users[i]);
UnselectPlayer(playerNum);
}
//now we just have selected players so we need to select the good ones and put them in empty places
for(int i=0;i<numUsersToPlayers;i++)
{
int playerNum = GetPlayerIdFromUser(m_users[i]);
if(playerNum>=0)
continue;//it is already selected
for(int j = 0;j<m_players.Count ;j++)
{
if(m_players[j].Valid == false)
{
m_players[j].User = m_users[i];
m_players[j].User.SelectUser(m_numRetries);
break;
}
}
}
}
public override string GetSelectionString ()
{
return "User selector based on closet user";
}
protected void UpdateUserPriority(UNIPlayerCandidateObject user)
{
UNIPlayerCOMCandidateObject userCOM = user as UNIPlayerCOMCandidateObject ;
if(userCOM == null)
return; //irrelevant
Vector3 com = m_settingManager.UserGenerator.GetUserCenterOfMass(userCOM.OpenNIUserID);
userCOM.m_priority = com.z;
if(userCOM.m_priority >0)
{
userCOM.m_priority =-m_maxAllowedDistance ;//as far away as possible for an illegal value
}
if(user.PlayerStatus == UserStatus.Selected || user.PlayerStatus == UserStatus.Tracking)
{
userCOM.m_priority += m_hysteresis;
}
if(userCOM.PlayerStatus == UserStatus.Failure)
{
com -= userCOM.m_COMPosWhenFail;
if(com.magnitude < m_minCOMChangeForFailure)
{
userCOM.m_priority -= m_failurePenalty;
}
}
}
}
showing error in this line
foreach(UNIPlayerCandidateObject user in m_users)
Your answer
Follow this Question
Related Questions
How do I do head tracking with the kinect and unity? 0 Answers
How to instantiate an item when i catching it with kinect? 0 Answers
How can I track only a certain part of the body with Kinect 2 in Unity?? 0 Answers
Help Kinect SDK add in error! 0 Answers
Black screen when play test my Unity application Using Oculus Rift and Microsoft Kinect 1 Answer