一、鼠标键盘输入
游戏的输入可以来自于鼠标,键盘,触摸屏,游戏手柄
String message;
void Update(){
var input = Input.mousePosition;
message = input.ToString();
}
void OnGUI(){
GUILayout.TextArea(message,200);
}
显示一个Vector3类型的xyz的鼠标位置。
Input.GetButtonDown(0):0代表鼠标左键,1代表鼠标右键,如果鼠标左键按下返回true。
Input.GetKeyDown("space"): 检测空格是否按下。
更多操作可以查看Unity Script API(UnityEngine.Input - Unity 脚本 API)
InputManger 管理控制器
Editor->Project Setting->Input
二、组件的调用
组件Component代表一个功能
例如AudioSource代表音乐资源,可以播放音乐,音效。
Play on wake表示游戏开始自动播放。
在代码中也可以使用API来使其播放音乐。
1获取AudioSource组件
AudioSource audio = this.GetComponent<AudioSource>();
2播放
audio.Play();
其中<>表示泛型,即获取<AudioSource>类型的组件。
鼠标点击播放或停止播放。
三、组件的参数
假设想要选用的组件不在当前物体下,在脚本中可以引用其他物体下的脚本
方法一:
public GameObject bgm;
void Start(){
AudioSource audio = bgm.GetComponent<AudioSource>();
audio.Play();
}
先获取想要引用的物体,再获取这个物体的组件。
方法二:
public AudioSource audio;
直接创建一个变量,然后在检查器中将想要获得的物体拖到audio中
四、脚本组件的引用
一个脚本中访问另一个脚本
和普通组件一样
1 API获取
FanLogic fan = node.getComponent<FanLogic>();
2 直接引用
public FanLogic fan;
public FanLogic fan;
void Update(){
if(Input.GetMouseButtonDown()){
FanLogic fanlogic = fan.GetComponent<FanLogic>();
fanlogic.speed = 180;
}
}
public FanLogic fan;
void Update(){
if(Input.GetMouseButtonDown()){
fan.speed = 180;
}
}
五、消息调用
消息调用,SendMessage,以消息的形式来调用另一个组件
public GameObject obj;//找到目标节点
obj.SendMessage(函数名,value);
//Main Logic
public GameObject target;
void Update(){
if(Input.GetMouseButtonDown(0)){
target.SendMessage("doRotate");
}
}
//FanLogic
public float speed;
void doRotate(){
speed = 180;
this.transform.Rotate(0,speed*Time.deltaTime,0,Space.Self)
}