玩家控制脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class PlayerController : MonoBehaviour
{// [SerializeField] ------写在private前,使私有界面可视化private Rigidbody2D rb;private Animator anim;public float speed;public float jumpforce;[Space]public LayerMask ground;//获取地面信息public Collider2D coll;[Space]public int Cherry;public Text CherryNum;private bool isHurt;//默认是false// Start is called before the first frame updatevoid Start(){rb = GetComponent<Rigidbody2D>();//获取Component组件anim = GetComponent<Animator>();}// Update is called once per frame//根据每一秒的实际帧数来平滑动画效果---兼容其他电脑void FixedUpdate(){if(!isHurt){Movement();}SwitchAnim();}void Movement(){//GetAxis --- 获得 -1到1 这三个数字包括其中所有的小数float horizontalmove = Input.GetAxis("Horizontal");//GetAxisRwo --- 直接获得 -1 0 1 这三个数字float facedircetion = Input.GetAxisRaw("Horizontal");//当正在移动时if(horizontalmove != 0){//获得速度的变化                    ↓方向*速度        ↓使效果更平滑   ↓没有跳跃所以y轴没有变化rb.velocity = new Vector2(horizontalmove * speed * Time.deltaTime, rb.velocity.y);//实现idle和run动画效果切换  ↓-用数学函数[绝对值]保证永远>0anim.SetFloat("running",Mathf.Abs(horizontalmove));}//判断角色面向方向if(facedircetion !=0){//获取transform下的scale             ↓输入的方向 yz轴不变transform.localScale = new Vector3(facedircetion,1,1);}//控制角色跳跃if(Input.GetButtonDown("Jump") && coll.IsTouchingLayers(ground)){rb.velocity = new Vector2(rb.velocity.x, jumpforce*Time.deltaTime);anim.SetBool("jumping",true);}}void SwitchAnim(){anim.SetBool("idle",false);if(anim.GetBool("jumping"))//判断是否处于跳跃状态{if(rb.velocity.y<0)//判断跳跃的力是否小于0{anim.SetBool("jumping",false);anim.SetBool("falling",true);}}else if(isHurt){//受伤效果anim.SetBool("hurt",true);anim.SetFloat("running",0);//当player被击退后,将状态改回不受伤状态if(Mathf.Abs(rb.velocity.x)<0.1f){anim.SetBool("hurt",false);anim.SetBool("idle",true);isHurt = false;}}else if(coll.IsTouchingLayers(ground))//是否碰撞到ground层{anim.SetBool("falling",false);anim.SetBool("idle",true);}}private void OnTriggerEnter2D(Collider2D collision){//通过标签碰撞检测if(collision.tag == "Collection"){//摧毁游戏物体Destroy(collision.gameObject);Cherry++;//UI显示Cherry的变化数值 用ToString方法进行类型转换CherryNum.text = Cherry.ToString();}}//摧毁敌人private void OnCollisionEnter2D(Collision2D collision){//通过tag检测碰撞enemyif(collision.gameObject.tag == "Enemy"){//检测是否处于下落状态if(anim.GetBool("falling")){//踩死青蛙Destroy(collision.gameObject);//然后小跳rb.velocity = new Vector2(rb.velocity.x, jumpforce*Time.deltaTime);anim.SetBool("jumping",true);}//如果小狐狸在青蛙左边else if(transform.position.x < collision.gameObject.transform.position.x){//给一个向左的力rb.velocity = new Vector2(-5,rb.velocity.y);isHurt = true;}else if(transform.position.x > collision.gameObject.transform.position.x){//给一个向左的力rb.velocity = new Vector2(5,rb.velocity.y);isHurt = true;}}}
}

