一,设置

二,脚本

 

1,PlayerController 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerController : MonoBehaviour {private Rigidbody2D m_rg;public float MoveSpeed;public float JumpSpeed;//在角色下添加一个空物体//设置一个跳跃监测点public Transform CheckPoint;//设置一个跳跃监测半径public float CheckRadius;//设置一个跳跃监测层---角色与地面的检测public LayerMask WhatIsGround;//角色默认是否着地--truepublic bool isGround;private Animator Anim;//存储复活点的位置信息public Vector2 RespawnPosition;public LevelManager theLevel;void Start () {m_rg = gameObject.GetComponent<Rigidbody2D>();Anim = gameObject.GetComponent<Animator>();//游戏刚开始时,玩家的重生点,就是当前的初始位置点RespawnPosition = transform.position;theLevel = FindObjectOfType<LevelManager>();}// Update is called once per framevoid Update () {//
        isGround = Physics2D.OverlapCircle(CheckPoint.position, CheckRadius, WhatIsGround);//m_rg.gameObject.transform.rotation= Quaternion.identity;//------------------Input.GetAxisRaw没有小数值,只有整数,不会产生缓动------------------//角色水平移动//按住D键,判断如果大于0,则向右开始移动if (Input.GetAxisRaw("Horizontal") > 0){m_rg.velocity = new Vector2(MoveSpeed, m_rg.velocity.y);//设置自身缩放的值transform.localScale = new Vector2(1f,1f);}//角色水平移动//按住A键,判断如果小于0,则向左开始移动else if (Input.GetAxisRaw("Horizontal") < 0){m_rg.velocity = new Vector2(-MoveSpeed, m_rg.velocity.y);//如果new Vector2(-1f, 1f)  x值为负数,则图片进行反转显示transform.localScale = new Vector2(-1f, 1f);}else//角色水平移动//松开按键,判断如果等于0,则停止移动
        {m_rg.velocity = new Vector2(0, m_rg.velocity.y);}//角色按下空格键实现跳跃//禁止二连跳//要先判断角色是否在地面上,在地面上可以跳,不在地面上则不能跳if (Input.GetButtonDown("Jump")&& isGround){m_rg.velocity = new Vector2(m_rg.velocity.x,JumpSpeed);}Anim.SetFloat("Speed", m_rg.velocity.x);Anim.SetBool("Grouned", isGround);}private void OnTriggerEnter2D(Collider2D collision){if (collision.tag=="KillPlane"){//gameObject.SetActive(false);//使当前玩家的位置点为,保存的复活点位置//transform.position = RespawnPosition;
theLevel.Respawn();}//角色与当前的复活点进行碰撞检测//把当前角色的位置信息,设置为重生的复活点if (collision.tag == "CheckPoint"){RespawnPosition = collision.transform.position;}}/// <summary>/// 实现角色跟随移动平台一起运动/// 把角色的父物体设置为移动平台/// </summary>/// <param name="collision"></param>private void OnCollisionEnter2D(Collision2D collision){Debug.Log("碰撞到的那个吊毛叫什么名字:"+ collision.gameObject.name);if (collision.gameObject.tag == "MovePlatForm"){transform.parent = collision.transform;Debug.Log("碰撞到的那个吊毛的父物体什么名字:" + transform.parent);}}private void OnCollisionExit2D(Collision2D collision){if (collision.gameObject.tag == "MovePlatForm"){transform.parent = null;}}
}

 2,MovePlatFromController 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;/// <summary>
/// 平台移动脚本
/// </summary>
public class MovePlatFromController : MonoBehaviour {//要移动的物体public GameObject PlatForm;//要移动物体开始的点public Transform StartPoint;//要移动物体结束的点public Transform EndPoint;//要移动物体的移动速度public float MoveSpeed;//要移动到的目标点public Vector2 target;void Start () {target = EndPoint.position;}// Update is called once per framevoid Update () {//把物体移动到指定的位置点上PlatForm.transform.position = Vector2.MoveTowards(PlatForm.transform.position, target, MoveSpeed*Time.deltaTime);//实现物体来回移动if (PlatForm.transform.position == EndPoint.position){target = StartPoint.position;}if (PlatForm.transform.position == StartPoint.position){target = EndPoint.position;}}
}

转载于:https://www.cnblogs.com/yueqingli/p/10125555.html

