zoukankan      html  css  js  c++  java
  • 使方块运动的程序脚本的使用与说明

    关于脚本的详细使用说明请参照这篇博文:

    [Unity3D]在Unity3D中Javascript的基本使用与介绍

    关于碰撞检测的问题请参考这篇博文:

    [Unity3D]在Unity3D中实现简单的碰撞检测

    上回我们说过了如何使用Unity自带的地形系统,那么这一回来简单的讲解一下如何使用脚本进行控制。

    首先,选择GameObject->Create Other->Cube创建一个立方体。

    我们将该场景另存为TankWar0.2做好版本控制。

    调整正方体和摄像机的位置,大致能在屏幕中看到摄像机即可。

    运行一下发现这个正方体不受任何物理效果的影响,我们选择Component->Phisics->Rigid Body为小方块添加刚体,

    运行之后便会发现小方块受重力作用自由落体。

    下面我们在Inspector里对Rigid Body选择Remove移除刚体,接下来讲解一下如何使用脚本让立方体运动起来。

    新建一个文件夹Code用来存放脚本文件。

    新建一个JavaScript文件,命名为CubeMove用来控制方块的移动。

    脚本的源码:

    [javascript] view plaincopyprint?

    1. var MoveSpeed = 5; 
    2. var RotateSpeed = 20; 
    3. function Update(){ 
    4. if(Input.GetKey(KeyCode.W)){//获得按键的键值,如果按下的是W键则前进
    5.         print("Moving W"); 
    6. this.transform.Translate(Vector3.forward*Time.deltaTime*MoveSpeed); 
    7.     } 
    8. else if(Input.GetKey(KeyCode.S)){ 
    9.         print("Moving S"); 
    10. this.transform.Translate(Vector3.forward*Time.deltaTime*-MoveSpeed); 
    11.     } 
    12. else if(Input.GetKey(KeyCode.A)){ 
    13.         print("Moving A"); 
    14. this.transform.Rotate(Vector3.up*Time.deltaTime*-RotateSpeed); 
    15.     } 
    16. else if(Input.GetKey(KeyCode.D)){ 
    17.         print("Moving D"); 
    18. this.transform.Rotate(Vector3.up*Time.deltaTime*RotateSpeed); 
    19.     } 
    var MoveSpeed = 5;
    var RotateSpeed = 20;
    
    function Update(){
    	if(Input.GetKey(KeyCode.W)){//获得按键的键值,如果按下的是W键则前进
    		print("Moving W");
    		this.transform.Translate(Vector3.forward*Time.deltaTime*MoveSpeed);
    	}
    	else if(Input.GetKey(KeyCode.S)){
    		print("Moving S");
    		this.transform.Translate(Vector3.forward*Time.deltaTime*-MoveSpeed);
    	}
    	else if(Input.GetKey(KeyCode.A)){
    		print("Moving A");
    		this.transform.Rotate(Vector3.up*Time.deltaTime*-RotateSpeed);
    	}
    	else if(Input.GetKey(KeyCode.D)){
    		print("Moving D");
    		this.transform.Rotate(Vector3.up*Time.deltaTime*RotateSpeed);
    	}
    }

    将Project面板中的CubeMove拖动到Cube上将其赋值给方块,点击运行试一下发现随着我们按下键盘的WASD,方块也会发生相应的变换。

    接下来我们给相机也添加一个脚本来控制,但是这个脚本是Unity事先写好的。

    在Project面板右击,像上一篇介绍的一样我们引入一个Scripts文件夹,里面有一个SmoothFollow脚本文件,将其拖放到MainCamera上面。

    再次选中MainCamera可以看到已经有一个脚本文件附在上面了。

    在Hierachy面板按住Cube不放拖动到脚本的Target上面:

    以此实现了脚本与方块的关联。

    这个时候再运行文件我们会发现相机可以跟着方块移动。

    这个时候再重复上面提到的添加刚体的操作,再次运行,那么这个具有刚体的小方块就算配置完成了。

    本文转自:http://blog.csdn.net/wxg694175346/article/details/8520117

  • 相关阅读:
    python 函数
    python升级功能
    python3与c++的不同点(初学看重点~)
    python中的数据结构
    github超简单用法
    ListView
    线性代数(1)--方程组的同解变形
    C++基础学习
    C++多态
    PKU《程序设计》专项课程_递归汉诺塔问题
  • 原文地址:https://www.cnblogs.com/dacheng/p/2977351.html
Copyright © 2011-2022 走看看