纪念下我的第一款游戏——《剑盾勇者》

博主分享了寒假期间与学长合作开发游戏《剑盾勇者》的经历,旨在提升自身技能和了解远程协作。项目非商业性质,使用了官方及网络资源。博主主要负责玩家和敌人控制器,使用了Unity的Animator Controller、Cinemachine、动画事件等技术。游戏虽存在一些问题,但作为初次尝试,博主对此充满纪念意义。
摘要由CSDN通过智能技术生成

这篇博客记录一下今年寒假里和几位学长一起做的一款游戏,当时做这款游戏的目的是想着看看自己的水平,了解一下远程办公协同工作,顺便参加一下比赛。然而事实证明,我还是太菜了😂。至于这款有点不好形容的游戏,大概就是我自己做的第一款游戏了。

需要说明一下的是做这个项目是不具备商业目的的,所有的模型以及部分脚本来自官方以及各种资源网站

源代码可以在这里找到👉ShieldAndSword-Source-Code


  • 概况
在这个项目中,我主要负责的是玩家的控制器和脚本,人形敌人的控制器和脚本,其中包括:
  • 玩家的控制(主要是移动和攻击用Animator Controller)
  • Cinemachine(摄像机)
  • 玩家的攻击对敌人的伤害(动画事件)
  • 玩家的受到伤害(血量、动画、死亡)
  • 人形敌人的追击(包括了移动和Nav Mesh)
  • 人形敌人的攻击
  • 人形敌人受到伤害(同玩家)

在这里插入图片描述

这是我负责的部分的工作截图☝

游戏内截图

上面这个是游戏内截图,完整项目的☝

  • 玩家角色的控制
我能用到的模型是一些lowpoly的模型,我们选了这个作为主角。这个模型自带一些还过得去的移动,攻击动画。于是我自己搭了一个动画状态机,查考官方有一个项目的脚本写了一个合适的。

在这里插入图片描述

动画状态机☝

在这里插入图片描述

移动动画的混合树☝
我的动画机也就是能让主角动一动,发出两种形式的攻击,受到伤害和倒地,其中Grounded是移动的混合树。
移动的动画通过混合树实现,同时移动这件事本身也是通过动画自带的位移实现的。。。
移动方面的脚本的任务基本上就是获取玩家的输入并更新相应的动画状态,随便弄几段代码吧。
/// <summary>
        /// 供调用的角色运动主方法
        /// </summary>
        /// <param name="move"></param>
        /// <param name="crouch"></param>
        /// <param name="jump"></param>
		public void Move(Vector3 move, bool crouch, bool jump)
		{
   

			// convert the world relative moveInput vector into a local-relative
			// turn amount and forward amount required to head in the desired
			// direction.
			if (move.magnitude > 1f) move.Normalize();
			move = transform.InverseTransformDirection(move);
			CheckGroundStatus();
			move = Vector3.ProjectOnPlane(move, m_GroundNormal);
			m_TurnAmount = Mathf.Atan2(move.x, move.z);
			m_ForwardAmount = move.z;

			ApplyExtraTurnRotation();

			// control and velocity handling is different when grounded and airborne:
			if (m_IsGrounded)
			{
   
				HandleGroundedMovement(crouch, jump);
			}
			else
			{
   
				HandleAirborneMovement();
			}

			ScaleCapsuleForCrouching(crouch);
			PreventStandingInLowHeadroom();

			// send input and other state parameters to the animator
			UpdateAnimator(move);
		}

	void 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值