U3D拾零


编程

 
发布时间:2023-10-26 访问次数:113
零碎    



  编程常用的数据类型有:

 (1)int:整型 用来存储整数

 (2)float:浮点型 用来存储小数

 (3)bool:布尔型 用来存储true或false

 (4)string字符串型

  C#的数据类型:

 (1)值类型

   1 简单类型:常用int整型(即整数) float浮点型(即小数) bool布尔型(true flase) string字符串型

   2 枚举类型:即举例类型 如:

  Public enum PlayerState{

  Idle,

  Walk,

  Dead
  }

 (2)引用类型

   1 素组:即一个集合 如 Public int[] numList

   2 类:在U3D里写的每一个脚本都是一个类 它不但包括数据也包括处理数据的方法(函数) 如:

  using System; //引用函数的命名

  class Person{ //类的定义 class为保留字 表示定义一个类 Person为类名(必须与C#文件名一致 首字母也应大写)

   private string name="张三"; //类的数据成员声明 private表示私有数据 不可在类外面引用

   public void Display(){ //类的方法(即函数)声明 public表示公用数据 可在类外面引用

   Console.WriteLine("姓名:{0}",name.age);
   }
  }

  只要类是继承至Mono 那么各API(即函数)的执行顺序都是:

        Prefab Instantiate
        /        \
      Awake(启动时执行1次) OnEnable
       |
      Start(只执行1次)
     /        \ 
  Update((每帧执行1次) FixedUpdate
    |
  LateUpdate
    |
  Coroutine(协程)
    |
  Rendering(渲染)
    |
  Quitting(退出)

  函数中常用的语句有:

 (1)条件语句

  if(id==1){
  }
  else if(id==2){
  }

 (2)循环语句

   1 for循环:

  for(int i=1;i<=10;i++){}

   2 循环遍历:类似for循环

  foreah(GameObject go in golist){}

   3 while循环:

  while(i<10){i++;}

  碰撞检测函数:它要求两个物体都要有碰撞器(collider)并且至少必须有一个是刚体

  碰撞发生时执行1次:

  private void OnCollisionEnter(Collision collision){

  print(collision.collider.name); //获取碰撞物体的名称
  }

  碰撞过程中一直执行:private void OnCollisionStay(Collision collision){}

  碰撞结束时执行1次:private void OnCollisionExit(Collision collision){}

  触发检测函数:

  进入触发区域时执行1次:private void OnTriggerEnter(Collider other){}

  在触发区域内部一直执行:private void OnTriggerStay(Collider other){}

  退出触发区域时执行1次:private void OnTriggerExit(Collider other){}

  控制摄像机跟随目标点进行移动:

  public class FollowTarget : MonoBehaviour
  {
   pablic Transtorm hero; //定义一个目标点位置

   private Vector3 offset; //定义一个偏移值

   void Start()
   {
     offset = transform.position - hero.position;
   }
   void Update()
   {
     transform.position = offset + hero.position;
   }
  }

·发表评论