PoorMonk

U3D 贪吃蛇笔记

知识点

1 用来控制游戏是否暂停:Time.scale = 0 / 1;

2 根据文件名加载资源:

在project视图中添加Resources文件夹(名字必须为Resources),将文件放置在此文件夹下。

1 Resources.Load<Sprite>(PlayerPrefs.GetString("SnakeBody1", "sb0201"));

3 蛇身的移动 

 1     private List<Transform> m_list = new List<Transform>();   
 2     private void Move()
 3     {
 4         Vector3 pos = transform.localPosition;
 5         transform.localPosition = new Vector3(pos.x + x, pos.y + y, pos.z);
 6         
 7         if (m_list.Count > 0)
 8         {
 9             //将最后一个位置移动最前面(效率高,但蛇身颜色有变化不适用)
10             //m_list.Last().localPosition = pos;
11             //m_list.Insert(0, m_list.Last());
12             //m_list.RemoveAt(m_list.Count - 1);
13 
14             for (int i = m_list.Count - 1; i > 0; --i)
15             {
16                 m_list[i].localPosition = m_list[i - 1].localPosition; 
17             }
18             m_list[0].localPosition = pos;
19         }
20           
21     }    

 4 蛇头转弯时,旋转图片

1 transform.localRotation = Quaternion.Euler(0, 0, 90);  //绕z轴旋转

5 生成新的蛇身时要禁用默认的坐标,自己指定相对坐标

1 GameObject gBody = Instantiate(m_bodyPrefab);
2 gBody.transform.localPosition = new Vector3(2000, 2000, 0); //不能用position,要用localPosition
3 gBody.GetComponent<Image>().sprite = m_bodySprites[iIndex];
4 gBody.transform.SetParent(m_parent, false); //传入false不需要指定默认坐标
5 m_list.Add(gBody.transform);

 

完整的源码:https://github.com/PoorMonk/Snake.git

 

posted on 2018-04-12 21:49  PoorMonk  阅读(27)  评论(0)    收藏  举报

导航