20269人加入学习
(121人评价)
Unity初级案例 - 贪吃蛇(Unity2017.2.0)

制作于2017.12.16

价格 免费

创建一个空体,归零,重命名为ScriptsHolder,把StartUIController挂上,再把ControlPanel中的Last和Best挂上,打完代码后,把Home,Start与其绑定"StartUIController.StartGame",把Skin中的Blue和Yellow与“StartUIController.StartGame”绑定,选中BlueSelected和YSelected

[展开全文]

list .根据奇偶来放进去图片。

UGUI下都要以image作为基础图片显示。

直接拖进去不大行。

用一个集合来存。蛇身。

head 上面写。

根据奇偶性来生成。那么,

[展开全文]

移动方式。

让蛇身,蛇尾移动到射脖子。

bodylist 是按照顺序排列的,就相当于是蛇身。

localPosition。 和position区别应该是坐标系使用的不同吧。

生成在圆点的问题,可以通过,生成到其他位置来解决。

标志位,就是通过bool变量啥啥的传过来,然后进行控制。

尾巴挪到头的位置。

[展开全文]

1、蛇身预制体,添加box collider,设置尺寸

2、list集合存储蛇身的transform组件

3、生成蛇身的函数:

  • 三元表达式,,确定新生成蛇身的
  • 设置蛇身图片
  • 设置蛇身的父物体
  • 更新list集合
[展开全文]

Resources文件夹可以用来动态加载文件

[展开全文]

覆盖掉错误设置

1.改变公司名和文件名

2.允许分辨率选择框

 

分辨率不对的解决方法

1:注册表中HK_CURRENT_USER-SOFTWARE-UNITY-UNITYEDITOR下所有文件删掉

2.HK_CURRENT_USER-SOFTWARE-你的公司名

这个文件删掉

3.删掉发布的游戏文件

4.重新发布,发布时设置中允许分辨率选择框出现

5.删掉发布的游戏文件

6.重新发布,发布时设置中禁止分辨率选择框出现

7.发布后游戏正常

[展开全文]

所有的移动都是相对蛇头移动

 

功能:

1.自身移动

2.蛇身移动,通过蛇头管理,并不是蛇身挂脚本自己移动

3.吃食物,蛇身变长

 

移动用invokerepeat控制

后面每一节蛇身继承上一节位置

或者将最后一节移动到蛇颈位置,但如果是颜色有要求则需要改动颜色

 

吃到食物后,往后加节点

[展开全文]

从后往前移动。

LocalPosition 和position的区别是

一个是相对坐标,另一个是绝对坐标。

一个相对父物体,另一个是世界坐标。

 

[展开全文]

加标签,body

边界。。

localPosition 这个东西,因为都是在Canvas下

不在表面层级,所以,修改的时候,人在屋檐下,不得不低头。。

弹过去了之后再走一部。

[展开全文]

按键按下一直赋值,invokerepeating控制调用频率

在start中,设置初始移动方向

[展开全文]

InvokeRepeating()每隔多久调用一次

[展开全文]

Canvers:

Screen Space-Overlay:是直接在摄像机前面蒙一层东西,UI层始终在前面

  

[展开全文]

单例模式还是少一点的好。

\n换行。。。

rgb。

ColorUitlity.TryParseHtmlString("#FFFFFFFFF")

[展开全文]

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SnakeHead : MonoBehaviour {
    public float velocity = 0.35f;
    public int step;
    private int x;
    private int y;
    private Vector3 headPos;

    void Start()
    {
        InvokeRepeating("Move", 0, velocity);
        x = step;y = 0;
    }
    void Update()
    {
        if (Input.GetKey(KeyCode.W))
        {
            x = 0;y = step;
        }
        if (Input.GetKey(KeyCode.S))
        {
            x = 0; y = -step;
        }
        if (Input.GetKey(KeyCode.A))
        {
            x = -step;y = 0;
        }
        if (Input.GetKey(KeyCode.D))
        {
            x = step;y = 0;
        }
    }
    void Move()
    {
        headPos = gameObject.transform.localPosition;
        gameObject.transform.localPosition = new Vector3(headPos.x + x, headPos.y + y, headPos. z.);
            }

}
}

贪吃蛇头移动

[展开全文]

Time.timescale = 0;

牛皮!!!!!!!

[展开全文]

死亡。

等待时间。

PlayerPrefs.setInt("键",int值)

可以记录得分。

[展开全文]

授课教师

SiKi学院讲师

课程特色

图文(1)
视频(23)
下载资料(1)