Unity 2D物体移动相关推荐

  1. Unity(7)-控制2D物体移动

    文章目录 前言 相关介绍 其他介绍 上一篇笔记 下一篇笔记 一.项目结构 二.水平轴和垂直轴 二.脚本 [1]. 获取键盘输入 [2]. 移动 [3]. 方向判断 [4]. 图片切换 [5]. 全部代 ...

  2. Unity 2D光照(2D Light)和阴影(Shadow Caster 2D)

    前言 在上一篇我们简单了了解了Unity 2D动画的实现,在这一篇中,我们来学一下Unity的2D Light,给我们的2D动画添加上光照效果,简单的效果图如下: 首先先分享一个B站上别人翻译了的视频 ...

  3. Unity 给物体加贴图

    如何给物体贴图纸 下载图片 打开Unity 创建物体 导入资源 贴图 新春祝福 下载图片 首先在网上下载几个图片,比如草地: 首先在网上下载下来 打开Unity 然后打开Unity,新建一个项目 创建 ...

  4. UNITY 2D入门基础教程 (一)

    如果用以前版本的Unity做2D游戏,虽然能做,但是要费很多周折. 比如你可以将一张纹理赋予一个"面片"网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这 ...

  5. 【Unity】Unity 2D游戏开发(一)U2D基础功能

    文章目录 Unity 2D游戏开发基础知识 Animation动画 SortingLayer层排序 Physics 2D物理2D Rigidbody 2D刚体 示例 1.点击鼠标发出子弹 2.子弹打中 ...

  6. Unity 2D 学习笔记:游戏实例Sunnyland

    Unity 2D 学习笔记:游戏实例Sunnyland 01安装软件&导入素材 02编辑素材&Tilemap 03图层layer&角色建立 04角色移动 05角色方向& ...

  7. [Unity]3D物体透明化方法透明材质球

    Default-Skybox,Shader:Skybox/Procedural 使用透明材质 1.使用自带的天空盒材质 新建3D物体,自带是初始材质 将其替换成如上图所示的Default-Skybox ...

  8. Unity 2D 学习手札 (一) 基本概念

    前言 刚开始学习 Unity 2D,看了几本书,或许书中重点都不在 2D 的部分,总是不得其门而入,无法快速的上手,充满挫折.后来在网络上查了一些文章,东拼西凑,才慢慢体会其要意,今将心得记载于此,以 ...

  9. Unity3D 2D入门——第一天:2D物体创建以及贴图 C#一些知识

    2D物体的创建,非常的简单,这里给一个链接,我今天学习主要靠他了: (Unity 4.3 制作一个2D横版射击游戏) http://blog.csdn.net/akof1314/article/det ...

最新文章

  1. eclipse打开,莫名报一堆错(Syntax error on tokens, delete these tokens )
  2. 容器大小_C++ 顺序容器基础知识总结
  3. 企业级账号 版本更新总结
  4. 安装了email模块还是报错_官网的Pyngl和Pynio安装方法会报错!正确的在这里!
  5. 表面招助理实为“拉皮条”?招聘平台也有情色陷阱,BOSS直聘回应...
  6. Docker详解(十一)——Docker容器CPU资源限额实战
  7. python生成指定年份所有的天,并计算每天属于一年的第几周和周几
  8. VMware12序列号
  9. Qt QListView详解
  10. 医学信息学计算机技术,2017年医学信息学专业大学排名
  11. 有家谱和没家谱,后人的差距真的很大!家谱用怎么样的形式完成传承
  12. [TI TDA4 J721E] Sensor 鱼眼摄像头 LDC畸变校正模块LUT的创建和生成——详解
  13. 【LOJ2292】【BZOJ4897】【THUSC2016】成绩单(DP)
  14. 20考研数一137分考研数学经验分享
  15. 【LeetCode】重复元素相关题目
  16. ensp报错AR40,无法修改IP地址解决办法。
  17. 使用java数据结构编写代码
  18. 一个离开大厂的产品经理,和她为数百万小微企业创造的“神器”
  19. 右键菜单,下拉选项的截屏
  20. python如何调用谷歌搜图api_python爬虫——selenium+chrome使用代理

热门文章

  1. JavaSE replaceAll 方法
  2. LINQ : IEnumerableT and IQueryableT区别
  3. 获取Linux/Unix文件系统信息
  4. 视觉惯性SLAM: VI ORB-SLAM
  5. matlab生成多组多维高斯分布数据
  6. usaco Prime Cryptarithm
  7. html如何给文字添加阴影效果,css中怎么给字体添加阴影效果
  8. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
  9. java线程的异常无法捕获异常_Java如何从线程中捕获异常
  10. php中input的使用,php输入流php://input如何使用