Пример #1
0
    //=============  ClickedOnBuild()  ===================//
    public void ClickedOnBuild(BuildingAsset buildingAsset)
    {
        //---------------------  buildAsset, BuildObj  ---------------------------//
        currentBuildAsset = buildingAsset;
        currentBuildObj   = Object.Instantiate(buildingAsset.BuildingObj, Vector3.zero, Quaternion.identity, buildings);

        //---------------------  Proto Material  ---------------------------//
        currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Proto;
        for (int i = 0; i < currentBuildObj.transform.childCount; i++)
        {
            currentBuildObj.transform.GetChild(i).GetComponent <Renderer>().material = currentBuildAsset.Mat_Proto;
        }

        //---------------------  Audio  ---------------------------//
        scrollAudio.scrollAudioSrc.clip = scrollAudio.ding_confirm;
        scrollAudio.scrollAudioSrc.Play();

        buildAudioSrc             = currentBuildObj.AddComponent <AudioSource>();
        buildAudioSrc.clip        = scrollAudio.ding_selected;
        buildAudioSrc.playOnAwake = false;
        buildAudioSrc.Play();

        //---------------------  BuildPhase  ---------------------------//
        buildPhase = BuildPhase.moving;

        //---------------------  EnableDisableScroll  ---------------------------//
        EnableDisableScroll(false);
    }
Пример #2
0
        private void OnGUI()
        {
            GUILayout.Space(5);
            currentBuildType  = (BuildType)EditorGUILayout.EnumPopup("Build Type", currentBuildType);
            currentBuildPhase = (BuildPhase)EditorGUILayout.EnumPopup("Build Phase", currentBuildPhase);
            bundleVersion     = EditorGUILayout.IntField("Bundle Version", bundleVersion);

            //EditorGUILayout.BeginVertical();
            if (GUILayout.Button("Reset Build Settings", GUILayout.ExpandHeight(true)))
            {
                settings.buildPhase    = BuildPhase.Alpha.ToString();
                settings.buildType     = BuildType.Development.ToString();
                settings.bundleVersion = 1;
                settings.v1            = 1;
                settings.v2            = 0;
                settings.v3            = 0;
                BuildPipeline.WriteBuildSettingToJson(settings);
                ShowVersionSettings();
            }

            if (GUILayout.Button("Update Build Settings", GUILayout.ExpandHeight(true)))
            {
                settings.buildType     = currentBuildType.ToString();
                settings.buildPhase    = currentBuildPhase.ToString();
                settings.bundleVersion = bundleVersion;
                BuildPipeline.WriteBuildSettingToJson(settings);
            }
            //EditorGUILayout.BeginVertical();
        }
Пример #3
0
        public static void ShowVersionSettings()
        {
            settings          = JsonUtility.FromJson <BuildVersionSettings> (System.IO.File.ReadAllText(BuildPipeline.VERSION_SETTINGS_LOCATION));
            currentBuildType  = (BuildType)System.Enum.Parse(typeof(BuildType), settings.buildType);
            currentBuildPhase = (BuildPhase)System.Enum.Parse(typeof(BuildPhase), settings.buildPhase);
            bundleVersion     = settings.bundleVersion;

            HrtzzBuildVersionWindow window = GetWindow <HrtzzBuildVersionWindow> ("Version Settings");

            window.minSize = window.maxSize = new Vector2(300, 140);
        }
Пример #4
0
    // Use this for initialization
    void Awake()
    {
        Instance = this;

        selectedTT = TowerType.Duplicator;
        ChangeSelectedTowerType(selectedTT);

        emptyGO        = new GameObject();
        buildTransform = emptyGO.transform;

        isBuildPhase = false;
    }
Пример #5
0
        public static BuildMessageInfo GetPhaseMessageInfo(BuildMessage messages, BuildPhase phase)
        {
            if (messages == null)
            {
                return(null);
            }

            if (!messages.TryGetValue(phase, out BuildMessageInfo message))
            {
                messages[phase] = message = new BuildMessageInfo();
            }
            return(message);
        }
