[Unity 2D] Unity CharacterController2D

我老师说,好记性不如烂笔头

我说,老师你刚说啥 :>

正好最近在看2D的骨骼动画那块,然后看着看着,发现自己好像没怎么做过2D游戏(应该做过,忘记了)

随便从官方商店拿了一套资源,做一个小游戏,回忆一下,毕竟我老师说,温故而知新

每次开始写游戏,移动,动画,音效,关卡等等等就来了,然鹅这些都是重复的代码,3D中官方给了

CharacterController,Add完事,试着去搜一下CharacterController2D,没有。。。直接在2D Sprite上面

加上CharacterController。。。好像也不行,本着有问题找百度的学习态度,找了一个比较好的CharacterController2D Demo

但是,直接加上那肯定不行,怎么也得改一改方法名,抄一遍。。。哈哈哈

对了先附上Demo:https://github.com/prime31/CharacterController2D  (这不是我的哦)

=====================================================================

  • 键盘控制动画播放
 1 void Update()
 2     {
 3         if( _controller.isGrounded )
 4             _velocity.y = 0;
 5 
 6         if( Input.GetKey( KeyCode.RightArrow ) )
 7         {
 8             normalizedHorizontalSpeed = 1;
 9             if( transform.localScale.x < 0f )
10                 transform.localScale = new Vector3( -transform.localScale.x, transform.localScale.y, transform.localScale.z );
11 
12             if( _controller.isGrounded )
13                 _animator.Play( Animator.StringToHash( "Run" ) );
14         }
15         else if( Input.GetKey( KeyCode.LeftArrow ) )
16         {
17             normalizedHorizontalSpeed = -1;
18             if( transform.localScale.x > 0f )
19                 transform.localScale = new Vector3( -transform.localScale.x, transform.localScale.y, transform.localScale.z );
20 
21             if( _controller.isGrounded )
22                 _animator.Play( Animator.StringToHash( "Run" ) );
23         }
24         else
25         {
26             normalizedHorizontalSpeed = 0;
27 
28             if( _controller.isGrounded )
29                 _animator.Play( Animator.StringToHash( "Idle" ) );
30         }
学霸的试卷
 1 void Update()
 2     {
 3         if (_isGround) _velocity.y = 0;
 4 
 5         float tempH = Input.GetAxis("Horizontal");
 6         float tempV = Input.GetAxis("Vertical");
 7 
 8         if (Mathf.Abs(tempH) > 0.01f)
 9         {
10             normalizedHorizontalSpeed = (int)Mathf.Sign(tempH);
11             if (onwerSpr.flipX != normalizedHorizontalSpeed < 0) 
12             {
13                 onwerSpr.flipX = !onwerSpr.flipX;
14             }
15 
16             if(_isGround) onwerAnim.Play(runID);
17         }
18         else 
19         {
20             normalizedHorizontalSpeed = 0;
21             if(_isGround) onwerAnim.Play(idleID);
22         }
学渣抄的答案

猜你喜欢

转载自www.cnblogs.com/lovewaits/p/13177170.html
今日推荐