勇士传说--

news/2024/11/28 21:49:01/

1. 将准备好的素材--变成16像素点-- >Fliter Mode--Point -- >Compression(压缩)--None

2.将素材切割-- Sprite Editor--切割--可以按照像素点切割地图--切割人物可以数格数

3.制作背景-->窗口-->2D-->平铺调色板(Palette)-->拖到检查器上-->将准备好的地图放入平铺调色板(注意:新建文件夹)--在层级中创建2D--矩形

4.图层之间--后图层会遮挡前面的图层

5.制作一个Rule Tiles--2D瓦片-Rule --然后选中刚刚切割的地图--然后定义图片出现的规则

 

二:

1.假如想用新的Input系统--> 进ProjectSeting-->Player-->API兼容级别(.NetFrameWork)-->输入系统(新) -->在包管理器中安装Input System-->在Setting中创建文件夹-->InputAction

创建组件PlayerInput让他生成代码--在自己代码里面调用

using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{public PlayerInputControl inputControl;public Vector2 inputDirection;private void Awake(){inputControl = new PlayerInputControl();}private void OnEnable(){inputControl.Enable();}private void OnDisable(){inputControl.Disable();}private void Update(){inputDirection = inputControl.Gameplay.Move.ReadValue<Vector2>();}
}

行动+ 翻身

   private void FixedUpdate(){//固定时钟执行Move();}public void Move(){m_rigidbody.velocity = new Vector2(inputDirection.x * speed * Time.deltaTime, m_rigidbody.velocity.y);//强制转换 int faceDir = (int)transform.localScale.x;//人物翻转if (inputDirection.x > 0)faceDir = 1;if (inputDirection.x < 0)faceDir = -1;m_transform.localScale = new Vector3(faceDir, 1, 1);}
}

检测地面--把地面新弄为一个Grond层--然后public一个layerMask

public bool isGround;public float checkRaduis;public LayerMask groundLayer;void Update(){Check();}public void Check(){//检测地面isGround  = Physics2D.OverlapCircle(transform.position, checkRaduis, groundLayer);}

重点:两代码之间互相访问

public Physicscheck physicscheck;
physicscheck = GetComponent<Physicscheck>();

人物跳跃

 private void Jump(InputAction.CallbackContext obj){//碰地才能跳跃if(physicscheck.isGround)m_rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);//瞬时的力}

给角色光滑物理材质--物理材质Friction--0

创建基本动画-- 创建Animator --然后再创建Animation --用代码控制转换条件

  public void SetAnimation(){anim.SetFloat("velocityX", Mathf.Abs(rb.velocity.x));anim.SetFloat("velocityY", rb.velocity.y);anim.SetBool("isGround", physicscheck.isGround);anim.SetBool("isCrouch", playerController.isCrouch);}

角色攻击

public class Character : MonoBehaviour
{[Header("基本属性")]public float maxHealth;public float currentHealth;[Header("受伤无敌")]public float invulnerableDurnation;public float invulnerableCounter;public bool invulnerable;private void Start(){currentHealth = maxHealth;}private void Update(){if (invulnerable){//计时器invulnerableCounter -= Time.deltaTime;if(invulnerableCounter<= 0){invulnerable = false;}}}public void TakeDanage(Attack attacker){//如果无敌就不执行了if (invulnerable)return;//Debug.Log(attacker.damage);if (currentHealth - attacker.damage > 0){currentHealth -= attacker.damage;TriggerInvlneralbe();}else{currentHealth = 0;}//受伤之后--无敌TriggerInvlneralbe();}private void TriggerInvlneralbe(){if (!invulnerable){invulnerable = true;invulnerableCounter = invulnerableDurnation;}}
}

配套

public class Attack : MonoBehaviour
{public int damage;public float attakrange;public float attackrate;private void OnTriggerStay2D(Collider2D other){other.GetComponent<Character>()?.TakeDanage(this);}
}

抽象类的下面只写方法的声明--但是不写具体实现


http://www.ppmy.cn/news/615751.html

相关文章

计算机之魂

计算机之魂 - 关键四个知识 问题 1 朗道程序员分级法如何把程序员分成七级 朗道分级法 : 1 级最高 7 级最低 能够开创一个产业和一个学科的基础能够提出重要的计算机理论和实践中的新问题 , 并且解决他们 , 并且还能设计和实现别人无法实现的产品能够解决前人未解决的问题,并且…

我的世界服务器怎么修复锁链甲,我的世界锁链甲怎么制作

在我的世界中锁链甲可不是那么容易就能获得的哦!在游戏中&#xff0c;锁链甲是需要合成的&#xff0c;或者也可以用一定的几率能够刷出锁链甲&#xff0c;很多小伙伴们可能会问这个锁链甲要怎么进行制作呢?来和小编一起了解一下我的世界中锁链甲的制作步骤分享吧! 我的世界锁链…

说一下<黑暗之魂2>的缺点

前言 首先我特别喜欢魂类游戏 不太喜欢玩多周目, 我喜欢开新档玩, 而且, 每隔一段时间又会拿出来通一遍 通关次数:<黑暗之魂3>7次, <只狼>3次, <黑暗之魂2>2次, <黑暗之魂1>2次, <血源诅咒>3次半, <空洞骑士>3遍, <盐与避难所>3遍…

Redis的雪崩,击穿,穿透

雪崩是大面积的key缓存失效&#xff1b; 穿透是redis里不存在这个缓存key&#xff1b; 击穿是redis某一个热点key突然失效; 最终的受害者都是数据库 雪崩: 在高并发下&#xff0c;大量缓存在redis中的key在同一时间失效&#xff0c;导致大量请求直接请求到数据库上&#xff…

月之魂

月之魂 含情脉脉的朦胧 娇艳欲滴的美 像一场玄幻的梦境 轻轻舞动的娉婷 杨柳岸晓风拂面 依稀间追忆绵绵 何时逗惹了你 竟惩罚我万般思念

冰封王座1.17版新英雄研究之火焰领主

原链接如下&#xff1a; http://game.dayoo.com/content.php?id24074 《冰封王座》1.17版新英雄研究之火焰领主 火焰领主  很久以前&#xff0c;当世界还是处在一个恒定混乱的状态时&#xff0c;元素们包括风&#xff0c;土&#xff0c;火和水都忠实地服务于他们的主宰&…

【UE4】模仿《黑暗之魂》系列游戏制作一个简单的锁定敌人的功能

这是我拆解游戏项目的CameraSystem做出的一点点小总结&#xff0c;然后写了一个非常非常简单的锁定敌人的功能&#xff1a; 第一步&#xff1a;设置敌人属性&#xff0c;标志为可被锁定 创建一个敌人蓝图&#xff0c;随便搞个模型进去 创建一个接口蓝图&#xff0c;设置两个功…

Redis并发问题(雪崩、击穿、穿透)

前言 Redis作为目前最火的NoSQL数据库&#xff0c;在大量互联网企业作为重要的核心技术&#xff0c;Redis作为数据库的缓存&#xff0c;在高并发情况下也会出现各种问题&#xff0c;下面我们来了解这些问题以及解决方案&#xff0c;这些也是程序员面试时的高频问题。 Redis的…