zoukankan      html  css  js  c++  java
  • Unity3d 常用的方法

    1、创建物体

    2、加载物体

    3、寻找物体

    4、添加脚本

    1、创建物体

      GameObject go;
        // Use this for initialization
        void Start () {
            go = new GameObject("New");
        }

    find 方法查找对应的组件(找到第一个匹配的组件)

      GameObject go;
        GameObject goLight;
        Light light;
        // Use this for initialization
        void Start () {
            go = new GameObject("New");
            goLight = GameObject.Find("Directional Light");//页面组件
            light = goLight.GetComponent<Light>();
            light.color = Color.red;
        }

     两个灯光

        GameObject go;
        GameObject goLight;
        GameObject goLight2;
        Light light1;
        Light light2;
        // Use this for initialization
        void Start () {
            go = new GameObject("New");
            goLight = GameObject.Find("1/2/DirectionalLight");
            light1 = goLight.GetComponent<Light>();
            light1.color = Color.red;
    
            goLight2 = GameObject.Find("1 (1)/2/DirectionalLight");
            light2 = goLight2.GetComponent<Light>();
            light2.color = Color.green;
        }

    第二种写法(两个灯光)

        public Transform transRoot;
    
        Transform translight1;
        Transform translight2;
    
        // Use this for initialization
        void Start () {
            
            FindChild(transRoot,"RLight",ref translight1);
            FindChild(transRoot, "GLight", ref translight2);
            translight1.GetComponent<Light>().color = Color.red;
            translight2.GetComponent<Light>().color = Color.green;
        }
        
        /// <summary>
        /// 寻找物体
        /// </summary>
        /// <param name="trans">作为父物体的transform</param>
        /// <param name="findName">寻找的物体名称</param>
        /// <param name="_trans">找到的物体</param>
        void FindChild(Transform trans,string findName,ref Transform _trans)
        {
            if (trans.name.Equals(findName))
            {
                _trans = trans.transform;
                return;
            }
    
            if (trans.childCount!=0)
            {
                for (int i = 0,lenght=trans.childCount; i < lenght; i++)
                {
                    FindChild(trans.GetChild(i),findName,ref _trans);
                }
            }
        }

    2、Awake() & Start()   做初始化

       Update、LateUpdate、FixedUpdate   更新逻辑

       GetComponent 找到其他脚本

       Gameobject.Find 找到其他物体

     3、游戏输入

    在Edit → Project Settings → Input 设置游戏输入

    在脚本中利用Input类来检测输入状态

    Input.GetAxis 返回的值是 -1到1之间,0表示没有输入

  • 相关阅读:
    C# 异步编程 (12)
    C# 动态语言扩展(11)
    C# LINQ(10)
    代码整洁之道(1)
    C# 集合(9) 持续更新
    C# 字符串和正则表达式(8) 持续更新
    C# 委托、lambda表达式和事件 (7) 持续更新
    C# 运算符和类型强制转换(6) 持续更新
    C++_将图二维矩阵形式转为邻接表结构
    .NET(C#)连接各类数据库-集锦
  • 原文地址:https://www.cnblogs.com/youmingkuang/p/7407137.html
Copyright © 2011-2022 走看看