Unity3D基础知识 加入小组

34个成员 32个话题 创建时间:2015-09-16

发现一个值得讨论的问题!

发表于06-14 414次查看

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SelectUnit : MonoBehaviour {
     RaycastHit hit;
     public List<GameObject> selectedunits = new List<GameObject>();
        // Update is called once per frame
     void Update () {
         if (Input.GetMouseButton (0)) {
             if (Physics.Raycast (Camera.main.ScreenPointToRay (Input.mousePosition), out hit, 100)) {
                 selectedunits.Add (hit.collider.gameObject);
                 Debug.Log (selectedunits.Count);
             }

         }
     }
    }
  把这个脚本分别绑定两个物体,运行,并分别点击两个物体,selectedunits.Count是点击这两个物体的累加,selectedunits像共用引用变量,在试验以下脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SelectUnit : MonoBehaviour {

public List<GameObject> selectedunits = new List<GameObject>();

void OnMouseDown(){
  RaycastHit hit;
   if (Physics.Raycast (Camera.main.ScreenPointToRay (Input.mousePosition), out hit, 100)) {
    selectedunits.Add (hit.collider.gameObject);
    Debug.Log (selectedunits.Count);
   }
}
}
也绑定两个物体,但selectedunits.Count是在各自物体上累加
以上两个脚本运行结果,不知所以然?

发表回复
你还没有登录,请先 登录或 注册!