Пример #6
0
    void Start()
    {
        List <string> buildPhaseString = new List <string>(Enum.GetNames(typeof(BuildPhase)));

        buildDropdown.AddOptions(buildPhaseString);

        buildDropdown.onValueChanged.AddListener(delegate {
            phase = (BuildPhase)buildDropdown.value;
        });

        List <string> touchPhaseString = new List <string>(Enum.GetNames(typeof(TouchPahaseConstr)));

        touchPhaseDropdown.AddOptions(touchPhaseString);

        touchPhaseDropdown.onValueChanged.AddListener(delegate {
            touchPhase = (TouchPahaseConstr)touchPhaseDropdown.value;
        });


        if (Prototype.NetworkLobby.LobbyManager.s_Singleton != null)
        {
            Destroy(Prototype.NetworkLobby.LobbyManager.s_Singleton.gameObject);
        }

        if (GameObject.Find("DefBlank") != null)
        {
            GameObject.Find("DefBlank").SetActive(false);
        }
        gridBlocks = new GameObject[1, 1];
        instance   = this;

        startPos   = transform.position;
        borderLine = GetComponent <LineRenderer>();
        if (PlayerPrefs.GetString("EMAIL") != null)
        {
            emailEnterField.text   = PlayerPrefs.GetString("EMAIL");
            passwordEnerField.text = PlayerPrefs.GetString("PASSWORD");
        }
        if (UserDataPool.signUpUser != null)
        {
            user = UserDataPool.signUpUser;

            user.localId = UserDataPool.resp.localId;
            user.idToken = UserDataPool.resp.idToken;

            closeSignMenu();
        }
    }
Пример #7
0
 /// <summary>
 /// report model load info
 /// </summary>
 /// <param name="hostService">host service</param>
 /// <param name="files">models' LocalPathFromRoot</param>
 /// <param name="phase">the buildphase that the model was loaded at</param>
 public void ReportModelLoadInfo(HostService hostService, IEnumerable<string> files, BuildPhase? phase)
 {
     foreach (var f in files)
     {
         ReportModelLoadInfo(hostService, f, phase);
     }
 }
Пример #8
0
 /// <summary>
 /// report model load info
 /// </summary>
 /// <param name="hostService">host service</param>
 /// <param name="file">the model's LocalPathFromRoot</param>
 /// <param name="phase">the buildphase that the model was loaded at</param>
 public void ReportModelLoadInfo(HostService hostService, string file, BuildPhase? phase)
 {
     Dictionary<string, BuildPhase?> mi = null;
     string name = hostService.Processor.Name;
     if (!_modelLoadInfo.TryGetValue(name, out mi))
     {
         _modelLoadInfo[name] = mi = new Dictionary<string, BuildPhase?>();
     }
     mi[file] = phase;
 }
Пример #9
0
        public ImmutableDictionary <string, FileIncrementalInfo> GetModelIncrementalInfo(HostService hostService, BuildPhase phase)
        {
            if (hostService == null)
            {
                throw new ArgumentNullException(nameof(hostService));
            }
            if (!hostService.ShouldTraceIncrementalInfo)
            {
                throw new InvalidOperationException($"HostService: {hostService.Processor.Name} doesn't record incremental info, cannot call the method to get model incremental info.");
            }
            var increInfo = (from pair in GetModelLoadInfo(hostService)
                             let incr = pair.Value == null ? true : false
                                        select new FileIncrementalInfo
            {
                SourceFile = pair.Key,
                IsIncremental = incr,
            }).ToImmutableDictionary(f => f.SourceFile, f => f, FilePathComparer.OSPlatformSensitiveStringComparer);

            return(increInfo);
        }
Пример #10
0
 private void ReloadUnloadedModelsPerCondition(IncrementalBuildContext incrementalContext, BuildPhase phase, Func<string, bool> condition)
 {
     if (!CanIncrementalBuild)
     {
         return;
     }
     var mi = incrementalContext.GetModelLoadInfo(this);
     var toLoadList = (from f in mi.Keys
                       where condition(f)
                       select LoadIntermediateModel(incrementalContext, f) into m
                       where m != null
                       select m).ToList();
     if (toLoadList.Count > 0)
     {
         Reload(Models.Concat(toLoadList));
         incrementalContext.ReportModelLoadInfo(this, toLoadList.Select(t => t.FileAndType.File), phase);
     }
 }
Пример #11
0
 void changeBuildMode(BuildPhase val)
 {
     phase = val;
 }
Пример #12
0
 public void BuildDone()
 {
     buildPhase = BuildPhase.Done;
     gun.SetActive(true);
 }
Пример #13
0
        private void ReloadUnloadedModelsPerCondition(IncrementalBuildContext incrementalContext, BuildPhase phase, Func <string, bool> condition)
        {
            if (!CanIncrementalBuild)
            {
                return;
            }
            var mi         = incrementalContext.GetModelLoadInfo(this);
            var toLoadList = (from f in mi.Keys
                              where condition(f)
                              from m in LoadIntermediateModel(incrementalContext, f)
                              select m).ToList();

            if (toLoadList.Count > 0)
            {
                Reload(Models.Concat(toLoadList));
                incrementalContext.ReportModelLoadInfo(this, toLoadList.Select(t => t.FileAndType.File), phase);
            }
        }
