地图、角色都建立好之後,就要让角色移动起来啦!
向量是在坐标系中有方向、大小的值。
Vector2,二维向量,在平面座标系中,与原点的差值。Vector2(x,y)。
Vector3,三维向量,在三维空间中,与原点的差值。Vector3(x,y,z)。
x,y,z是数字,可以写成整数(int)或浮点数(float ※数字後要加 f,例如 0.0f )。
//向量变数基本用法
Vector2 vec2 = new Vector2(1,0);//int x=1 , int y=0
Vector3 vec3 = new Vector3(1.0f,0.0f,0.5f);//float x=1.0 , float y=0.0 , float z=0.5
Debug.Log(vec2.x); //1
Debug.Log(vec3.z); //0.5
另外补充,Vector有属性可以使用,直接呼叫就不用设值。(请参阅unity官方文件)
//不需要进行new Vector,可直接呼叫的属性
Debug.Log(Vector2.up.y); // 1
Debug.Log(Vector2.up); // (0.0,1.0)
vector2的属性,每个属性都有预设好的值。
vector3也有。
每一个在场景中的物件都有Transform,负责存取物件的座标位置、旋转、缩放。
**常用属性**
transform.Position = new Vector3(0, 0, 0); //以世界为中心的座标
transform.localPosition = new Vector3(0, 0, 0); //以父物件为中心的座标
**常用方法**
transform.Translate(Vector3.forward * Time.deltaTime);//位移方法
transform.Rotate(xAngle, yAngle, zAngle, Space.Self); //以自身为轴心旋转
transform.Rotate(xAngle, yAngle, zAngle, Space.World);//轴心取决於世界(scene)
※Time.deltaTime(帧数之间的时差)。(请参阅unity时间)
private void movement()//方法
{ //采用直接改变物件座标的方式
//一、向右走
if (Input.GetKey("d"))//输入.来自键盘(“d”)
{
this.gameObject.transform.Translate(new Vector2(5, 0) );
} //此类别.这个物件.座标系统.位移(delta向量)
//二、向左走;依照一、的作法会发现物件飙很快,因此要乘上Time.deltaTime来延迟。
if (Input.GetKey("a"))
{
this.gameObject.transform.Translate(new Vector2(-5, 0) * Time.deltaTime);
}
//向上走 //可以直接使用Vector的属性Vector2.up,就不需要new一个变数
if (Input.GetKey("w"))
{
this.gameObject.transform.Translate(Vector2.up * Time.deltaTime);
}
//向下走
if (Input.GetKey("s"))
{
this.gameObject.transform.Translate(Vector2.down * Time.deltaTime);
}
}
public float speed; //设公开的数度变数,可在unity中设值调整
private void movement()//方法
{ //采用直接改变物件座标的方式
//向右走
if (Input.GetKey("d"))//输入.来自键盘(“d”)
{
this.gameObject.transform.position += new Vector3(speed, 0, 0);
} //此类别.这个物件.座标系统.位置(为一个向量值x,y,z)+=这个向量
//向左走
if (Input.GetKey("a"))
{
this.gameObject.transform.position -= new Vector3(speed, 0, 0);
}
//向上走
if (Input.GetKey("w"))
{
this.gameObject.transform.position += new Vector3(0, speed, 0);
}
//向下走
if (Input.GetKey("s"))
{
this.gameObject.transform.position -= new Vector3( 0,speed, 0);
}
}
准备资料 etf50_df = pd.read_csv("data/ETF50.csv&q...
今天我们接着继续和DataFrame继续奋斗!先把套件和档案载入: import pandas as...
storage 选用: redis & scylla & mysql 简介 每件事情的走向...
出於书本 Chapter 4. Hacking Methodology Hosts 扫描起手式 pi...
前言 接下来这一篇当作讲讲废话,因此标题也很 X 话,但其实写部落格是真的可以赚一点点钱的唷。 写部...