博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[脚本]Unity3D一些基本功能的脚本
阅读量:6429 次
发布时间:2019-06-23

本文共 1247 字,大约阅读时间需要 4 分钟。

Unity3D入门:一

*添加天空盒子:

添加天空盒 有两种方式 

1 : 在当前相机上添加skybox

2 : 在当前场景上添加skybox

上面的两种方式的结果是一样的   第一种方式的优势在于 如果 世界中有多个摄像机的话,切换摄像机 需要看不同的天空 就可以使用这种方式实现

我们先来试试unity 给我们的提供的天空盒 吧 

要使用 unity 当然要先导入天空资源包啦 导入方式 :

assets -> import package ->skyboxes 

然后点击camera属性的skybox后面的一个小圆按钮(中间有个实心的点),然后选择自己想要的天空盒效果

*动态创建一排附有刚体属性的cube:

for (int i = 0; i < 4; i++)
        {


            for (int j = 0; j < 4; j++)
            {

                 GameObject goNew = GameObject.CreatePrimitive(PrimitiveType.Cube);
                 goNew.transform.position = new Vector3(i, j, -1);//x,y,z坐标
                 goNew.AddComponent<Rigidbody>();
            }
        }

*如果点击鼠标,给当前刚体添加一个向前的推力:

if (Input.GetMouseButtonDown(0))
{


this.gameObject.rigidbody.AddForce(Vector3.forward*10,ForceMode.Impulse);//一个力方向的基本向量,然后乘以倍数,显得力就大一些

}

*按下键盘某键,然后程序作出反应:

var MoveSpeed=5;
var RotateSpeed=20;
function Update () {


if(Input.GetKey(KeyCode.W))
{

this.transform.Translate(Vector3.forward*Time.deltaTime*MoveSpeed);
}
else if(Input.GetKey(KeyCode.S))
{

this.transform.Translate(Vector3.forward*Time.deltaTime*-MoveSpeed);
}
else if(Input.GetKey(KeyCode.A))
{

this.transform.Rotate(Vector3.up*Time.deltaTime*-RotateSpeed);
}
else if(Input.GetKey(KeyCode.D))
{

this.transform.Rotate(Vector3.up*Time.deltaTime*RotateSpeed);
}
}

本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366508,如需转载请自行联系原作者

你可能感兴趣的文章
存储树形的数据表转为Json
查看>>
CAN 总线通信控制芯片SJA1000 的读写
查看>>
oauth授权协议的原理
查看>>
OutputCache说明
查看>>
sdl2.0示例
查看>>
数学 --- 高斯消元 POJ 1830
查看>>
Ejabberd源码解析前奏--集群
查看>>
[ZHUAN]Flask学习记录之Flask-SQLAlchemy
查看>>
【转】Install SmartGit via PPA in Ubuntu 13.10/13.04/12.04/Linux Mint
查看>>
PNG怎么转换成32位的BMP保持透明
查看>>
经验分享:CSS浮动(float,clear)通俗讲解
查看>>
WTL中最简单的实现窗口拖动的方法(转)
查看>>
数据结构—队列
查看>>
BZOJ4241 : 历史研究
查看>>
(LeetCode)两个队列来实现一个栈
查看>>
[WebGL入门]十九,遮挡剔除和深度測试
查看>>
jquery封装常用方法
查看>>
什么是ICE (Internet Communications Engine)
查看>>
移动web开发之屏幕三要素
查看>>
求按小时统计的语句,该怎么处理
查看>>