您的位置:首页 > 其它

游戏对象的位置旋转缩放

2018-04-03 14:05 197 查看
1.创建一个游戏工程, 命名为PRSGo



2.在Project视图中创建3个文件夹, Scene文件夹、Resources文件夹和Script文件夹



3.将当前场景保存为GameScene



4.创建MoveCube、RotateCube和ScaleCube游戏脚本



5.在Hierarchy视图中创建一个Cube和一个Capsule并把Capsule对象的x改为2



6.Transform组件
(1).任何一个游戏对象在创建的时候都会附带一个Transform组件,并且该组件无法删除
(2).Transform面板一共包含3个属性:Position(位置)、Roatation(旋转)和Scale(缩放)。
7.游戏对象的位置:在3D世界中, 任何一个模型的三维坐标都保存在Vector3容器中, 该容器记录物体在X轴、Y轴和Z轴方向的坐标。一旦在程序中修改该游戏对象的坐标, 那么Scene视图中游戏对象的位置将发生改变。
8.移动游戏对象
(1).游戏对象在原来的位置基础上继续移动,位移函数: transform.Translate (Vector3 offset)相当于
transform.position += offset
(2).代码清单using UnityEngine;

public class MoveCube : MonoBehaviour
{
private int direction = 1;
private int count = 0;

void Update ()
{
transform.Translate (new Vector3(0, 0.05f * direction, 0));
//transform.position += new Vector3 (0, 0.05f * direction, 0);
}

void FixedUpdate()
{
count++;
if(count == 80)
{
count = 0;
direction = -direction;
}
}
}(3).把MoveCube脚本绑定在Cube对象上运行游戏
9.缩放游戏对象
(1).Transform.localScale = new Vector3(x,y,z)其中Vector3的x为在x轴方向的缩放,y为在y轴方向的缩放,z为在z轴方向的缩放。
(2).整体缩放:transform.localScale *= 1.2f
(3).代码清单using UnityEngine;

public class ScaleCube : MonoBehaviour
{
private int frameCount = 0;

void Update ()
{
frameCount++;

if (frameCount == 50)
{
transform.localScale = new Vector3 (1.5f, 1.5f, 1.5f);
}

if(frameCount == 100)
{
frameCount = 0;
transform.localScale *= 0.5f;
}
}
}(4).把ScaleCube脚本绑定在Cube对象上运行游戏
10.旋转游戏对象
(1).Transform.Rotate():该函数用于设置游戏对象自转放。
(2).Transform.RotateAround():该函数用于设置游戏对象围绕着某一个点旋转。
(3).代码清单using UnityEngine;

public class RotateCube : MonoBehaviour
{
void Update ()
{
transform.Rotate (new Vector3(0, 1, 0));
transform.RotateAround (GameObject.Find ("Capsule").transform.position, Vector3.back, 3);
}
}(3).把MoveCube脚本绑定在Cube对象上运行游戏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