获取输入类型
Input.GetKey(KeyCode.A)
摄像头投射的两种方式
projection orthographic 直角2D的 perspective 角度 透视
获取组件
GetComponent<Renderer>
加载预制件 并且实例化 预制件放在Assets-Resources文件下
Instantiate (Resources.Load (""));
销毁物体
Destroy(obj);
Resources.UnloadUnusedAssets ();
碰撞器的检测条件
1.参与碰撞的双方都必须有碰撞器 cllider
2.参与碰撞的物体必须有一个有刚体 rigidbody
场景切换
引入场景的命名空间 using UnityEngine.SceneManagement
SceneManager.LoadScene()
加入Build Setting
偏好设置
PlayerPrefs.SetInt()
struct定义的为值类型 存在栈上
vector3 struct定义 值类型 存在栈上
string class定义 引用类型 存在堆上
构造函数Constructor 在一个类型中初始化成员变量
1.构造函数的名称和类名完全相同
2.构造函数没有返回值的声明
3.构造函数可以重载
格式字符串
System.String.Format()
const 和readonly 区别
const 字段只在初始化的时候赋值
readonly可以在声明 和构造函数中赋值
因此根据构造函数不同readonly可能有不同的值
const是编译时常量 readonly 是运行时常量
static定义的 是类的变量 属于类调用
重载运算符. 需要写在struct定义的类里
public struct Text{
int x;
int y;
public Text(int x, int y){
this.x = x;
this.y = y;
}
public static Text operator + (Text t1, Text t2){
return new Text (t1.x + t2.x, t1.y + t2.y);
}
}
override 重写父类里的函数
public override string ToString ()
{
return string.Format ("[MyArrayList: Count={0}, Capacity={1}, Item={2}]", Count, Capacity, Item);
}
索引器
public int this [int index] {
get {
if (index < count && index >= 0) {
return list [index];
}
return -1;
}
set {
if (index < count&& index >= 0) {
list [index] = value;
}
}
}
抽象类 关键字 abstract
抽象类不能实例化 继承自抽象类的子类要实现父类里的方法
public abstract class World{
public string region;
protected string name;
public abstract void Culture();
}
public class China:World{
public override void Culture ()
{
Debug.Log ("China");
}
}
接口
接口和抽象类类似 完全抽象的叫做接口
接口里所有函数必须是没有实现
接口定义的是一套规则
子类必须实现接口里的方法
public interface Icontrol{
void SystemEvent ();
}
public class MyButton: Icontrol{
public void SystemEvent (){
}
}
sealed 关键字
被sealed关键字标记的类不能被继承
public sealed class World{
public string region;
public void Culture();
}
in out ref关键字
in 默认的传递方式, 向函数内部传送至
out在使用类型的时候必须必须先问其赋值,又被调方为其赋值
ref 必须有调方明确为其赋值,因此不需要有被调方明确赋值,ref 被调方可更改也不不更改
ref传给函数的是参数地址 而out用来从函数想调用者返回值
out参数在传递前不需要赋值,即使赋值也会被清空,所以 函数内部必须对out赋值 否则出错
ref 参数可在传递前赋值,因为ref传递的是参数地址,但是函数内部并不必须对ref参数进行赋值,
也就是说ref可以修改也可以不修改
运算符
and 都为真时为真 1& 1 = 1 1 & 0 = 0 0&0 =0
or 只要有一个为真为真 1 1 = 1 1 0 = 1 0 0 = 1
XOR ^ 异或运算 半加运算 只保留最后那位
1^ 0 = 1 0 ^0 = 0 1 ^ 1 = 0;
命名空间namespace
异常类Exception
try
{
}
catch()
{
}
finally{
}
delegate 委托 核心是回调
delegate也是一种类型
public delegate void Over();
public static Over over;
static 用类来调用
其他界面给over赋值
B.over += BisOver;赋值为方法名
代码修改颜色
float r = Random.Range(0f, 1f);
float g = Random.Range(0f, 1f);
float b = Random.Range(0f, 1f);
currentObj.GetComponent<MeshRenderer>().material.color = new Color(r, g, b);
//加载出来的位置在相机前面
// currentObj.transform.position = Camera.main.transform.position + Camera.main.transform.forward * 0.85f;
加速率
Rigidbody rb = currentObj.GetComponent<Rigidbody>();
rb.velocity = Camera.main.transform.forward * 10;