|
@ -16,16 +16,35 @@ public class ParentBehaviour : MonoBehaviour |
|
|
|
|
|
|
|
|
public List<string> order = new List<string>(); |
|
|
public List<string> order = new List<string>(); |
|
|
|
|
|
|
|
|
|
|
|
public ParentBehaviour otherParent; |
|
|
|
|
|
|
|
|
|
|
|
public Texture2D[] parentBases; |
|
|
|
|
|
public Texture2D parentFaceNeutral; |
|
|
|
|
|
public Texture2D parentFaceHappy1; |
|
|
|
|
|
public Texture2D parentFaceHappy2; |
|
|
|
|
|
public Texture2D parentFaceAngry; |
|
|
|
|
|
public Texture2D parentFaceTalk; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[ContextMenu("Get Random Child")] |
|
|
[ContextMenu("Get Random Child")] |
|
|
public void GetRandomChild() |
|
|
public void GetRandomChild() |
|
|
{ |
|
|
{ |
|
|
int _childIndex = Random.Range(0, babySpawner.transform.childCount); |
|
|
|
|
|
|
|
|
|
|
|
child = babySpawner.transform.GetChild(_childIndex).gameObject; |
|
|
|
|
|
|
|
|
|
|
|
//CHECK IF OTHER PARENT WANTS THIS CHILD (if otherParent.child == child)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool _validChild = false; |
|
|
|
|
|
while (!_validChild) |
|
|
|
|
|
{ |
|
|
|
|
|
int _childIndex = Random.Range(0, babySpawner.transform.childCount); |
|
|
|
|
|
|
|
|
|
|
|
child = babySpawner.transform.GetChild(_childIndex).gameObject; |
|
|
|
|
|
|
|
|
|
|
|
if (otherParent.child != null) |
|
|
|
|
|
{ |
|
|
|
|
|
if (child != otherParent.child) |
|
|
|
|
|
{ |
|
|
|
|
|
//this prevents both parents asking for the same child
|
|
|
|
|
|
_validChild = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
Randomizer _childRandomizer = child.GetComponent<Randomizer>(); |
|
|
Randomizer _childRandomizer = child.GetComponent<Randomizer>(); |
|
|
|
|
|
|
|
|
baseVis = _childRandomizer.baseObj.GetComponent<MeshRenderer>().material.mainTexture; |
|
|
baseVis = _childRandomizer.baseObj.GetComponent<MeshRenderer>().material.mainTexture; |
|
@ -39,19 +58,76 @@ public class ParentBehaviour : MonoBehaviour |
|
|
order.Insert(Random.Range(0, order.Count), "eye"); |
|
|
order.Insert(Random.Range(0, order.Count), "eye"); |
|
|
order.Insert(Random.Range(0, order.Count), "top"); |
|
|
order.Insert(Random.Range(0, order.Count), "top"); |
|
|
order.Insert(Random.Range(0, order.Count), "bottom"); |
|
|
order.Insert(Random.Range(0, order.Count), "bottom"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
foreach (string item in order) |
|
|
|
|
|
|
|
|
public bool CheckChild(GameObject _child) |
|
|
|
|
|
{ |
|
|
|
|
|
if (_child == child) |
|
|
{ |
|
|
{ |
|
|
print(item); |
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Texture GiveDetails(GameObject _child) |
|
|
|
|
|
{ |
|
|
|
|
|
for (int i = 0; i < order.Count; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
switch (order[i]){ |
|
|
|
|
|
case "base": |
|
|
|
|
|
if (child.GetComponent<Randomizer>().baseObj.GetComponent<MeshRenderer>().material.mainTexture != baseVis) |
|
|
|
|
|
{ |
|
|
|
|
|
return baseVis; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case "hat": |
|
|
|
|
|
if (child.GetComponent<Randomizer>().hatObj.GetComponent<MeshRenderer>().material.mainTexture != hatVis) |
|
|
|
|
|
{ |
|
|
|
|
|
return hatVis; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case "eye": |
|
|
|
|
|
if (child.GetComponent<Randomizer>().eyeObj.GetComponent<MeshRenderer>().material.mainTexture != eyeVis) |
|
|
|
|
|
{ |
|
|
|
|
|
return eyeVis; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case "top": |
|
|
|
|
|
if (child.GetComponent<Randomizer>().topObj.GetComponent<MeshRenderer>().material.mainTexture != topVis) |
|
|
|
|
|
{ |
|
|
|
|
|
return topVis; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case "bottom": |
|
|
|
|
|
if (child.GetComponent<Randomizer>().bottomObj.GetComponent<MeshRenderer>().material.mainTexture != bottomVis) |
|
|
|
|
|
{ |
|
|
|
|
|
return bottomVis; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void OnTriggerEnter(Collider other) |
|
|
|
|
|
{ |
|
|
|
|
|
if (other.gameObject.tag == "child") |
|
|
|
|
|
{ |
|
|
|
|
|
if (CheckChild(other.gameObject)) |
|
|
|
|
|
{ |
|
|
|
|
|
//this is the correct child
|
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
Texture _displayGraphic = GiveDetails(other.gameObject); |
|
|
|
|
|
//display the display graphic
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |