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; }
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); }
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); } }