コード例 #1
0
    private void OnLeftMouseSelected(LeftMouseSelectEvent objectSelected)
    {
        gameObjectSelected = null;
        foreach (Transform enemy in transform)
        {
            if (objectSelected.selectedGameObject == enemy.gameObject)
            {
                gameObjectSelected = enemy.gameObject;
            }
            else if (enemy.gameObject.GetComponent <MeshFilter>() != null)
            {
                originalMat = Resources.Load("Mat/AttackAble", typeof(Material)) as Material;
                MeshRenderer meshRenderer = enemy.GetComponent <MeshRenderer>();
                // Get the current material applied on the GameObject
                Material oldMaterial = meshRenderer.material;
                // Set the new material on the GameObject
                meshRenderer.material = originalMat;
            }
        }
        if (gameObjectSelected != null)
        {
            highlightMat = Resources.Load("Mat/HighlightMat", typeof(Material)) as Material;
            MeshRenderer meshRenderer = gameObjectSelected.GetComponent <MeshRenderer>();
            // Get the current material applied on the GameObject
            Material oldMaterial = meshRenderer.material;
            // Set the new material on the GameObject
            meshRenderer.material = highlightMat;

            objectToMove = true;
        }
        else
        {
            objectToMove = false;
        }
    }
コード例 #2
0
 void OnEnable()
 {
     InteractWithGameObject.RegisterListener(OnInteracting);
     PlayerAttackEvent.RegisterListener(OnUnitAttacked);
     LeftMouseSelectEvent.RegisterListener(OnLeftMouseSelected);
     RightMouseSelectEvent.RegisterListener(OnRightClick);
 }
コード例 #3
0
    private void CameraOnScreenClick()
    {
        if (Input.GetMouseButtonDown(0))
        {
            currentSelectedObject = null;
            ray = cam.ScreenPointToRay(Input.mousePosition);


            if (Physics.Raycast(ray, out leftMouseHit))
            {
                //Debug.DrawRay(new Vector3(0, 1, 0), leftMouseHit.point, Color.red, duration: 10);
                currentSelectedObject = leftMouseHit.transform.gameObject;
                Debug.Log("Selected Object: " + leftMouseHit.transform.gameObject);
                LeftMouseSelectEvent leftMouseSelect = new LeftMouseSelectEvent();
                leftMouseSelect.selectedGameObject = leftMouseHit.transform.gameObject;
                leftMouseSelect.FireEvent();
            }
        }

        if (Input.GetMouseButtonDown(1))
        {
            Ray ray = cam.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out RaycastHit rightMouseHit))
            {
                RightMouseSelectEvent rightMouseClick = new RightMouseSelectEvent();
                rightMouseClick.rightClickGameObject = rightMouseHit.transform.gameObject;
                rightMouseClick.mousePosition        = rightMouseHit.point;
                rightMouseClick.clicker = currentSelectedObject;
                rightMouseClick.FireEvent();
                Debug.Log(rightMouseHit.transform.gameObject + " was right clicked");
            }
        }
    }
コード例 #4
0
 void OnDisable()
 {
     UnitDeathEvent.UnregisterListener(OnEnemyUnitDeath);
     EnemyAttackEvent.UnregisterListener(OnEnemyUnitAttack);
     LeftMouseSelectEvent.UnregisterListener(OnLeftMouseSelected);
     RightMouseSelectEvent.UnregisterListener(OnRightMouseClick);
     PlayerAttackEvent.UnregisterListener(OnAttacked);
 }
コード例 #5
0
 private void OnLeftMouseSelected(LeftMouseSelectEvent objectSelected)
 {
     if (objectSelected.selectedGameObject == transform.gameObject)
     {
         gameObjectSelected = true;
     }
     else
     {
         gameObjectSelected = false;
     }
 }