创建移动物体
一开始我们新建了项目之后,在空白处右击找到Cube
为了方便我们在下面的project栏创建一个文件夹(GameScript)
之后我们开始创建移动脚本,同样的在project栏右击找到C# Script,创建后命名为Cubemove
开始编写代码
移动脚本
第一种
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cubemove : MonoBehaviour
{
public float m_speed = 10f;//这个定义为公有变量,方便之后修改物体速度
// Start is called before the first frame update
void Start()//这个函数是会在一开始就游戏调用的,
{
}
// Update is called once per frame
void Update()//这个函数会在每帧调用
{
if(Input.GetKey(KeyCode.UpArrow))//如果按下了↑
{
this.transform.Translate(new Vector3(m_speed * Time.deltaTime,0,0));//这个物体会在X轴上位移m_speed * Time.deltaTime
}
if (Input.GetKey(KeyCode.DownArrow))//如果按下了↓
{
this.transform.Translate(new Vector3(-1 * m_speed * Time.deltaTime, 0, 0));//这个Time.deltaTime是一个很小的值大概等于1/帧数
}
if (Input.GetKey(KeyCode.RightArrow))//如果按下了→
{
this.transform.Translate(new Vector3(0, 0,-1 * m_speed * Time.deltaTime));//不加上这个Time.deltaTime,会速度过快
}
if (Input.GetKey(KeyCode.LeftArrow))//如果按下了←
{
this.transform.Translate(new Vector3(0, 0, m_speed * Time.deltaTime));//不加那就是每帧10个单位的速度,加了就是每秒10个单位
}
}
}
第二种
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cubemove : MonoBehaviour
{
public float m_speed = 10f;//这个定义为公有变量,方便之后修改物体速度
public KeyCode m_upkey = KeyCode.UpArrow;
public KeyCode m_downkey = KeyCode.DownArrow;
public KeyCode m_rightkey = KeyCode.RightArrow;
public KeyCode m_leftkey = KeyCode.LeftArrow;//按键也公有化,方便以后修改
// Start is called before the first frame update
void Start()//这个函数是会在一开始就游戏调用的,
{
}
void Update()//这个函数会在每帧调用
{
if(Input.GetKey(m_upkey))
{
this.transform.Translate(new Vector3(m_speed * Time.deltaTime,0,0));//这个物体会在X轴上位移m_speed * Time.deltaTime
}
if (Input.GetKey(m_downkey))
{
this.transform.Translate(new Vector3(-1 * m_speed * Time.deltaTime, 0, 0));//这个Time.deltaTime是一个很小的值大概等于1/帧数
}
if (Input.GetKey(m_rightkey))
{
this.transform.Translate(new Vector3(0, 0,-1 * m_speed * Time.deltaTime));//不加上这个Time.deltaTime,会速度过快
}
if (Input.GetKey(m_leftkey))
{
this.transform.Translate(new Vector3(0, 0, m_speed * Time.deltaTime));//不加那就是每帧10个单位的速度,加了就是每秒10个单位
}
}
}
挂载脚本
我这里还是使用第一种方式来演示
按住你刚刚写的脚本拖动到Cube上,即可完成挂载。
挂载之后点击Cube,我们可以看到右侧出现了你刚刚写的脚本,并且有一栏是你的速度,因为是公有的所以会在这里显示出来
开始测试
按下Ctrl+p ,开始测试,
可能出现的疑问
1.在脚本里面为什么右移是向Z轴的负方向移动
2.第二种脚本有什么好处呢?
好处:在以后做修改热键的时候大有用处,如果按照第一种的方法来编写的化几乎就是不可改的了。
学习笔记
1.所有按键:
值 对应键
Backspace 退格键
Delete Delete键
Tab TabTab键
Clear Clear键
Return 回车键
Pause 暂停键
Escape ESC键
Space 空格键
Keypad0 小键盘0
Keypad1 小键盘1
Keypad2 小键盘2
Keypad3 小键盘3
Keypad4 小键盘4
Keypad5 小键盘5
Keypad6 小键盘6
Keypad7 小键盘7
Keypad8 小键盘8
Keypad9 小键盘9
KeypadPeriod 小键盘“.”
KeypadDivide 小键盘“/”
KeypadMultiply小键盘“*”
KeypadMinus 小键盘“-”
KeypadPlus 小键盘“+”
KeypadEnter 小键盘“Enter”
KeypadEquals 小键盘“=”
UpArrow 方向键上
DownArrow 方向键下
RightArrow 方向键右
LeftArrow 方向键左
Insert Insert键
Home Home键
EndEnd键
PageUp PageUp键
PageDown PageDown键
F1功能键F1
F2功能键F2
F3功能键F3
F4功能键F4
F5功能键F5
F6功能键F6
F7功能键F7
F8 功能键F8
F9 功能键F9
F10 功能键F10
F11 功能键F11
F12 功能键F12
F13 功能键F13
F14 功能键F14
F15 功能键F15
Alpha0 按键0
Alpha1 按键1
Alpha2 按键2
Alpha3 按键3
Alpha4 按键4
Alpha5 按键5
Alpha6 按键6
Alpha7 按键7
Alpha8 按键7
Alpha9 按键9
Exclaim ‘!’键
DoubleQuote双引号键
Hash Hash键
Dollar ‘$’键
AmpersandAmpersand键
Quote 单引号键
LeftParen 左括号键
RightParen右括号键
Asterisk ‘ * ’键
Plus ‘ +’键
Comma ‘ , ’键
Minus ‘ - ’键
Period ‘ . ’键
Slash ‘ / ’键
Colon ‘ : ’键
Semicolon‘ ; ’键
Less ‘< ‘键
Equals ‘ = ‘键
Greater ‘ >‘键
Question ‘ ? ’键
At ‘@’键
LeftBracket‘ [ ‘键
Backslash ‘ \ ’键
RightBracket‘ ] ’键
Caret ‘ ^ ’键
Underscore‘ _ ’键
BackQuote‘ ` ’键
A ‘a’键
B ‘b’键
C ‘c’键
D ‘d’键
E ‘e’键
F ‘f’键
G ‘g’键
H ‘h’键
I ‘i’键
J ‘j’键
K ‘k’键
L ‘l’键
M ‘m’键
N ‘n’键
O ‘o’键
P ‘p’键
Q ‘q’键
R ‘r’键
S ‘s’键
T ‘t’键
U ‘u’键
V ‘v’键
W ‘w’键
X ‘x’键
Y ‘y’键
Z ‘z’键
Numlock Numlock键
Capslock 大小写锁定键
ScrollLockScroll Lock键
RightShift 右上档键
LeftShift 左上档键
RightControl右Ctrl键
LeftControl左Ctrl键
RightAlt 右Alt键
LeftAlt 左Alt键
LeftApple 左Apple键
LeftWindows左Windows键
RightApple右Apple键
RightWindows右Windows键
AltGr Alt Gr键
Help Help键
Print Print键
SysReq Sys Req键
Break Break键
Mouse0 鼠标左键
Mouse1 鼠标右键
Mouse2 鼠标中键
Mouse3 鼠标第3个按键
Mouse4 鼠标第4个按键
Mouse5 鼠标第5个按键
Mouse6 鼠标第6个按键
JoystickButton0手柄按键0
JoystickButton1手柄按键1
JoystickButton2手柄按键2
JoystickButton3手柄按键3
JoystickButton4手柄按键4
JoystickButton5手柄按键5
JoystickButton6手柄按键6
JoystickButton7手柄按键7
JoystickButton8手柄按键8
JoystickButton9手柄按键9
JoystickButton10手柄按键10
JoystickButton11手柄按键11
JoystickButton12手柄按键12
JoystickButton13手柄按键13
JoystickButton14手柄按键14
JoystickButton15手柄按键15
JoystickButton16手柄按键16
JoystickButton17手柄按键17
JoystickButton18手柄按键18
JoystickButton19手柄按键19
Joystick1Button0第一个手柄按键0
Joystick1Button1第一个手柄按键1
Joystick1Button2第一个手柄按键2
Joystick1Button3第一个手柄按键3
Joystick1Button4第一个手柄按键4
Joystick1Button5第一个手柄按键5
Joystick1Button6第一个手柄按键6
Joystick1Button7第一个手柄按键7
Joystick1Button8第一个手柄按键8
Joystick1Button9第一个手柄按键9
Joystick1Button10第一个手柄按键10
Joystick1Button11第一个手柄按键11
Joystick1Button12第一个手柄按键12
Joystick1Button13第一个手柄按键13
Joystick1Button14第一个手柄按键14
Joystick1Button15第一个手柄按键15
Joystick1Button16第一个手柄按键16
Joystick1Button17第一个手柄按键17
Joystick1Button18第一个手柄按键18
Joystick1Button19第一个手柄按键19
Joystick2Button0第二个手柄按键0
Joystick2Button1第二个手柄按键1
Joystick2Button2第二个手柄按键2
Joystick2Button3第二个手柄按键3
Joystick2Button4第二个手柄按键4
Joystick2Button5第二个手柄按键5
Joystick2Button6第二个手柄按键6
Joystick2Button7第二个手柄按键7
Joystick2Button8第二个手柄按键8
Joystick2Button9第二个手柄按键9
Joystick2Button10第二个手柄按键10
Joystick2Button11第二个手柄按键11
Joystick2Button12第二个手柄按键12
Joystick2Button13第二个手柄按键13
Joystick2Button14第二个手柄按键14
Joystick2Button15第二个手柄按键15
Joystick2Button16第二个手柄按键16
Joystick2Button17第二个手柄按键17
Joystick2Button18第二个手柄按键18
Joystick2Button19第二个手柄按键19
Joystick3Button0第三个手柄按键0
Joystick3Button1第三个手柄按键1
Joystick3Button2第三个手柄按键2
Joystick3Button3第三个手柄按键3
Joystick3Button4第三个手柄按键4
Joystick3Button5第三个手柄按键5
Joystick3Button6第三个手柄按键6
Joystick3Button7第三个手柄按键7
Joystick3Button8第三个手柄按键8
Joystick3Button9第三个手柄按键9
Joystick3Button10第三个手柄按键10
Joystick3Button11第三个手柄按键11
Joystick3Button12第三个手柄按键12
Joystick3Button13第三个手柄按键13
Joystick3Button14第三个手柄按键14
Joystick3Button15第三个手柄按键15
Joystick3Button16第三个手柄按键16
Joystick3Button17第三个手柄按键17
Joystick3Button18第三个手柄按键18
Joystick3Button19第三个手柄按键19
记得加上KeyCode.
关于this.transform的解释
this指的是挂载物体,类型是GameObject.
(类型)常用的属性
(Vector3)this.transform.position(只读)//界面显示的position
(Vector3)this.transfom.rotation(只读)//界面显示的rotation
(Vector3)this.transform.Lossycsale(只读)//界面显示的scale
(GameObject)this.transform.parent//父物体
(Vector3)this.transform.Translate//改变物体移动向量,我估计初值都是(0,0,0)
(Vector3)this.transform.localEulerAngles//改变物体的rotaion
(Vector3)this.transform.localScale//改变物体的scale
本文尚不完善,希望大家多多支持,有什么问题欢迎指出,谢谢。
下期预告:方向键控制物体转弯和跳跃脚本