So basically, I have one script that will take in all player tags, I want (based on the cameras location) to change each object differently. This code works, but they don’t work indivdually. If one object changes they all do. So could someone take a look and give me ONLY a hint!?
void Update ()
{
//Rotate the Camera around the player
//m_CameraPoint.transform.Rotate(Vector3.up * Time.deltaTime * 50);
for(int i = 0; i < m_PlayerObject.Length; i++)
{
//1 Layer(s) into the Parent
foreach (Transform child in m_PlayerObject[i].GetComponentsInChildren<Transform>())
{
if(child.name == "FrontSide")
m_TempFrontTransform = child;
if(child.name == "LeftSide")
m_TempLeftTransform = child;
if(child.name == "RightSide")
m_TempRightTransform = child;
if(child.name == "BackSide")
m_TempBackTransform = child;
//2 Layer(s) into the Parent
foreach (Transform childOfChild in child.GetComponentsInChildren<Transform>())
{
if(child.name == "Front")
m_TempFrontSide = childOfChild.gameObject;
if(child.name == "Left")
m_TempLeftSide = childOfChild.gameObject;
if(child.name == "Right")
m_TempRightSide = childOfChild.gameObject;
if(child.name == "Back")
m_TempBackSide = childOfChild.gameObject;
}
}
// After grabing all the values we need from the childs, we then check to see what is the closest side
// Show only the closest side
handleDirection(m_TempFrontTransform, m_TempLeftTransform, m_TempRightTransform, m_TempBackTransform,
m_TempFrontSide, m_TempLeftSide, m_TempRightSide, m_TempBackSide);
}
}
void handleDirection(Transform aTransformFront, Transform aTransformLeft, Transform aTransformRight, Transform aTransformBack,
GameObject aObjectFront, GameObject aObjectLeft, GameObject aObjectRight, GameObject aObjectBack)
{
float _DistanceFront = Vector3.Distance(m_Camera.transform.position, aTransformFront.localPosition);
float _DistanceLeft = Vector3.Distance(m_Camera.transform.position, aTransformLeft.localPosition);
float _DistanceRight = Vector3.Distance(m_Camera.transform.position, aTransformRight.localPosition);
float _DistanceBack = Vector3.Distance(m_Camera.transform.position, aTransformBack.localPosition);
//Taking all the sides, and finding the closest side
float _FinalDistance = Mathf.Min(Mathf.Min (_DistanceFront, _DistanceLeft), Mathf.Min(_DistanceRight, _DistanceBack));
if(_FinalDistance == _DistanceFront)
{
aObjectFront.renderer.enabled = true;
aObjectLeft.renderer.enabled = false;
aObjectRight.renderer.enabled = false;
aObjectBack.renderer.enabled = false;
}
if(_FinalDistance == _DistanceLeft)
{
aObjectFront.renderer.enabled = false;
aObjectLeft.renderer.enabled = true;
aObjectRight.renderer.enabled = false;
aObjectBack.renderer.enabled = false;
}
if(_FinalDistance == _DistanceRight)
{
aObjectFront.renderer.enabled = false;
aObjectLeft.renderer.enabled = false;
aObjectRight.renderer.enabled = true;
aObjectBack.renderer.enabled = false;
}
if(_FinalDistance == _DistanceBack)
{
aObjectFront.renderer.enabled = false;
aObjectLeft.renderer.enabled = false;
aObjectRight.renderer.enabled = false;
aObjectBack.renderer.enabled = true;
}
return;
}