U3D 一个简单的角色控制脚本

Posted 不忘初心,方得始终

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U3D 一个简单的角色控制脚本相关的知识,希望对你有一定的参考价值。

之所以写这个脚本,是因为我想起了我还是新手的时候,那时为了一个角色控制脚本百度了半天还是一无所获,因为看不懂啊,都写的太高级了

希望这个脚本能够帮助那些 像曾经的我一样迷失于代码中的新手们能够清晰的理解这个角色控制的含义

 

///角色控制脚本

public class Player : MonoBehaviour {

public float m_speed=1;   //这个是定义的玩家的移动速度  之所以Public是因为为了方便对其进行调节  (public的属性和对象会在Unity中物体的脚本选项中显示出来  前提是你把脚本挂在了物体上)

void Update ()   //这个是刷新的意思   以帧为单位的大概每刷新一次1/20秒

{

        float movex = 0;   //这个代表的是玩家在x轴上的移动

        float movez = 0;   //这个代表的是玩家在z轴上的移动

        if (Input.GetKey(KeyCode.W))   //这个意思是"当按下W键时"

        {

            movez += m_speed * Time.deltaTime;   //物体获得在z轴方向上的增量   也就是向前

        }

        if (Input.GetKey(KeyCode.S))   //按下S键时

        {

            movez -= m_speed * Time.deltaTime;   //后

        }

        if (Input.GetKey(KeyCode.A))   //A键

        {

            movex -= m_speed * Time.deltaTime;    //左

        }

        if (Input.GetKey(KeyCode.D))   //D键

        {

            movex += m_speed * Time.deltaTime;   //右

        }

        this.transform.Translate(new Vector3(movex,0,movez));   //这句代码是把得到的偏移量通过translate(平移函数)给玩家  从而使得玩家的位置得到改变

   } }

 

附上玩家的坐标轴  图中飞机就是玩家  便于理解x轴z轴对玩家移动方向的影响

技术分享

 

同时附上Translate函数的圣典介绍:

Transform.Translate 平移

 

function Translate (translation : Vector3, relativeTo : Space = Space.Self) : void

Description描述

Moves the transform in the direction and distance of translation.

移动transform在translation的方向和距离。

简单的说,向某方向移动物体多少距离。

If relativeTo is left out or set to Space.Self the movement is applied relative to the transform‘s local axes. (the x, y and z axes shown when selecting the object inside the Scene View.) If relativeTo is Space.World the movement is applied relative to the world coordinate system.

如果relativeTo留空或者设置为Space.Self,移动被应用相对于变换的自身轴。(当在场景视图选择物体时,x、y和z轴显示)如果相对于Space.World 移动被应用相对于世界坐标系统。

 

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	void Update() {
		transform.Translate(Vector3.forward * Time.deltaTime);
		transform.Translate(Vector3.up * Time.deltaTime, Space.World);
	}
}

 

以上是关于U3D 一个简单的角色控制脚本的主要内容,如果未能解决你的问题,请参考以下文章

C#代码,运用button控制键盘。

u3d Animator和脚本控制FPS骑士

2D拾荒者开发所学U3D的基础知识

U3D学习——脚本运行周期

怎么通过程序控制unity3d人物动作

U3D入门小白教程——代码篇之三:常见脚本函数