第一个设置中心,Center为Unity根据周边近似计算出来的,Pivot是自定义中心的(UI),点击切换为Pivot后就可以点击中心移动到别的地方了。
第二个为参考坐标,Local是使工具轴显示为本地坐标的,切换为Global后操作轴就是世界坐标了。
//新建一个文件,声明委托类型 public delegate float GraphFunction(float x,float t); //新建一个文件,声明枚举类型 public enum GraphFunctionName{ Sine, MultiSine } //主要使用 public GraphFunctionName Name;//提供给外面选择 static GraphFunction[] functions = { SineFunction,//和枚举一一对上 MultiSineFunction }; //调用,通过委托数组和枚举取出相应的索引方法 functions [(int)Name](pos.x,Time.time);
Unity3d支持在点击了播放按钮后,去直接修改代码。然后Unity会暂停执行,暂时保存当前的运行状态,再去编译你的代码,然后重新加载你的游戏状态,继续运行。重新编译时,并不是什么东西都会保留,但是图形是会保留的。
当你在编辑器中用SceneManager重新加载场景时,会导致场景的渲染有问题,灯光颜色等混乱,颜色偏暗。(打包之后是不会的)
解决办法是打开Window-Lighting-Setting选择Object maps,取消勾选Auto Generate,手动Generate一下。
transform.position = new Vector3(point.x,1.5f,point.z);//目标位置 transform.rotation = Quaternion.identity; rig.Sleep (); rig.useGravity = false;
rig为Rigidbody组件的引用
[Range(10,100)] public int Num = 50;
这个特性会在Inspector中限制变量的赋值在10-100之间,显示为一个滑动条
但是这个特性不会真正限制值的大小,程序中可以随意给予超过范围的值;
物体在Inspector调节Transform属性都是依照自身的轴向的,如果当你需要排放一个规律型的物体,需要使用多个单物体。例如摆放一个时钟的点数时,你如果单单的赋值点数物体,然后旋转它,此时你是需要手动的去调节位置的。但是如果你参考一个时钟的中心点,一个父物体,旋转父物体,子物体的角度和位置都会得到很好的改变。快速的摆好位置后,再将这些点数拉出来,Unity会自动计算,保持它在世界坐标的位置的本地位置(这不就摆好了!)。删除辅助的父物体们。
using System.Collections; using System.Collections.Generic; using UnityEngine; //SceneManager的命名空间 using UnityEngine.SceneManagement; public class Manager : MonoBehaviour { void Start () { StartCoroutine (LoadScene ()); } IEnumerator LoadScene(){ SceneManager.LoadScene ("12", LoadSceneMode.Additive); yield return new WaitForSeconds(5f); SceneManager.UnloadSceneAsync ("12"); yield return new WaitForSeconds (1f); //加载下一个场景 SceneManager.LoadScene("20",LoadSceneMode.Additive); } }
可以认为这个就是管理场景的一个脚本,而这个场景就是那个将会一直存在的场景
通过这个场景的管理类,额外的添加其他的场景,也可以在不需要时卸载,再添加其他场景
从而实现了一种不用DontDestroyOnLoaded的更好办法,场景特么也成为一种组件的形式了
物体需要带有Collider组件,2D的类似
void Start () { Collider[] colliders = Physics.OverlapSphere (transform.position, 3); foreach (Collider c in colliders) { if (c.gameObject != this.gameObject) { Debug.Log (c.gameObject.name); } } }
Physics.OverlapSphere(中心,半径)表示检测在中心点和半径组成的圆内的物体们
2D类似,Sphere球形,还有其他的形状,自行查看API
overlap n.重叠
[Serializable] public class UIPanelInfo : ISerializationCallbackReceiver{ public UIPanelType panelType; public string panelTypeString; public string path; public void OnBeforeSerialize(){ //序列化前调用 } public void OnAfterDeserialize(){ //反序列化之后调用 UIPanelType type = (UIPanelType) System.Enum.Parse (typeof(UIPanelType), panelTypeString); panelType = type; } }
实现接口ISerializationCallbackReceiver,与两个方法
OnBeforeSerialize() 序列化之前调用,可以将要序列化的数据进一步处理后再序列化,如加密
OnAfterDeserialize() 反序列化之后调用,可以将反序列化的数据(对象的数据)进一步处理,如解密