// Use this for initialization void Start () { // Create the snake head. mHead = (GameObject) Instantiate(prefab, transform.position, transform.rotation); mNextSnakeSegmentBehavior = mHead.GetComponent<SnakeSegmentBehavior>(); mNextSnakeSegmentBehavior.init(0, transform.forward); //force cycle distance dependency. mMoveTimeDelay = speed / cycleDistance; //Acquire Camera for directions mStereoCamera = transform.FindChild("Head").FindChild("Main Camera"); //Initialize Scoring text InitScoreText(); }
// Add new end to the snake. public void addNewSnakeSegment(int stackPosition, Vector3 position, Quaternion rotation, Vector3 newForward) { //Increment the position stackPosition++; Vector3 oldForward = transform.forward; transform.forward = newForward; Vector3 lastPosition = transform.position; transform.position = position; if(isNotTail()) { //Not tail, so propogate call. mNextSnakeSegmentBehavior = mNextSegment.GetComponent<SnakeSegmentBehavior>(); mNextSnakeSegmentBehavior.addNewSnakeSegment(stackPosition, lastPosition, rotation, oldForward); } else { //Is tail so create a new tail. mNextSegment = (Transform) Instantiate(transform, lastPosition, rotation); mNextSnakeSegmentBehavior = mNextSegment.GetComponent<SnakeSegmentBehavior>(); mNextSnakeSegmentBehavior.init(stackPosition, oldForward); } }