Пример #14
0
    //=============  Update()  ===========================//
    private void Update()
    {
        if (buildPhase == BuildPhase.none)
        {
            if (Input.GetMouseButtonDown(0))
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, float.MaxValue, layerMaskSoldiers))
                {
                    currentUnit = hit.collider.GetComponent <Unit>();
                    Object.Instantiate(unitControl.selectionCircle, currentUnit.transform.position, currentUnit.transform.rotation, currentUnit.transform);

                    currentUnit.Select();
                }
                else
                {
                    audioGUI.audioSrc.clip = audioGUI.clip_nullClick; audioGUI.audioSrc.Play();
                }
            }

            if (Input.GetMouseButtonDown(1) && currentUnit != null && currentUnit.currentState == Unit.UnitState.notAttacking)
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, float.MaxValue, layerMaskGroundAndSoldiers))
                {
                    if (hit.collider.GetComponent <Unit>())
                    {
                        audioGUI.audioSrc.clip = audioGUI.clip_attackClick; audioGUI.audioSrc.Play();
                        currentUnit.AssignEnemy(hit.collider.GetComponent <Unit>());
                    }
                    else
                    {
                        currentUnit.AssignObjective(hit.point);
                    }
                }
            }
        }
        else
        if (currentBuildObj != null)
        {
            if (Input.GetMouseButtonDown(1) && !overlap)
            //-------------------------  Finish placement  ---------------------------------------------------------------------//
            {
                //Apply material
                currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                for (int i = 0; i < currentBuildObj.transform.childCount; i++)
                {
                    currentBuildObj.transform.GetChild(i).GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                }

                //Place final wall node
                if (buildPhase == BuildPhase.walling)
                {
                    Object.Instantiate(currentBuildAsset.BuildingObj, currentNode.position + (currentBuildObj.transform.position - currentNode.position) * 2, Quaternion.identity, buildings);
                    currentNode = null;
                }

                //reset currentBuildObj, currentBuildAsset, & buildphase
                currentBuildObj   = null;
                currentBuildAsset = null;
                buildPhase        = BuildPhase.none;

                //Audio
                buildAudioSrc.clip = scrollAudio.ding_confirm;
                buildAudioSrc.Play();
            }
            else
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, 100.0f, layerMaskGround))
                {
                    //Collision detection
                    Collider[] colliders = Physics.OverlapBox(hit.point, currentBuildObj.GetComponent <BoxCollider>().size / 2, currentBuildObj.transform.rotation, layerMaskNotGround, QueryTriggerInteraction.Collide);
                    if (colliders.Length > 1)
                    {
                        overlap = true;
                    }
                    else
                    {
                        overlap = false;
                    }

                    if (overlap)
                    {
                        currentBuildAsset.Mat_Proto.color = new Color(1, 0, 0, currentBuildAsset.Mat_Proto.color.a);
                    }
                    else
                    {
                        currentBuildAsset.Mat_Proto.color = new Color(1, 1, 1, currentBuildAsset.Mat_Proto.color.a);
                    }

                    //-------------------------  Moving & rotating  -----------------------------------------------------------//
                    if (buildPhase != BuildPhase.walling)
                    {
                        if (!Input.GetMouseButton(0))           //---------------  Moving  -----------------------------------------//
                        {
                            currentBuildObj.transform.position = hit.point;
                        }
                        else
                        {
                            if (currentBuildAsset.wall.wallObj == null) //-----------------  Rotating  ------------------------//
                            {
                                currentBuildObj.transform.LookAt(hit.point);
                            }
                            else                                        //-----------------  Walling  ------------------------//
                            {
                                buildPhase = BuildPhase.walling;

                                currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                                for (int i = 0; i < currentBuildObj.transform.childCount; i++)
                                {
                                    currentBuildObj.transform.GetChild(i).GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                                }

                                currentNode     = currentBuildObj.transform;
                                currentBuildObj = Object.Instantiate(currentBuildAsset.wall.wallObj, buildings);
                                currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Proto;
                            }
                        }
                    }
                    else  //-----------------  Walling  ------------------------//
                    if (Vector3.Distance(hit.point, currentNode.position) > currentBuildAsset.wall.wallLength)
                    {
                        currentBuildObj.transform.position = currentNode.position + Vector3.Normalize(hit.point - currentNode.position) * (currentBuildAsset.wall.wallLength / 2);
                        currentBuildObj.transform.LookAt(hit.point);
                        currentBuildObj.transform.rotation = Quaternion.Euler(0, currentBuildObj.transform.eulerAngles.y - 90, 0);

                        if (Input.GetMouseButtonDown(0) && !overlap)
                        {
                            buildAudioSrc.clip = scrollAudio.ding_confirm;
                            buildAudioSrc.Play();

                            currentNode = Object.Instantiate(currentBuildAsset.BuildingObj, currentNode.position + Vector3.Normalize(hit.point - currentNode.position) * (currentBuildAsset.wall.wallLength), Quaternion.identity, buildings).transform;

                            currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                            for (int i = 0; i < currentBuildObj.transform.childCount; i++)
                            {
                                currentBuildObj.transform.GetChild(i).GetComponent <Renderer>().material = currentBuildAsset.Mat_Final;
                            }

                            //Instantiate new object
                            currentBuildObj = Object.Instantiate(currentBuildAsset.wall.wallObj, buildings);

                            currentBuildObj.transform.position = currentNode.position + Vector3.Normalize(hit.point - currentNode.position) * (currentBuildAsset.wall.wallLength / 2);
                            currentBuildObj.transform.LookAt(hit.point);
                            currentBuildObj.transform.rotation = Quaternion.Euler(0, currentBuildObj.transform.eulerAngles.y - 90, 0);

                            currentBuildObj.GetComponent <Renderer>().material = currentBuildAsset.Mat_Proto;
                        }
                    }
                }
            }
        }
    }
