游戏对象的移动旋转缩放

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.移动游戏对象
(1).位移函数: void Translate(Vector3 translation, Space relativeTo = Space.Self);
(2).移动transform在translation的方向和距离。
(3).如果relativeTo留空或者设置为Space.Self, 移动被应用相对于变换的自身轴。(当在场景视图选择物体时, x、y和z轴显示)。
(4). 如果相对于Space.World 移动被应用相对于世界坐标系统。
(5).代码清单
using UnityEngine;

public class MoveCube : MonoBehaviour 
{
	void Update () 
	{
            transform.Translate (Vector3.up * Time.deltaTime);
            transform.Translate (Vector3.up * Time.deltaTime, Space.World);
	}
}
(6).把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).旋转: void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self);
应用一个欧拉角的旋转角度, eulerAngles.z度围绕z轴, eulerAngles.x度围绕x轴, eulerAngles.y度围绕y轴(这样的顺序)。
如果相对于留空或者设置为Space.Self 旋转角度被应用围绕变换的自身轴。(当在场景视图选择物体时, x、y和z轴显示), 如果相对于 Space.World 旋转角度被应用围绕世界的x、y、z轴。
(2).围绕旋转: void RotateAround(Vector3 point, Vector3 axis, float angle);
围绕世界坐标的point点的axis旋转该变换angle度。
(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);
	}
}
(4).把MoveCube脚本绑定在Cube对象上运行游戏

猜你喜欢

转载自blog.csdn.net/aihiao/article/details/80073651