如何让游戏物体移动

案例:给一个游戏对象添加一个力,或者移动,或者行走,或者旋转。
首先我们先创建一个地面一个球体然后我们给它球体添加一个刚体组件并且创建一个C#脚本文件,我们打开脚本开始写我们的脚本。

private Rigidbody Body;
public float Speed;//设置一个速度变量
// Use this for initialization
void Start () {
    Body = GetComponent<Rigidbody>();
}
//力的设置如下:
//force:添加一个可持续力到刚体,使用它的质量
//Acceleration:添加一个可持续力到刚体,忽略它的质量
//Impulse:添加一个瞬间冲击力,使用质量
//VelocityChange:添加一个瞬间速度给刚体,忽略它的质量.
void FixedUpdate() //物理引擎
{ 

}
void Update () {
    //添加刚体的力给游戏对象来进行移动,如果是球会滚动
    if (Input.GetKey(KeyCode.W))//当按下W键,游戏对象会往Z轴的正方向移动1的单位*它的速度
    {
        Body.AddForce(new Vector3(0,0,1) * Speed*Time.deltaTime, ForceMode.Force);//参数一是游戏对象移动的位置和速度,参数二是游戏对象力的模式。
        //Body.AddForce(Vector3.forward * Speed, ForceMode.Force);//forward代表的就是(0,0,1)Z轴改变
        
    }
    if (Input.GetKey(KeyCode.S))
    {
        Body.AddForce(new Vector3(0, 0,-1) * Speed*Time.deltaTime, ForceMode.Force);
        //Body.AddForce(Vector3.back * Speed, ForceMode.Force);//back代表的就是(0,0,-1)Z轴改变
    }
    if (Input.GetKey(KeyCode.A))
    {
        Body.AddForce(new Vector3(-1,0,0)* Speed*Time.deltaTime, ForceMode.Force);
        //Body.AddForce(Vector3.left * Speed, ForceMode.Force);//left代表的就是(-1,0,0)X轴改变
    }
    if (Input.GetKey(KeyCode.D))
    {
        Body.AddForce(new Vector3(1, 0,0) * Speed*Time.deltaTime, ForceMode.Force);
        // Body.AddForce(Vector3.right* Speed, ForceMode.Force);//right代表的就是(1,0,0)X轴改变
    }

}

写完后然后我们保存,给其设置速度。就可以运行看看了。


测试

我们可以看到按wsad分别是玩前后左右方向。至此我们的游戏对象移动就完成了。

下面我们再来看看几个碰撞方法。

//碰撞的方法。
//OnCollisionEnter方法必须是在两个碰撞物体都不勾选isTrigger前提下才能进入,反之只要勾选一个isTrigger方法,
//OnCollisionEnter和OnTriggerEnter是冲突的不能同时进行.
//当物体碰撞开始的时候会执行
void OnCollisionEnter(Collision col) {
    body.transform.Translate(Vector3.forward);
    Debug.Log("OnCollisionEnter");
}
//当物体碰撞中的时候会执行,每帧都会调用
void OnCollisionStay(Collision col)
{
    Debug.Log("OnCollisionStay");
}
//当物体离开碰撞的时候会执行,每帧都会调用
void OnCollisionExit(Collision col)
{
    
    Debug.Log("OnCollisionEixt");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容