Unity学习笔记(5)仿手游贪吃蛇第一章「蛇身生成及跟着蛇头的移动」「方向键控制」

一、实现效果

在这里插入图片描述
功能

  • 生成三节蛇身,且每一节蛇身能持续跟随上一节蛇身/蛇头
  • 按w/s/a/d能控制蛇头的移动方向

二、知识点学习

1、数组格式

标准格式:
List<类型名> 变量名=new List<类型名>();
eg:设置一个对象数组
List< GameObject> snakeBody=new List< GmaeObject>();

2、Instantiate增加的三元函数

标准格式
public static Object Instantiate (Object original);
public static Object Instantiate (Object original, Transform parent);
public static Object Instantiate (Object original, Transform parent, bool instantiateInWorldSpace);
public static Object Instantiate (Object original, Vector3 position, Quaternion rotation);(这次项目用到的)
public static Object Instantiate (Object original, Vector3 position, Quaternion rotation, Transform parent);

参数 解释
original 要复制的现有对象
position 新对象的位置。
rotation 新对象的方向。
parent 将指定给新对象的父对象。
instantiateInWorldSpace 分配父对象时,传递 true 可直接在世界空间中定位新对象。传递 false 可相对于其新父项来设置对象的位置。

3、unity3d 的Quaternion.identity和transform.rotation区别

性质不同、旋转角度不同、值大小不同。
Quaternion.identity就是指Quaternion(0,0,0,0),就是每旋转前的初始角度,是一个确切的值,而transform.rotation是指本物体的角度,值是不确定的,比如可以这么设置transform.rotation = Quaternion.identity;

一、性质不同
1、Quaternion.identity:Quaternion.identity是值类型。
2、transform.rotation:transform.rotation属性变量。
二、旋转角度不同
1、Quaternion.identity:Quaternion.identity的旋转角度固定,声明后不可再赋值。
2、transform.rotation:transform.rotation的旋转角度不固定,声明后可以再赋值。
三、值大小不同
1、Quaternion.identity:Quaternion.identity的值大小必须大于0度,超过360度,按倍数去掉360度旋转。
2、transform.rotation:transform.rotation的值大小可以小于0度,按倍数加上360度旋转。

eg: GameObject newbodynext = Instantiate< GameObject> (body, //已经创建好的预制体
transform.position - (i + 1) * new Vector3(0, 0.5f, 0),//0.5f是因为蛇头中心点与蛇身中心点的距离为0.5f,意思为在y轴上每0.5个距离生成一个蛇身预制体
Quaternion.identity) ;//转向

4、数组内增加函数

void List< GameObject >.Add(GameObject item);(增加对象,自带,不用自己写)
void List< Vector3 >.Add(snakeBody[i].transform.position);(增加位置,自带,不用自己写)

三、代码实现

准备工作:
  • 设置一张背景图,
  • 将蛇身设置为预制体,
  • 在蛇头下面挂SnakeHead.cs脚本,将蛇身预制体拖到蛇头脚本的body里。
using System.Collections;
using System.Collections.Generic;
using U
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值