Пример #15
0
 public void ReloadModelsPerIncrementalChanges(IncrementalBuildContext incrementalContext, IEnumerable <string> changes, BuildPhase loadedAt)
 {
     if (changes == null)
     {
         return;
     }
     ReloadUnloadedModelsPerCondition(
         incrementalContext,
         loadedAt,
         f =>
     {
         var key = ((RelativePath)f).GetPathFromWorkingFolder().ToString();
         return(changes.Contains(key));
     });
 }
Пример #16
0
        public void ReloadUnloadedModels(IncrementalBuildContext incrementalContext, BuildPhase loadedAt)
        {
            var mi = incrementalContext.GetModelLoadInfo(this);

            ReloadUnloadedModelsPerCondition(incrementalContext, loadedAt, f => mi[f] == null);
        }
Пример #17
0
        internal static void RelayBuildMessage(IncrementalBuildContext context, IEnumerable <HostService> hostServices, BuildPhase phase)
        {
            var falseSet = new HashSet <string>(from h in hostServices
                                                where !h.CanIncrementalBuild
                                                from f in h.Models
                                                select f.OriginalFileAndType.File,
                                                FilePathComparer.OSPlatformSensitiveStringComparer);
            var fileSet = new HashSet <string>(from h in hostServices
                                               where h.CanIncrementalBuild
                                               from f in GetFilesToRelayMessages(context, h)
                                               where !falseSet.Contains(f)
                                               select f,
                                               FilePathComparer.OSPlatformSensitiveStringComparer);

            var lastBuildMessageInfo = GetPhaseMessageInfo(context.LastBuildVersionInfo?.BuildMessage, phase);

            foreach (var file in fileSet)
            {
                lastBuildMessageInfo.Replay(file);
            }
        }
Пример #18
0
    void Start()
    {
        enemyMngr = GameObject.Find("gameManager").GetComponent<EnemyManager>() as EnemyManager;

        bulletHolder = GameObject.Find("bullets");

        Transform gnT = gun.transform.FindChild("gunArt");
        if(gnT!=null){
            GameObject gn = gnT.gameObject;
            gunAnimCtrl = gun.transform.FindChild("gunArt").GetComponent<Animator>();
        }
        animCtrl = transform.GetComponent<Animator>();
        if(animCtrl!=null){
            animCtrl.SetTrigger("build");
            buildPhase = BuildPhase.Building;
            gun.SetActive(false);
        }
    }
Пример #19
0
 public void ReloadModelsPerIncrementalChanges(IncrementalBuildContext incrementalContext, IEnumerable<string> changes, BuildPhase loadedAt)
 {
     if (changes == null)
     {
         return;
     }
     ReloadUnloadedModelsPerCondition(
         incrementalContext,
         loadedAt,
         f =>
         {
             var key = ((TypeForwardedToRelativePath)f).GetPathFromWorkingFolder().ToString();
             return changes.Contains(key);
         });
 }
Пример #20
0
 public void DeBuild()
 {
     buildPhase = BuildPhase.DeBuilding;
     gun.SetActive(false);
     animCtrl.SetTrigger("deBuild");
 }
Пример #21
0
 public void ReloadUnloadedModels(IncrementalBuildContext incrementalContext, BuildPhase loadedAt)
 {
     var mi = incrementalContext.GetModelLoadInfo(this);
     ReloadUnloadedModelsPerCondition(incrementalContext, loadedAt, f => mi[f] == null);
 }