关于青蛙控制

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ForgController : MonoBehaviour
{private Rigidbody2D rb;private Animator Anim;private Collider2D Coll;public LayerMask Ground;public Transform leftpoint,rightpoint;public float Speed,JumpForce;private float leftx,rightx;private bool Faceleft = true;void Start(){rb = GetComponent<Rigidbody2D>();Anim = GetComponent<Animator>();Coll = GetComponent<Collider2D>();//脱离子类继承transform.DetachChildren();//取得左右两个点的坐标leftx = leftpoint.position.x;rightx = rightpoint.position.x;Destroy(leftpoint.gameObject);Destroy(rightpoint.gameObject);}void Update(){SwitchAnim();}void Move(){//面向左侧if(Faceleft){if(Coll.IsTouchingLayers(Ground)){Anim.SetBool("jumping",true);rb.velocity = new Vector2(-Speed,JumpForce);}if(transform.position.x < leftx){transform.localScale = new Vector3(-1,1,1);Faceleft = false;}}//面向右侧else{if(Coll.IsTouchingLayers(Ground)){Anim.SetBool("jumping",true);rb.velocity = new Vector2(Speed,JumpForce);}if(transform.position.x > rightx){transform.localScale = new Vector3(1,1,1);Faceleft = true;}}}void SwitchAnim(){if(Anim.GetBool("jumping")){if(rb.velocity.y<0.1){Anim.SetBool("jumping",false);Anim.SetBool("falling",true);}}if(Coll.IsTouchingLayers(Ground) && Anim.GetBool("falling")){Anim.SetBool("falling",false);}}
}

这部分是自己学着做的鹰的简单AI

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class EagleController : MonoBehaviour
{private Rigidbody2D EagleRB;private Animation EagleAnim;private Collider2D EagleColl;public Transform UpPoint,DownPoint;private float UpY,DownY;public float Flying;private bool isUpFly;// Start is called before the first frame updatevoid Start(){EagleRB = GetComponent<Rigidbody2D>();EagleAnim = GetComponent<Animation>();EagleColl = GetComponent<Collider2D>();transform.DetachChildren();UpY = UpPoint.position.y;DownY = DownPoint.position.y;Destroy(UpPoint.gameObject);Destroy(DownPoint.gameObject);// if(isUpFly)// {EagleRB.velocity = new Vector2(0,5);//     isUpFly = false;// }isUpFly = true;}// Update is called once per framevoid Update(){Fly(); Debug.Log("This is hight" + EagleColl.transform.position.y);Debug.Log("This is Speed" + EagleRB.velocity);}void Fly(){if(isUpFly){if(EagleColl.transform.position.y > UpY){EagleRB.velocity = new Vector2(0,-Flying);isUpFly = false;}}else{if(EagleColl.transform.position.y < DownY){EagleRB.velocity = new Vector2(0,Flying);isUpFly = true;}}}}

关于b站M_Studio的学习笔记相关推荐

  1. 关于b站M_Studio的学习笔记2

    玩家控制脚本(优化) ​ using System.Collections; using System.Collections.Generic; using UnityEngine; using Un ...

  2. python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  3. python爬b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  4. 《B站-ElasticSearch》学习笔记

    目录 环境安装 安装ElasticSearch 安装ElasticSearch Hand可视化工具 安装Kibana ES核心概念 物理设计 逻辑设计 文档 类型 索引 倒排索引 IK分词器插件 什么 ...

  5. B站小迪安全学习笔记第11天-WEB漏洞必懂知识点讲解

    前言: 本章节将讲解各种 WEB 层面上的有那些漏洞类型,具体漏洞 的危害等级,以简要的影响范围测试进行实例分析,思维导图中的漏洞也 是后面我们将要学习到的各个知识点,其中针对漏洞的形成原理,如何发现 ...

  6. 【机器学习】《动手学深度学习》d2l 李沐B站视频配套学习笔记

    文章目录 各种基础铺垫 如何安装d2l包? 本书的内容框架 3-线性神经网络(基础回归模型) 3.1 内容介绍 3.4 softmax回归 补充:逻辑回归 1 线性回归模型完整代码 2代码拆解-数据准 ...

  7. B站小迪安全学习笔记第7天-CDN绕过技术

    前言: CDN 的全称是 Content Delivery Network,即内容分发网络.CDN 是 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器, 通过中心平台的负载均衡.内容 ...

  8. B站小迪安全学习笔记第9天-信息收集APP及其他资产

    前言: 在安全测试中,若 WEB 无法取得进展或无 WEB 的情况下,我们需要 借助 APP 或其他资产在进行信息收集,从而开展后续渗透,那么其中的 信息收集就尤为重要,这里我们用案例讲解试试如何! ...

  9. B站小迪安全学习笔记第2天-数据包拓展

    网站解析对应 1.简要网站搭建过程 2.涉及到的攻击层面?(源码,搭建平台,系统,网络层等) 3.涉及到的安全问题?(目录,敏感文件,弱口令,IP 及域名等) 这几个不知道为什么开头提及了一下,就一笔 ...

最新文章

  1. tensorflow model save and restore
  2. android excel 筛选功能,Android实现Excel表格展示数据
  3. 电脑打字手指正确姿势_男人耍帅小技能:如何用手指吹口哨
  4. 多个输出用java怎么写_请问用java写程序怎么输出这两个图形
  5. ESlint静态代码检测工具安装
  6. 接口测试工具-fiddler的运用
  7. 如何设置(样式渐变)transition
  8. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
  9. 让你提前认识软件开发(15):程序调试的利器—日志
  10. 图像坐标球面投影_从球面到平面的投影
  11. Gimp去除图片背景色方法
  12. 深度学习-感受野与有效感受野
  13. 苹果手机使用技巧篇:教你完美使用好苹果手机的4个方法
  14. 企业越小越需要做股权激励
  15. excel删除重复值的办法
  16. 考ACCA你选择报班还是自学?
  17. 行间距和文本样式的设置
  18. tomcat集群redis配置session共享
  19. vue3.0项目中使用mitt进行组件传值
  20. Learning by Fixing: Solving Math Word Problems with Weak Supervision论文阅读

热门文章

  1. pc端的企业网站(IT修真院test8)详解1-1
  2. 富可视m310 android 4.4,富可视 M310 4.2.1 ROM刷机包 版本发布公告
  3. 提前还贷 别忘退税退保
  4. Creo 工程图 圆的中心引线设置
  5. (Agora声网)多人视频聊天应用的开发(一)快速集成
  6. Mac 版 Vysor 1.8.2破解 以及下载
  7. 900亿的分众传媒危险了?
  8. 2014教师招聘计算机试题,2014年教师招聘考试《信息技术》练习试题二
  9. javaweb邮箱页面架构
  10. 机器学习(五)——时间序列ARIMA模型