protected override void Release() { if (IsKeyNode()) { ViewFactory.ReleaseView(this); } m_next = null; m_data = null; m_playerData = null; }
public void Create(int index, PlayerData playerData, Transform container) { m_playerData = playerData; m_data = playerData.snakeData; m_index = index; if (IsKeyNode()) { if (this is SnakeHead) { ViewFactory.CreateView("snake/" + m_data.id + "/head", "snake/0/head", this, container); } else if (this is SnakeTail) { ViewFactory.CreateView("snake/" + m_data.id + "/tail", "snake/0/tail", this, container); } else { ViewFactory.CreateView("snake/" + m_data.id + "/node", "snake/0/node", this, container); } } }
void SpawnSnake(SnakeData snake) { GameObject snakeContainer = GetNPSnake(snake.name, snake.id); GameObject newHead = snakeContainer.transform.GetChild(0).gameObject; //Non player snakes follow their targets for lerping reasons Transform target = newHead.transform.GetChild(0); NPSnakeHead snakeHeadManager = newHead.GetComponent <NPSnakeHead>(); newHead.transform.GetChild(1).gameObject.GetComponentInChildren <Text>().text = snake.name; snakeHeadManager.snakeData = snake; //Set all nessary data for new snake newHead.transform.GetComponent <SpriteRenderer>().color = snake.color; newHead.transform.position = snake.pos; //newHead.transform.up = snake.dir; target.position = snake.pos; target.transform.up = snake.dir; //Spawn all body segments based on snake length for (int i = 0; i < snake.length - 1; i++) { GameObject newSegment = GetSegment(snakeContainer.transform); var newColor = snake.color; newColor.a = GlobalConsts.SEGMENT_TRANSPARINCY; newSegment.GetComponent <SpriteRenderer>().color = newColor; newSegment.GetComponent <TrailRenderer>().colorGradient = GetGradient(snake.color); snakeHeadManager.segments.Add(newSegment); } snakeHeadManager.Resize(); //Add the new snake created to the list of snakes npTargets.Add(snake.id, target); }
public SpawnNPSnake(SnakeData snake) { this.snake = snake; }
public SpawnNPSnake(byte [] snake) { this.snake = new SnakeData(snake); }