今天努努力,把官方C#初级教程学完吧!
今日重点
1. 常用指令
- LookAt:transform.LookAt(Transform实例);
让摄像机对准目标物体(该脚本应用到摄像机上,并将目标物体拖动到target)
可以在Unity左上角更改Global和Local的访问形式 - Destory:Destory(GameObject,float);
用于在游戏中移除游戏对象或组件
第二个参数——浮点数用于延时 - GetButton/GetButtonDown/GetButtonUp区分
使用GetButton来代替GetKey,可以在Edit-Project settings...-Input manager进行修改 - GetAxis
不同于GetButton返回布尔值,GetAxis返回[-1,1]范围内的浮点值
在Input manager可以设置更多的属性,例如通过Gravity调控归零速度,通过Sensitive让变化更平滑等 - OnMouseDown
用于在鼠标点击脚本绑定物体时,对该物体产生一系列作用(如添加一个力) - GetComponent
建议多看看视频GetComponent
会占用大量处理时间,尽量减少调用,最好不要在Update()中调用
注意观察视频中,不同文件套在同一对象和套在不同对象上时的调用方法 - DeltaTime
- Instantiate
常用于克隆prefab(预配置对象)
注意prefab是通过把物体拖动到文件夹位置来创建的,创建后需要把从文件中拖动prefab来实现绑定,之前的物体可以删除了 - Invoke:Invoke("函数名",float);
用于设置调用函数前的延迟
必须是返回值为void的函数
可以使用InvokeRepeating来进行反复调用
今日练习
屠龙宝刀点击就送
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Transform target;
//public GameObject obj;
public Rigidbody objfab;
public OtherScript otherscript;
// Start is called before the first frame update
void Start()
{
//otherscript = obj.GetComponent<OtherScript>();
//Debug.Log("The health is:" + otherscript.health);
}
// Update is called once per frame
void Update()
{
//transform.LookAt(target); //需要套用在摄像机上
if(Input.GetButtonDown("Jump")) //引用Input manager中的字符进行控制,这样的好处在与可以多个键位对应同一动作
{
//Destroy(obj);
}
if(Input.GetKeyDown(KeyCode.A))
{
Rigidbody rocketInstance;
rocketInstance = Instantiate(objfab) as Rigidbody;
//此处注意,在转换时,objfab本身也需要为rigidbody才行!!!
rocketInstance.AddForce(objfab.transform.forward * 5000);
}
}
}
今日总结
嘛总算是完成了C#的初级教程了,感觉确实对Unity增加了不少了解。说起来明天就要回学校了,回校之后也要好好努力鸭!争取在正式上课之前,把Unity基础完全掌握吧!
除此之外还要去搞论文研读什么的。
偶尔在博客上谈谈心或许也可以?
🙄
阅读量
loading...