public static Vector3 DirectionUnitVector(Directions2D._directions direction, bool positive = false) { switch (direction) { case _directions.up: return(Vector3.up); case _directions.down: if (positive) { return(Vector3.up); } return(Vector3.down); case _directions.right: return(Vector3.right); case _directions.left: if (positive) { return(Vector3.right); } return(Vector3.left); } return(Vector3.zero); }
void Awake() { maxScaling = 3f; pinkCollider = GetComponent <BoxCollider> (); transform.localScale = startingScale; growDir = Directions2D._directions.down; branches = new GameObject[maxBranches + maxExtraBranches]; for (int i = 0; i < maxBranches + maxExtraBranches; i++) { branches [i] = null; } branchAt += Random.Range(-branchAtVariance, branchAtVariance); touchingOtherPinks = new GameObject[stopWhenTouching]; for (int i = 0; i < stopWhenTouching; i++) { touchingOtherPinks[i] = null; } pinkStorage = GameObject.Find("pink storage").transform; transform.SetParent(pinkStorage); hallwayMode = _hallwayMode.off; hallTriggersHit = new List <Collider> (); GameManager.numGrowths++; }
//ODOT make private? public static void MatchSign(Directions2D._directions direction, ref float input) { input = Mathf.Abs(input); if ((int)direction % 2 == 1) { input *= -1; } }
private void BranchBloom(Vector3 startPoint, float overshotBy = 0f, bool extraBranches = false) { Directions2D._directions newDir = NewBranchDirection(startPoint); Branch(startPoint, overshotBy, extraBranches, newDir); Branch(startPoint, overshotBy, extraBranches, Directions2D.OppositeDirection(newDir)); Debug.Log("Bloom called"); }
public static Directions2D._directions OppositeAxis(Directions2D._directions initialDirection) { if (initialDirection == Directions2D._directions.numDirections) { Debug.Log("Warning: Directions2D.OppositeAxis was passed \"numDirections\" as a direction."); return(Directions2D._directions.numDirections); } return((Directions2D._directions)((int)(initialDirection + 2) % (int)Directions2D._directions.numDirections)); }
/// <summary> /// Get value from vector for dimension corresponding to direction. /// </summary> /// <returns>Component of vector: y if direction up/down, x if right/left, else 0.</returns> /// <param name="direction">Direction.</param> /// <param name="rawVector">Raw vector.</param> public static float FlattenToDirection(Directions2D._directions direction, Vector3 rawVector) { if (direction == Directions2D._directions.numDirections) { Debug.Log("Warning: Directions2D.FlattenToDirection was passed \"numDirections\" as reference direction."); return(0f); } if ((int)direction < (int)Directions2D._directions.numDirections / 2) { return(rawVector.y); } else { return(rawVector.x); } }
public static Directions2D._directions OppositeDirection(Directions2D._directions initialDirection) { if (initialDirection == Directions2D._directions.up || initialDirection == Directions2D._directions.right) { return((Directions2D._directions)((int)initialDirection + 1)); } else if (initialDirection == Directions2D._directions.down || initialDirection == Directions2D._directions.left) { return((Directions2D._directions)((int)initialDirection - 1)); } else { Debug.Log("Warning: Directions2D.OppositeDirection was passed \"numDirections\" as a direction."); return(Directions2D._directions.numDirections); } }
public static float DistancePara(Vector3 point0, Vector3 point1, Directions2D._directions direction) { if (direction == Directions2D._directions.numDirections) { Debug.Log("Warning: Directions2D.DistancePerp was passed \"numDirections\" as reference direction."); return(0f); } Vector3 distance = point0 - point1; if ((int)direction < (int)Directions2D._directions.numDirections / 2) { return(Mathf.Abs(distance.y)); } else { return(Mathf.Abs(distance.x)); } }
private Pink Branch(Vector3 startPoint, float overshotBy = 0f, bool extraBranch = false, Directions2D._directions direction = Directions2D._directions.numDirections, _hallwayMode hall = _hallwayMode.off) { if (normalBranches == maxBranches) { Debug.Log("ERROR: attmepted to branch from pink object (" + this.name + ") when already at max branches"); return(null); } branches [branchCount] = Instantiate(pinkTemplate[0], startPoint, Quaternion.identity) as GameObject; Pink newBranchPink = branches [branchCount].GetComponentInChildren <Pink> (); if (direction == Directions2D._directions.numDirections) { Directions2D._directions newDir = NewBranchDirection(startPoint); newBranchPink.SetDirection(newDir); } else { newBranchPink.SetDirection(direction); } if (overshotBy >= 0.05f) { newBranchPink.AddGrowthBurst(overshotBy); } newBranchPink.hallwayMode = hall; branchCount++; if (!extraBranch) { normalBranches++; } newBranchPink.DEBUGHALL = false; return(newBranchPink); }
public static Vector3 DirectionalVector(Directions2D._directions direction, Vector3 rawVector) { Vector3 newVector = rawVector; if (direction == Directions2D._directions.numDirections) { Debug.Log("Warning: Directions2D.DirectionalVector was passed \"numDirections\" as reference direction."); newVector = Vector3.zero; } if ((int)direction < (int)Directions2D._directions.numDirections / 2) { newVector.x = 0f; Directions2D.MatchSign(direction, ref newVector.y); } else { newVector.y = 0f; Directions2D.MatchSign(direction, ref newVector.x); } return(newVector); }
void Awake() { pairDirection = Directions2D.FindDirection(gameObject.transform, pairedTrigger.transform); hallDirection = Directions2D.FindDirection(gameObject.transform, oppositeTrigger.transform); }
public void SetDirection(Directions2D._directions newDir) { growDir = newDir; }