예제 #1
0
        protected override void OnStart()
        {
            base.OnStart();
            if (avatarContainer == null)
            {
                avatarContainer = transform;
            }

            if (unitData != null)
            {
                SetAvatar(unitData.prefabFile);
            }
            if (avatar == null)
            {
                avatar = GetComponent <Avatara>();
            }
            if (avatar == null)
            {
                avatar = GetComponentInChildren <Avatara>();
            }
            if (anchorAngle == null)
            {
                anchorAngle = transform.FindChild("Anchor-Angle");
            }
            if (avatar != null)
            {
                avatarSpriteRender = avatar.GetComponent <SpriteRenderer> ();
            }

            unitData.hitFlyPower       = hitFlyPower;
            unitData.hitFlyPowerUp     = hitFlyPowerUp;
            unitData.hitFlyPowerRadius = hitFlyPowerRadius;
        }
예제 #2
0
        protected void Init()
        {
            GameObject prefab = WarRes.GetPrefab(WarRes.effect_solider_walk);
            GameObject go     = (GameObject)GameObject.Instantiate(prefab as UnityEngine.Object);

            go.name = "avatar_dust";
            Transform parent = transform.FindChild("Anchor-Angle");

            if (parent == null)
            {
                parent = transform;
            }
            RenderLayer renderLayer = go.AddComponent <RenderLayer>();

            renderLayer.sortingLayer = RenderLayer.Layer.War_Dust;
            go.transform.SetParent(parent);
            go.transform.localPosition = new Vector3(0f, -0.5f, -0.5f);
            avatar = go.GetComponent <Avatara>();
            avatar.gameObject.SetActive(_isWalk);


            OnChangeAvatar(unitAgent);
        }
예제 #3
0
        virtual public void SetAvatar(string prefabFile)
        {
            if (this.prefabFile == prefabFile)
            {
                return;
            }
            this.prefabFile = prefabFile;


            GameObject prefab = WarRes.GetPrefab(prefabFile);

            if (avatar == null)
            {
                if (prefab == null)
                {
                    Debug.Log(string.Format("<color=red>单位资源没找到 prefabFile={0}</color>", prefabFile));
                }
                GameObject go = GameObject.Instantiate(prefab);
                go.name = "avatar";
                go.transform.SetParent(avatarContainer);
                go.transform.localPosition = unitData.unitType == UnitType.Solider ? new Vector3(0, 0, 0.5f) : Vector3.zero;
                avatar             = go.GetComponent <Avatara>();
                avatarInfo         = go.GetComponent <AvatarInfo>();
                avatarSpriteRender = go.GetComponent <SpriteRenderer> ();
                defaultMaterial    = avatarSpriteRender.material;
            }
            else
            {
//                Debug.Log("prefabFile=" + prefabFile + " , prefab=" + prefab);
                SpriteAvatar spriteAvatar       = (SpriteAvatar)avatar;
                SpriteAvatar prefabSpriteAvatar = prefab.GetComponent <SpriteAvatar>();
                if (prefabSpriteAvatar != null)
                {
                    spriteAvatar.avatarData = prefabSpriteAvatar.avatarData;
                    avatar.gameObject.transform.localScale = prefab.transform.localScale;
                }
                else
                {
                    Debug.LogFormat("<color=red>prefabFile={0} 有问题</color>", prefabFile);
                }

                if (avatarInfo != null)
                {
                    AvatarInfo spriteAvatarInfo = prefab.GetComponent <AvatarInfo>();
                    avatarInfo.CopyInfo(spriteAvatarInfo);
                }
            }

            avatar.angle  = angel;
            avatar.action = action;
            avatar.speed  = speed;

            if (materialType != WarMaterialsType.stateDefault)
            {
                _materialType = materialType;
                avatarSpriteRender.material = War.materials.GetMaterial(materialType);
            }

            if (sChangeAvatar != null)
            {
                sChangeAvatar(this);
            }
        }