public GameSetting() { mCharaData1 = new CharaData(); mCharaData1.mFile = "marie"; mCharaData1.mName = "マリー"; mCharaData1.mAi = "player"; mCharaData1.mAiName = "プレイヤー"; mCharaData2 = new CharaData(); mCharaData2.mFile = "rear"; mCharaData2.mName = "リア"; mCharaData2.mAi = "solid"; mCharaData2.mAiName = "堅実"; mCharaData3 = new CharaData(); mCharaData3.mFile = "maru"; mCharaData3.mName = "マル"; mCharaData3.mAi = "solid"; mCharaData3.mAiName = "堅実"; mCharaData4 = new CharaData(); mCharaData4.mFile = "chiara"; mCharaData4.mName = "キアラ"; mCharaData4.mAi = "solid"; mCharaData4.mAiName = "堅実"; mInitialMoneyRate = 1; mFeeRate = 1; mAcqusitionRate = 2; mStageName = "standard"; }
public void Add(CharaData _data) { if(list != null) { list.Add(_data); } }
public override void Do() { base.Do(); int num1 = 0; string[] args1 = this.args; int index1 = num1; int num2 = index1 + 1; int no = int.Parse(args1[index1]); string[] args2 = this.args; int index2 = num2; int num3 = index2 + 1; int index3 = int.Parse(args2[index2]); string[] args3 = this.args; int index4 = num3; int num4 = index4 + 1; string findName = args3[index4]; CharaData chara = this.scenario.commandController.GetChara(no); Transform transform = ((IEnumerable <Transform>)((Component)chara.chaCtrl).GetComponentsInChildren <Transform>(true)).FirstOrDefault <Transform>((Func <Transform, bool>)(p => ((Object)p).get_name() == findName)); if (!Object.op_Inequality((Object)transform, (Object)null)) { return; } chara.itemDic[index3] = new CharaData.CharaItem(((Component)transform).get_gameObject()); }
private void Update() { if (isGenerated == false) { CharaData myCharaData = GameStateManager.Instance.MyCharaData; CharaData rivalCharaData = null; Debug.Log($"PlayMode: {GameStateManager.Instance.PlayMode}"); if (GameStateManager.Instance.PlayMode == PlayMode.Solo) { rivalCharaData = GetComponent <CharaDataGenerator>().GenerateCharaData(CharaName.Kakashi); } else { GameObject shareDataClone = GameObject.Find("ShareData(Clone)"); if (shareDataClone == null) { return; } int rivalCharaNumber = shareDataClone.GetComponent <PhotonVariable>().charaNumber; rivalCharaData = GetComponent <CharaDataGenerator>().GenerateCharaData((CharaName)rivalCharaNumber); } var myChara = GameObject.Find("MyChara"); GenerateBattleChara(myChara, myCharaData, false); var rivalChara = GameObject.Find("RivalChara"); GenerateBattleChara(rivalChara, rivalCharaData, true); isGenerated = true; } }
/** * * ステージクリア時、NPCドロップがあれば * CharaDataを生成して返す。 * * dropNpcStrのフォーマット * Rarity:Percentage:Gender (Percentageはfloat型) * */ private CharaData ParseDropNpc(string dropNpcStr) { if (string.IsNullOrEmpty(dropNpcStr)) { return(null); } string[] dropSplited = dropNpcStr.Split(':'); int rarity = Int32.Parse(dropSplited [0]); float ratio = float.Parse(dropSplited [1]); int gender = Int32.Parse(dropSplited [2]); int MAX = 10000; int RATIOLINE = (int)((float)MAX * ratio); int rand = UnityEngine.Random.Range(1, MAX); if (rand <= RATIOLINE) { CharaData genedChar = CharacterLevelSystem.GenerateCharacterData(rarity); genedChar.gender = (CharaData.Gender)Enum.ToObject(typeof(CharaData.Gender), gender); genedChar.ClothDataStr = ClothingSystem.AutoClothGenerator(genedChar.gender); return(genedChar); } return(null); }
public Chara SpawnChar(CharaData.CharClassType classType,int charModelType,int camp,int level,Vector3 pos,Vector3 dir,CharaStatus.Pose pose) { this.START_METHOD("SpawnChar"); Chara tempChar = null; if(classType==CharaData.CharClassType.CHARACTER) { } else if(classType==CharaData.CharClassType.BUILDING) { if((CharaData.buildingModel)charModelType==CharaData.buildingModel.BARRACK) { Barrack chara = new Barrack();//TODO: need change class to resource pool chara.SetPos(pos); chara.SetDir(dir); chara.SetCamp(camp); tempChar = chara; } if (tempChar != null) building.Add(tempChar); else throw new UnityException("no current building type to spawn!!"); } allChara.Add(tempChar); this.END_METHOD("SpawnChar"); return tempChar; }
public void DeathEffect(CharaData charData) { GameObject deadObject = charData.charaObject; if (deadObject == null) { return; } // Vector3 deadPos = new Vector3 (deadObject.transform.position.x, deadObject.transform.position.y, deadObject.transform.position.z); Vector3 deadPos = this.GetPositionByBattlePos(charData); GameObject graveObj = (GameObject)Instantiate(Resources.Load("Prefabs/Effect/Grave") as GameObject); graveObj.transform.position = deadPos; //sortingLayer調査 AbstractCharacterObject charObj = deadObject.GetComponent <AbstractCharacterObject>(); if (charObj != null) { graveObj.GetComponentInChildren <SpriteRenderer> ().sortingLayerName = charObj.GetSortingLayerName(); } Destroy(deadObject); }
static void AddToExcel(ISheet _sheet, CharaData _data, int _rowIdx) { IRow row = _sheet.CreateRow(_rowIdx); int cellIdx = 1; // name ICell nameCell = row.CreateCell(cellIdx++); nameCell.SetCellValue(_data.m_name); // hp ICell hpCell = row.CreateCell(cellIdx++); hpCell.SetCellValue(_data.m_hp); // x ICell posxCell = row.CreateCell(cellIdx++); posxCell.SetCellValue(_data.m_position.x); // y ICell posyCell = row.CreateCell(cellIdx++); posyCell.SetCellValue(_data.m_position.y); // z ICell poszCell = row.CreateCell(cellIdx++); poszCell.SetCellValue(_data.m_position.z); }
private Vector3 GetPositionByBattlePos(CharaData charData) { if (charData.ID == PlayerData.PLAYERID) { return(new Vector3(-4.0f, 0.0f, 0.0f)); } //プレイヤーの隣 if (charData.BattlePosition == 0) { return(new Vector3(-4.7f, -0.4f, -0.2f)); } //その他のWallのポジションの箇所にセット(バトル画面のみ) else { Scene scene = SceneManager.GetActiveScene(); if (scene.name == "Main") { Vector3 wallObjPos = WallController.Instance.GetWallObject(charData.BattlePosition).transform.position; wallObjPos.y -= 0.4f; return(wallObjPos); } } //TODO それ以外の場合をどうするか。。? Debug.LogError("GetPositionByBattlePos, scene: " + SceneManager.GetActiveScene().name + ", charID: " + charData.ID + ", BattlePosition: " + charData.BattlePosition); return(Vector3.zero); }
public override void Do() { base.Do(); int num1 = 0; CommandController commandController1 = this.scenario.commandController; string[] args1 = this.args; int index1 = num1; int num2 = index1 + 1; int no1 = int.Parse(args1[index1]); CharaData chara1 = commandController1.GetChara(no1); CommandController commandController2 = this.scenario.commandController; string[] args2 = this.args; int index2 = num2; int num3 = index2 + 1; int no2 = int.Parse(args2[index2]); CharaData chara2 = commandController2.GetChara(no2); string[] args3 = this.args; int index3 = num3; int num4 = index3 + 1; string str = args3[index3]; int result; if (!int.TryParse(str, out result)) { result = str.Check(true, Enum.GetNames(typeof(ChaReference.RefObjKey))); } GameObject referenceInfo = chara2.chaCtrl.GetReferenceInfo((ChaReference.RefObjKey)result); chara1.chaCtrl.ChangeLookEyesTarget(-1, referenceInfo.get_transform(), 0.5f, 0.0f, 1f, 2f); }
protected void SetPresentInfo(ref int cnt) { CharaData chara = this.GetChara(ref cnt); if (chara == null) { return; } Resources.GameInfoTables.AdvPresentItemInfo advPresentItemInfo = this.GetAdvPresentItemInfo(chara.chaCtrl); if (advPresentItemInfo == null) { return; } int eventItemId = advPresentItemInfo.eventItemID; string name = advPresentItemInfo.itemInfo.Name; int nameHash = advPresentItemInfo.itemInfo.nameHash; PlayState autoPlayState = chara.GetAutoPlayState(); for (int index = 0; index < autoPlayState.ItemInfoCount; ++index) { ActionItemInfo eventItemInfo; if (Singleton <Resources> .Instance.Map.EventItemList.TryGetValue(eventItemId, out eventItemInfo)) { chara.data.actor.LoadEventItem(eventItemId, autoPlayState.GetItemInfo(index), eventItemInfo); } } this.scenario.Vars["Item"] = new ValData((object)name); this.scenario.Vars[string.Format("{0}.{1}", (object)"Item", (object)"Hash")] = new ValData((object)nameHash); }
//出撃可能エリアにユニットを描画 public void DrawUnit() { CharaData loaddata = ScriptableObject.Instantiate(Resources.Load(string.Format("BattleChara/{0}", unit.savescobj)) as CharaData); unit.gobj = MonoBehaviour.Instantiate(loaddata.gobj, new Vector3(), Quaternion.identity); foreach (int[] pos in CharaSetup.unitsetposlist) { //キャラが居なければ生成 if (!BattleVal.id2index.ContainsKey(string.Format("{0},{1}", pos[0], pos[1]))) { //描画 Mapclass.DrawCharacter(unit.gobj, pos[0], pos[1]); unit.gobj.layer = 8; unit.x = pos[0]; unit.y = pos[1]; //unitlistへの登録 BattleVal.unitlist.Add(unit); //id2indexへの登録 BattleVal.id2index.Add(string.Format("{0},{1}", pos[0], pos[1]), unit); ////mapdataにユニット情報を登録 BattleVal.mapdata[(int)MapdataList.MAPUNIT][unit.y][unit.x] = 99; //ユニット番号はcsvから読み取るときしか使わないため、1から99なら何でもよい //足元にチーム識別タイルを GameObject unittile; unittile = Instantiate(prefabPlayerTile, unit.gobj.transform); unittile.transform.localScale = new Vector3(unittile.transform.localScale.x / unittile.transform.lossyScale.x, 0.01f, unittile.transform.localScale.z / unittile.transform.lossyScale.z); Mapclass.DrawCharacter(unittile, unit.x, unit.y); break; } } }
protected void SetItem(ref int cnt) { CharaData chara = this.GetChara(ref cnt); if (chara == null) { return; } string[] args1 = this.args; int num1; cnt = (num1 = cnt) + 1; int index1 = num1; int nameHash = int.Parse(args1[index1]); StuffItemInfo itemInfo = Singleton <Resources> .Instance.GameInfo.FindItemInfo(nameHash); if (itemInfo == null) { Debug.LogError((object)string.Format("Item none:{0}", (object)nameHash)); } else { string[] args2 = this.args; int num2; cnt = (num2 = cnt) + 1; int index2 = num2; int result; if (!int.TryParse(args2[index2], out result)) { Debug.LogError((object)string.Format("Num none:{0}[{1}]:{2}", (object)"args", (object)(cnt - 1), (object)this.args[cnt - 1])); result = 1; } this.ItemListProc(itemInfo, chara.data.characterInfo.ItemList, new StuffItem(itemInfo.CategoryID, itemInfo.ID, result)); } }
void Update() { if (Input.GetMouseButtonDown(0)) { //mode =! mode; } if (Input.GetMouseButtonDown(0)) { // Entityセット用のデータ作成 MyTransform trans = new MyTransform(); CharaData chara = new CharaData(); for (int i = 0; i < clickInstance; ++i) { // Entityの作成 var entity = manager.CreateEntity(charaArch); //座標セット float x = -InitPosXParam + i * 2 * InitPosXParam / clickInstance; trans.position = new Vector3(x, 0.5f, -InitPosZParam); // キャラクターのデータセット chara.time = Random.Range(0.0f, 3.0f); // 少し揺れ幅を持たせます chara.velocity = new Vector3(0.0f, 0.0f, 3.0f); // 生成したEntitiyにデータセット manager.SetComponentData(entity, trans); manager.SetComponentData(entity, chara); } } // デバッグ情報更新 DebugUI.SetCharaNum(charaSystem.CharaNum); charaSystem.Update(); }
public void Populate(CharaData data) { if (data == null) { sprite.Populate((string)null); recruitName.text = "More information"; } else { sprite.Populate(data.appearance); if (data.species == null || data.species.Length == 0) { recruitName.text = data.race.Name().ToUpper(); while (recruitName.text.Length < 10) { recruitName.text += " "; } recruitName.text += data.gender.Label(); } else { recruitName.text = data.species; } } }
public void InitCharacterList() { ResetContent(); //add Player GameObject instantiatedPrefab = (GameObject)Instantiate(charUIPrefab); instantiatedPrefab.GetComponent <CharacterUI> ().InitCharaUI <NpcObject>(PlayerData.playerCharData); instantiatedPrefab.transform.SetParent(content.transform); instantiatedPrefab.GetComponent <RectTransform>().localScale = Vector3.one; Vector3 tmpPos = instantiatedPrefab.GetComponent <RectTransform>().localPosition; tmpPos.z = -10; instantiatedPrefab.GetComponent <RectTransform>().localPosition = tmpPos; //add NPCs for (int i = 0; i < PlayerData.playerNpcDictionary.Count; i++) { string key = PlayerData.playerNpcDictionary.Keys.ToArray() [i]; CharaData charData = PlayerData.playerNpcDictionary [key]; instantiatedPrefab = (GameObject)Instantiate(charUIPrefab); instantiatedPrefab.GetComponent <CharacterUI> ().InitCharaUI <NpcObject>(charData); instantiatedPrefab.transform.SetParent(content.transform); instantiatedPrefab.GetComponent <RectTransform>().localScale = Vector3.one; tmpPos = instantiatedPrefab.GetComponent <RectTransform>().localPosition; tmpPos.z = -10; instantiatedPrefab.GetComponent <RectTransform>().localPosition = tmpPos; } }
public static void CharaData_InitializePost(CharaData __instance) { // Only run reload if the character was newly created if (Traverse.Create(__instance).Property("isADVCreateChara").GetValue <bool>()) { ReloadChara(__instance.chaCtrl); } }
public static bool IsNullOrNpc(this CharaData charaData) { if (charaData == null || charaData.chaCtrl == null) { return(true); } return(charaData.chaCtrl.GetHeroine().IsNullOrNpc()); }
public static void CharaData_InitializePost(CharaData __instance) { // Only run reload if the character was newly created if (__instance.isADVCreateChara) { ReloadChara(__instance.chaCtrl); } }
public override void Do() { base.Do(); int num1 = 0; string[] args1 = this.args; int index1 = num1; int num2 = index1 + 1; int no = int.Parse(args1[index1]); string[] args2 = this.args; int index2 = num2; int num3 = index2 + 1; int targetType = int.Parse(args2[index2]); CharaData chara = this.scenario.commandController.GetChara(no); GameObject obj = (GameObject)null; string[] args3 = this.args; int index3 = num3; int num4 = index3 + 1; Action <string> act1 = (Action <string>)(s => obj = GameObject.Find(s)); args3.SafeProc(index3, act1); Transform trfTarg = !Object.op_Equality((Object)obj, (Object)null) ? obj.get_transform() : (Transform)null; float rate = 0.5f; string[] args4 = this.args; int index4 = num4; int num5 = index4 + 1; Action <string> act2 = (Action <string>)(s => rate = float.Parse(s)); args4.SafeProc(index4, act2); float rotDeg = 0.0f; string[] args5 = this.args; int index5 = num5; int num6 = index5 + 1; Action <string> act3 = (Action <string>)(s => rotDeg = float.Parse(s)); args5.SafeProc(index5, act3); float range = 1f; string[] args6 = this.args; int index6 = num6; int num7 = index6 + 1; Action <string> act4 = (Action <string>)(s => range = float.Parse(s)); args6.SafeProc(index6, act4); float dis = 2f; string[] args7 = this.args; int index7 = num7; int num8 = index7 + 1; Action <string> act5 = (Action <string>)(s => dis = float.Parse(s)); args7.SafeProc(index7, act5); chara.chaCtrl.ChangeLookEyesTarget(targetType, trfTarg, rate, rotDeg, range, dis); }
public override void Do() { base.Do(); CharaData chara = this.scenario.commandController.GetChara(int.Parse(this.args[0])); Singleton <Manager.Voice> .Instance.Stop(chara.voiceNo, chara.voiceTrans); this.scenario.loopVoiceList.RemoveAll((Predicate <TextScenario.LoopVoicePack>)(item => item.voiceNo == chara.voiceNo)); }
void OnTriggerEnter(Collider other) { //Injured! GameManager.Instance.PauseGame = true; CharaData injuredChar = null; //choose NPC to injure. List <CharaData> npcList = PlayerData.GetBattleNpcList(); if (npcList.Count > 0) { injuredChar = Utils.RandomElementAt <CharaData> (npcList); } //if there's no npc, injure player. else { injuredChar = GameManager.Instance.PlayerObject.charaData; } injuredChar.IsDead = true; //一旦ポーズ GameManager.Instance.PauseGame = true; //誰がやられたかポップアップで知らせる。 UiController.Instance.OpenDialogPanel(injuredChar.Name + " has Injuered!", () => { GameManager.Instance.PauseGame = false; if (injuredChar.charaObject != null) { GameManager.Instance.DeathEffect(injuredChar); } //全員おっちんだらホームへ。 if (IsAllCharaDead()) { //TODO 遷移後も他の敵に当たってしまうため敵は全消し。 GameManager.Instance.DeleteAllEnemies(); Destroy(other.gameObject); TransitionManager.Instance.FadeTo("HomeScene"); } //何人か生存 else { //現存する敵を右に少し追いやる(「間」が欲しい) foreach (EnemyObject enemyObj in GameManager.Instance.crntEnemyDictionary.Values) { if (enemyObj == null) { continue; } Vector3 reposVec = enemyObj.transform.localPosition; reposVec.x += 5.0f; enemyObj.transform.localPosition = reposVec; } } }); }
public Chara() { this.START_METHOD("chara"); data = (CharaData)MemoryManager.Instance.CreateNativeStruct("CharaData"); id++; mId = id; bInited = false; this.END_METHOD("Chara"); }
public override void Do() { base.Do(); int num1 = 0; string[] args1 = this.args; int index1 = num1; int num2 = index1 + 1; CharaData chara = this.scenario.commandController.GetChara(int.Parse(args1[index1])); ChaControl chaCtrl = chara.chaCtrl; string[] args2 = this.args; int index2 = num2; int num3 = index2 + 1; int num4 = args2[index2].Check(true, Enum.GetNames(typeof(CharaVisible.Target))); string[] args3 = this.args; int index3 = num3; int num5 = index3 + 1; bool flag = bool.Parse(args3[index3]); string[] args4 = this.args; int index4 = num5; int num6 = index4 + 1; Action <string> act = (Action <string>)(findName => { Transform characterStandNull = this.scenario.commandController.characterStandNulls[findName]; chara.transform.SetPositionAndRotation(characterStandNull.get_position(), characterStandNull.get_rotation()); }); args4.SafeProc(index4, act); ChaFileStatus fileStatus = chaCtrl.fileStatus; switch (num4) { case 0: chaCtrl.visibleAll = flag; break; case 1: fileStatus.visibleHeadAlways = flag; break; case 2: fileStatus.visibleBodyAlways = flag; break; case 3: fileStatus.visibleSonAlways = flag; break; case 4: fileStatus.visibleGomu = flag; break; } }
public EquipmentInventory(Unit unit, CharaData data) : this(unit) { for (int i = 0; i < Capacity && i < data.equipped.Length; i += 1) { var itemData = data.equipped[i]; if (itemData != null) { SetSlot(i, new CombatItem(itemData), firstEquip: true); } } }
public static void DisplayCharData(CharaData charaData) { Debug.LogError( "ID: " + charaData.ID + "\n" + "Rarity: " + charaData.Rarity + "\n" + "Level: " + charaData.Level + "\n" + "CrntHP/BaseHP: " + charaData.hpCrnt + "/" + charaData.HpBase + "\n" + "MinAtk/MaxAtk(CrntAtk): " + charaData.MinAtk + "/" + charaData.MaxAtk + "(" + charaData.CrntAtk() + ")" + "\n" ); }
//=========================== BattlePosition系ファンクション ===========================// public static string GetBattlePosNpcId(int pos) { CharaData charaData = playerNpcDictionary.Values.FirstOrDefault(tmpCharData => tmpCharData.BattlePosition == pos); if (charaData == null) { return(""); } return(charaData.ID); }
// CSVデータを文字列型2次元配列に変換する // ファイルパス,変換される配列の値(参照渡し) public Dictionary <string, CharaData> readCSVData(string charaName) { TextAsset csv; string stagePath = "CharaData/" + charaName + "_SkillPerformance"; csv = Resources.Load(stagePath) as TextAsset; StringReader reader = new StringReader(csv.text); string strStream = reader.ReadToEnd(); // StringSplitOptionを設定(要はカンマとカンマに何もなかったら格納しないことにする) System.StringSplitOptions option = StringSplitOptions.RemoveEmptyEntries; // 行に分ける string[] lines = strStream.Split(new char[] { '\r', '\n' }, option); // カンマ分けの準備(区分けする文字を設定する) char[] spliter = new char[1] { ',' }; // 行数設定 int h = lines.Length; // 列数設定 int w = lines[0].Split(spliter, option).Length; // 返り値の2次元配列の要素数を設定 Dictionary <string, CharaData> cdata = new Dictionary <string, CharaData>(); // 行データを切り分けて,構造体配列へ変換する for (int i = 1; i < h; i++) { string[] splitedData = lines[i].Split(spliter, option); CharaData cd = new CharaData(); cd.skill = splitedData[0]; cd.damage = int.Parse(splitedData[1]); cd.attri = splitedData[2]; cd.startCorrec = float.Parse(splitedData[3]); cd.conboCorrec = float.Parse(splitedData[4]); cd.attackLevel = int.Parse(splitedData[5]); cd.startUp = int.Parse(splitedData[6]); cd.active = int.Parse(splitedData[7]); cd.recovery = int.Parse(splitedData[8]); cd.blockStun = int.Parse(splitedData[10]); cd.hitStun = int.Parse(splitedData[11]); cd.guardDamage = int.Parse(splitedData[12]); cdata.Add(cd.skill, cd); skillName.Add(cd.skill); } return(cdata); }
private static void ClassroomPreviewUpdateHook(Passport __instance, CharaData charaData) { try { SetHeart(__instance, charaData); } catch (Exception e) { UnityEngine.Debug.LogException(e); } }
static CharaData AddToAsset(CharaDataSet _dataSet, Transform _chara) { CharaData data = new CharaData(); data.m_name = _chara.name; data.m_hp = Random.Range(0, 100); data.m_position = new Vector3(_chara.position.x, _chara.position.y, _chara.position.z); _dataSet.list.Add(data); return data; }
public ListItemData ( CharaData charaData , string message , string imageSpriteName ) { m_charaData = charaData ; m_message = message ; m_imageSpriteName = imageSpriteName ; m_isMessage = !string.IsNullOrEmpty( message ); }
public override void Do() { base.Do(); TextScenario.CurrentCharaData currentCharaData = this.scenario.currentCharaData; currentCharaData.CreateVoiceList(); List <Voice.Data> dataList = new List <Voice.Data>(); if (this.args.Length > 1) { int cnt = 0; while (!this.args.IsNullOrEmpty(cnt)) { Voice.Data data = new Voice.Data(this.args, ref cnt); CharaData chara = this.scenario.commandController.GetChara(data.no); if (chara != null) { data.transform = chara.voiceTrans; data.chaCtrl = chara.chaCtrl; if (!data.usePersonality) { data.personality = chara.voiceNo; } if (!data.usePitch) { data.pitch = chara.voicePitch; } } data.is2D = this.scenario.info.audio.is2D; data.isNotMoveMouth = this.scenario.info.audio.isNotMoveMouth; if (this.scenario.info.audio.eco.use) { data.eco = this.scenario.info.audio.eco.DeepCopy <ADV.Info.Audio.Eco>(); } dataList.Add(data); } } currentCharaData.voiceList.Add((TextScenario.IVoice[])dataList.ToArray()); foreach (Voice.Data data in dataList) { if (data.bundle.IsNullOrEmpty()) { string str; if (this.scenario.currentCharaData.bundleVoices.TryGetValue(data.personality, out str)) { data.bundle = str; } } else { this.scenario.currentCharaData.bundleVoices[data.personality] = data.bundle; } } }
public T InitCharObject <T>(CharaData charData) where T : AbstractCharacterObject { GameObject charObject = (GameObject)Instantiate(Resources.Load("Prefabs/Characters/" + charData.BodyPrefab)); charObject.AddComponent <T> (); charObject.GetComponent <T> ().InitChar(charData); charObject.GetComponent <T> ().InitCharGunObject(charData.GunID); charObject.GetComponent <T> ().InitCharSwordObject(charData.SwordID); return(charObject.GetComponent <T>()); }
private void GenerateBattleChara(GameObject chara, CharaData charaData, bool isRivalChara) { string charaName = Enum.GetName(typeof(CharaName), charaData.CharaName); var charaPrefab = Resources.Load <GameObject>($"Chara/{charaName}"); var go = Instantiate(charaPrefab, chara.transform.position, Quaternion.identity); var image = go.transform.GetChild(0); if (isRivalChara) { image.GetComponent <SpriteRenderer>().flipX = false; } go.transform.parent = chara.transform; image.GetComponent <SpriteRenderer>().sortingOrder = 1; }
private static void CreateOrUpdateObject(CharaData _data) { if(_data == null){ return; } GameObject objRoot = GameObject.Find("ObjRoot"); if(objRoot == null){ return; } GameObject objChara = GameObject.Find(_data.m_name); if(objChara == null) { //objChara = new GameObject(_data.m_name); objChara = GameObject.CreatePrimitive(PrimitiveType.Cube); objChara.name = _data.m_name; } objChara.transform.parent = objRoot.transform; objChara.transform.position = new Vector3(_data.m_position.x, _data.m_position.y, _data.m_position.z); }
static void OnPostprocessAllAssets( string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { foreach (string file in importedAssets) { if (file.EndsWith(".xls")) { Debug.Log("FilePath:"+file); string asset_path = "Assets/Data/" + Path.GetFileNameWithoutExtension(file) + ".asset"; Debug.Log("AssetPath:"+asset_path); using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { // Load or Create Asset CharaDataSet charaDataSet = AssetDatabase.LoadAssetAtPath(asset_path, typeof(CharaDataSet)) as CharaDataSet; if(charaDataSet == null) { charaDataSet = ScriptableObject.CreateInstance<CharaDataSet>(); AssetDatabase.CreateAsset(charaDataSet, asset_path); } charaDataSet.Clear(); // Open Excel IWorkbook book = new HSSFWorkbook(fs); int sheetNum = book.NumberOfSheets; for(int i=0; i<sheetNum; ++i) { ISheet sheet = book.GetSheetAt(i); Debug.Log("Sheet:" + sheet.SheetName); int firstRow = sheet.FirstRowNum; int lastRow = sheet.LastRowNum; for(int rowIdx=firstRow+1; rowIdx<=lastRow; ++rowIdx) { IRow row = sheet.GetRow(rowIdx); if(row == null){ continue; } int cellIdx = row.FirstCellNum; ICell nameCell = row.GetCell(cellIdx++); ICell hpCell = row.GetCell(cellIdx++); ICell posxCell = row.GetCell(cellIdx++); ICell posyCell = row.GetCell(cellIdx++); ICell poszCell = row.GetCell(cellIdx++); CharaData charaData = new CharaData(); charaData.m_name = nameCell.StringCellValue; charaData.m_hp = (int)hpCell.NumericCellValue; charaData.m_position = new Vector3((float)posxCell.NumericCellValue, (float)posyCell.NumericCellValue, (float)poszCell.NumericCellValue); // Add Data Debug.Log("Add:"+charaData.m_name+","+charaData.m_hp); charaDataSet.Add(charaData); CreateOrUpdateObject(charaData); } } // Apply Data ScriptableObject obj = AssetDatabase.LoadAssetAtPath(asset_path, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(obj); } } if (file.EndsWith(".xlsx")) { Debug.Log("FilePath:"+file); Debug.LogWarning(".xlsx file is not spported now."); } } }