Пример #1
0
        /// <summary>
        /// 根据Resouse目录下的图片初始化背包中物品
        /// </summary>
        /// <param name="imagePath">Image path.</param>
        void CreateCell(string imagePath)
        {
            GameObject go = new GameObject(imagePath);

            go.AddComponent <Image>();
            BagItem bagItem = go.AddComponent <BagItem>();

            bagItem.SetImage(imagePath);
            bagItem.SetMyPointerClick(() =>
            {
                if (_putArObjects.Count >= 1)
                {
                    print("只可放置一个模型");
                    return;
                }
                Object model = Resources.Load("Model/" + imagePath.Split('/')[1]);
                print("bagItem click:" + gameObject);
                print("Model/" + imagePath.Split('/')[1]);
                print("Model:" + model);
                var modelInfo = ArController.CreateArModel(model, new Vector3(0, 0, 2), Quaternion.Euler(new Vector3()));
                Vector3 size  = ArUtils.GetObjectSizeByCollider(modelInfo.ArGameObject);
                modelInfo.ArGameObject.transform.position = new Vector3(0, -size.y / 2, 2 * size.z);
                // 脚本初始化都为false 当用户选择某个模型后添加对此模型的控制
                RotateAndUpDown raud           = modelInfo.ArGameObject.AddComponent <RotateAndUpDown>();
                raud.enabled                   = false;
                TransfromAroundAndDistance tad = modelInfo.ArGameObject.AddComponent <TransfromAroundAndDistance>();
                tad.SetCamera(_firstPersonCamera.GetComponent <Camera>());
                tad.enabled = false;
                DoubleClickChangeStatus dccs = modelInfo.ArGameObject.AddComponent <DoubleClickChangeStatus>();
                dccs.SetCamera(_firstPersonCamera.GetComponent <Camera>());
                dccs.enabled = false;

                // 设置模型附加的脚本信息
                modelInfo.RotateAndUpDown            = raud;
                modelInfo.TransfromAroundAndDistance = tad;
                modelInfo.DoubleClickChangeStatus    = dccs;

                modelInfo.ArGameObject.transform.RotateAround(_firstPersonCamera.transform.position, Vector3.up, _firstPersonCamera.transform.rotation.eulerAngles.y);
                // 更改名字作为每个物体不同的标识
                modelInfo.ArGameObject.name = $"{modelInfo.ArGameObject.name.Split('(')[0]}({modelId++})";

                _putArObjects.Add(modelInfo);
                onMyItemClick?.Invoke(modelInfo.ArGameObject, _putArObjects);
            });
            go.transform.SetParent(transform, false);
        }
Пример #2
0
        // Use this for initialization
        void Start()
        {
            _gameClient = ClientLab.GetGameClient();

            chatPanel.SetActive(false);

            friendBtn.onClick.AddListener(() =>
            {
                // 此处显示好友列表, 并将当前接收的消息传入android界面
                CallAndroidMethod.StartFriendListDialog();
                // chatPanel.SetActive(true);
            });
            squareBtn.onClick.AddListener(() =>
            {
                print(ArUtils.GetObjectSizeByCollider(role));
                Vector3 chatBubblePosition =
                    Camera.main
                    .WorldToScreenPoint(
                        role.transform.position +
                        new Vector3(
                            0,
                            ArUtils.GetObjectSizeByCollider(role).y / 2,
                            0)) +
                    new Vector3(0, 100, 0);
                var chatBubble = Instantiate(chatBubblePrefab, chatBubblePosition, Quaternion.Euler(new Vector3())) as GameObject;
                chatBubble.transform.SetParent(GameObject.Find("Canvas").transform);
                BubbleController bubbleController = chatBubble.GetComponent <BubbleController>();
                bubbleController.SetMessage("hello\nhello\bhello");
                bubbleController.SetTimeDelay(1);
            });
            quietImage.GetComponent <PointerClickEventTrigger>()
            .onPointerClick
            .AddListener(() =>
            {
                chatPanel.SetActive(false);
            });

            submitButton.onClick.AddListener(() =>
            {
                if (chatInput.text != "")
                {
                    _gameClient.ChatToUser(otherName, chatInput.text);
                }
            });
        }