unity 笔记

https://www.csdn.net/gather_27/MtTaggxsOTE0LWJsb2cO0O0O.html  C#简介
http://zhongguose.com/#shangengzi  颜色
https://blog.csdn.net/sinat_34791632/article/details/78224588   Unity3d之Player Settings设置
/***********************************************************/

点击选中物体

方法1:OnMouseDown()只针对脚本挂载的物体有效

首先,要给 物体加上 碰撞器Collider

然后在物体脚本上加入 

    void OnMouseDown()//只针对脚本挂载的物体有效
    {
        Debug.Log("jiance");
    }

方法2:检测从屏幕发出的射线与物体发生碰撞,而这个发生碰撞的物体就是你选中的物体。

首先,要给 物体加上 碰撞器Collider

然后在物体脚本上加入

void MobilePick()  
{  
    if (Input.touchCount != 1 )  
        return;  
  
    if (Input.GetTouch(0).phase == TouchPhase.Began)  
    {  
        RaycastHit hit;  
        Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);  
  
        if (Physics.Raycast(ray, out hit))  
        {  
            Debug.Log(hit.transform.name);  
            //Debug.Log(hit.transform.tag);  
        }  
    }  
}  
  
void MousePick()  
{  
    if(Input.GetMouseButtonUp(0)) //首先判断是否点击了鼠标左键 
    {  
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);  //定义一条射线,这条射线从摄像机屏幕射向鼠标所在位置
        RaycastHit hit;  //声明一个碰撞的点(暂且理解为碰撞的交点)
  
        if (Physics.Raycast(ray, out hit))  //如果真的发生了碰撞,ray这条射线在hit点与别的物体碰撞了
        {  
            Debug.Log(hit.transform.name);  
            //Debug.Log(hit.transform.tag);  
        }  
    }  
}


如果无法选中物体时,要检查是否物体加了碰撞器。

方法如下:

GameObject gameObject = (GameObject)Instantiate(...);  
  
gameObject.name = "game_object";  
gameObject.AddComponent<MeshCollider>();  
/*****************************************************************************************/
时间:
Console.WriteLine("显示当前时间:{0}", DateTime.Now.ToLocalTime());//当地时间

/*****************/
动画先在物体上创建 Animation组件 在去建动画
/*****************/

/************************************/
Unity3D 数字逐渐增加,一个数字动态变化到另一个数字(使用协程)  CPU分时
int max;  //最终值
 
 int min;   //初始值
 int result = 0;
 public int change_speed = 5; //速度  越大变化速率越慢
    
// Use this for initialization
void Start () 
{
   StartCoroutine(Change());  //放到开始协程的地方
}
 IEnumerator Change()
    {
        int delta = (max - min) / change_speed;   //delta为一个常数,每次加的数大小
 
        result = min;
 
        for(int i = 0;i<change_speed;i++)
        {
            result += delta;
            this.GetComponent<Text>().text = result.ToString();
            yield return new WaitForSeconds(0.1f);     //每 0.1s 加一次
        }
        this.GetComponent<Text>().text = max.ToString();
        StopCoroutine(Change());
    }
/*********************************/

/**************************/ 
 找子物体
 GameObjext.transform.GetChild(1).GetChild(2).GetChild(0).gameObjct.SetActive(false);
 
 跳转场景 SceneManager.LoadScene("main")跳转场景


 public static 类名 instance;
 public static 类名 GetInstance()
{
 if(instance==null)
 {
  instance=new 类名();
  }
 return instance;
}
/*****************************/
#region 说明片段
#endregion
/****************************/
 延时函数运行时间
InvokeRepeating("函数名",几秒后开始运行,运行间隔时间);
CancelInvoke("函数名");//结束InvokeRepeating

2.协程:
在需要的地方 StartCorotine("函数名");
停止的地方 StopCorotine("函数名");
IEnumerator 函数名()
{
 yield return new WaitForSeconds(0.5f);
 }
/******************************/

/****************************/
发光闪烁插件 Highlighting System v4.0
1.在摄像头上添加渲染组件 Highlighting Renderer(Script)
2.在需要发光的物体上添加 Highlighter(Svript)
3.在脚本里调用有发光组件的物体(其前提是using HighlightingSystem),类型为Highlighter
/******************************/

/*******************************/
样条线插件   SuperSplines+Pro
1.在需要有样条线的物体上创建子物体(New Spline),可以调整样条线的位置和方向
2.子物体上加载脚本Spline 和 Spline Mesh,Mesh Renderer。Mesh Renderer下的Base Renderer是样条线的样式。把Spline给到Mesh Renderer中
3.让线从起点到终点有一个动态的效果,Spline Mesh下的Updata Mode类型换成Ecery Frame,
                                    Segmentatiob Optio下的Split mode类型换成By Spline Parameter
/*******************************/

Application.Quit();关闭

/****************************/
鼠标滑过进入划出 使用组件接口 Event Trigger 添加下面的事件//SlipEvent
public void OnEnter()
{
  transform.DOScale(new Vector3(1.05f,1.05f,1.05f),0.2f);
}
public void OnDown()
{
 transform.DOScale(new Vector3(1,1,1),0.2f);
}
public void OnUp()
{
 transform.DOScale(new Vector3(1.05f,1.05f,1.05f),0.2f);
}
public void OnExit()
{
 transform.DOScale(new Vector3(1,1,1),0.2f);
}
/***************************/

/*************************/
窗口最小化
[DllImport("user32.dll")]
public static extern bool CloseWindow(IntPtr hwnd,int n);
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
const int sw_showminimized=2;   //不可改变的变量

public void Minimized()
{
 CloseWindow(GetForgroundWindow(),sw_showminimized);
}
/***************************/


/******************************/
代码控制添加/删除组件
boxCollider a=OBJ.AddComponent<boxCollider>();
Destoy(OBj.GetComponent<boxCollider>());

销毁一个物体
GameObject.Destroy(gameObject);
生成一个物体在哪一个位置
Gameobject b=Instantiate(预制体obj,new Vector3(1f,1f,1f),Quaternion.identity);//Quaternion.identity 四元素值为0 xyzw
生成的b物体位于哪个的子物体
b.transform.parent=gameobject.transform;

记录一个物体的位置
Vector3 a=gameobject.transform.posotion;

bool[]arr=new bool[10];
/******************************/

/******************************/
灯光烘焙
point light 添加光源 
光源中Light有一个mode:
Baked:烘焙好后不会在变化的光,耗费性能最低;
Mixed:烘焙好后根据场景变化适当调整,耗费性能中;
Realtime:实时监控场景变化,渲染光照,耗费性能最高
Unity顶部菜单栏上选择“Window”-“Light”-“Settings”
点击取消“Auto Generate”,点击“Generate Lighting”
烘焙后会多一些文件 LightBakeTest
/********************************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值